Create a prompt
curl --request POST \
--url https://api.langdock.com/prompts/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"prompt": "<string>",
"promptFolderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sharedWithWorkspace": true
}
'import requests
url = "https://api.langdock.com/prompts/v1"
payload = {
"title": "<string>",
"prompt": "<string>",
"promptFolderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sharedWithWorkspace": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
prompt: '<string>',
promptFolderId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
sharedWithWorkspace: true
})
};
fetch('https://api.langdock.com/prompts/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.langdock.com/prompts/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'prompt' => '<string>',
'promptFolderId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'sharedWithWorkspace' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.langdock.com/prompts/v1"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"prompt\": \"<string>\",\n \"promptFolderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"sharedWithWorkspace\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.langdock.com/prompts/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"prompt\": \"<string>\",\n \"promptFolderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"sharedWithWorkspace\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.langdock.com/prompts/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"prompt\": \"<string>\",\n \"promptFolderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"sharedWithWorkspace\": true\n}"
response = http.request(request)
puts response.read_body{
"prompt": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"prompt": "<string>",
"sharedWithWorkspace": true,
"createdBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"promptFolderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}Prompt Library API
Create Prompt
Create a new prompt in your workspace
POST
/
prompts
/
v1
Create a prompt
curl --request POST \
--url https://api.langdock.com/prompts/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"prompt": "<string>",
"promptFolderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sharedWithWorkspace": true
}
'import requests
url = "https://api.langdock.com/prompts/v1"
payload = {
"title": "<string>",
"prompt": "<string>",
"promptFolderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sharedWithWorkspace": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
prompt: '<string>',
promptFolderId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
sharedWithWorkspace: true
})
};
fetch('https://api.langdock.com/prompts/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.langdock.com/prompts/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'prompt' => '<string>',
'promptFolderId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'sharedWithWorkspace' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.langdock.com/prompts/v1"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"prompt\": \"<string>\",\n \"promptFolderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"sharedWithWorkspace\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.langdock.com/prompts/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"prompt\": \"<string>\",\n \"promptFolderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"sharedWithWorkspace\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.langdock.com/prompts/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"prompt\": \"<string>\",\n \"promptFolderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"sharedWithWorkspace\": true\n}"
response = http.request(request)
puts response.read_body{
"prompt": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"prompt": "<string>",
"sharedWithWorkspace": true,
"createdBy": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"promptFolderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}Creates a prompt in your workspace. The API key creator becomes the prompt owner and can manage it in the Prompt Library.
Base URL
https://api.langdock.com/prompts/v1
Dedicated deploymentsReplace
api.langdock.com with <your-deployment-url>/api/public in all requests.Required Scopes
This endpoint requires thePROMPT_API scope.
Sharing the prompt with the workspace requires the
sharePrompts permission. Assigning a folder requires write access to that folder.Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Prompt title. Minimum: 2 characters. Maximum: 100 characters. |
prompt | string | Yes | Prompt content. Minimum: 2 characters. Maximum: 120000 characters. |
promptFolderId | string | No | UUID of the folder to assign. Cannot be set when sharedWithWorkspace is true. |
sharedWithWorkspace | boolean | No | Share the prompt with the workspace. Cannot be true when promptFolderId is set. |
Example
const axios = require("axios");
async function createPrompt() {
const response = await axios.post(
"https://api.langdock.com/prompts/v1",
{
title: "Support Reply",
prompt: "Write a concise customer reply. Include the next best action.",
sharedWithWorkspace: true
},
{
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
}
);
console.log("Created prompt:", response.data.prompt.id);
}
createPrompt();
Response Format
Success Response (201 Created)
{
prompt: {
id: string;
title: string;
prompt: string;
createdBy: string | null;
promptFolderId: string | null;
sharedWithWorkspace: boolean;
createdAt: string | null;
updatedAt: string | null;
};
}
Error Handling
| Status Code | Description |
|---|---|
| 400 | Invalid request body, or workspace sharing combined with a folder assignment |
| 401 | Invalid or missing API key |
| 403 | Missing PROMPT_API scope, share permission, or folder write access |
| 404 | Prompt folder not found |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
Langdock intentionally blocks browser-origin requests to protect your API key and ensure your applications remain secure. For more information, please see our guide on API Key Best Practices.
Authorizations
API key as Bearer token. Format "Bearer YOUR_API_KEY"
Body
application/json
Prompt title.
Required string length:
2 - 100Prompt content.
Required string length:
2 - 120000Folder UUID to assign. Cannot be set when sharedWithWorkspace is true.
Share the prompt with the workspace. Cannot be true when promptFolderId is set.
Response
Prompt created successfully
Show child attributes
Show child attributes
Was this page helpful?
⌘I