curl --request PUT \
--url https://api.example.com/v1/prompts/{prompt_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"prompt": "<string>",
"response_schema": {
"draft_07": {
"enum": [
"generalist",
"specialist"
],
"type": "string"
}
}
}
'import requests
url = "https://api.example.com/v1/prompts/{prompt_id}"
payload = {
"name": "<string>",
"description": "<string>",
"prompt": "<string>",
"response_schema": { "draft_07": {
"enum": ["generalist", "specialist"],
"type": "string"
} }
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
prompt: '<string>',
response_schema: {draft_07: {enum: ['generalist', 'specialist'], type: 'string'}}
})
};
fetch('https://api.example.com/v1/prompts/{prompt_id}', 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.example.com/v1/prompts/{prompt_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'prompt' => '<string>',
'response_schema' => [
'draft_07' => [
'enum' => [
'generalist',
'specialist'
],
'type' => 'string'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.example.com/v1/prompts/{prompt_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"response_schema\": {\n \"draft_07\": {\n \"enum\": [\n \"generalist\",\n \"specialist\"\n ],\n \"type\": \"string\"\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.put("https://api.example.com/v1/prompts/{prompt_id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"response_schema\": {\n \"draft_07\": {\n \"enum\": [\n \"generalist\",\n \"specialist\"\n ],\n \"type\": \"string\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/prompts/{prompt_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"response_schema\": {\n \"draft_07\": {\n \"enum\": [\n \"generalist\",\n \"specialist\"\n ],\n \"type\": \"string\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "prompt_01h45ytscbebyvny4gc8cr8ma2",
"name": "<string>",
"prompt": "<string>",
"response_schema": {
"draft_07": {
"enum": [
"generalist",
"specialist"
],
"type": "string"
}
},
"version": 123,
"is_current": true,
"created_at": 123,
"description": "<string>"
},
"response_type": "PromptResponse",
"links": [
{
"href": "/resource/{resource_id}",
"method": "GET",
"rel": "self",
"title": "Resource Details"
},
{
"href": "/resource/{resource_id}/related",
"method": "GET",
"rel": "related",
"title": "Related Resources"
}
]
}{
"data": {
"title": "Request Validation Error",
"status": 422,
"detail": "Request validation failed",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Unauthorized",
"status": 401,
"detail": "Authentication required",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Payment Required",
"status": 402,
"detail": "Payment required",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Forbidden",
"status": 403,
"detail": "Access forbidden",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Not Found",
"status": 404,
"detail": "Resource not found",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Request Validation Error",
"status": 422,
"detail": "Request validation failed",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Internal Server Error",
"status": 500,
"detail": "Internal server error",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}Update Prompt
Update a prompt by creating a new version.
All fields are required - provide the complete new state. Returns 409 if the prompt was updated by another request.
curl --request PUT \
--url https://api.example.com/v1/prompts/{prompt_id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"prompt": "<string>",
"response_schema": {
"draft_07": {
"enum": [
"generalist",
"specialist"
],
"type": "string"
}
}
}
'import requests
url = "https://api.example.com/v1/prompts/{prompt_id}"
payload = {
"name": "<string>",
"description": "<string>",
"prompt": "<string>",
"response_schema": { "draft_07": {
"enum": ["generalist", "specialist"],
"type": "string"
} }
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
prompt: '<string>',
response_schema: {draft_07: {enum: ['generalist', 'specialist'], type: 'string'}}
})
};
fetch('https://api.example.com/v1/prompts/{prompt_id}', 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.example.com/v1/prompts/{prompt_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '<string>',
'prompt' => '<string>',
'response_schema' => [
'draft_07' => [
'enum' => [
'generalist',
'specialist'
],
'type' => 'string'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.example.com/v1/prompts/{prompt_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"response_schema\": {\n \"draft_07\": {\n \"enum\": [\n \"generalist\",\n \"specialist\"\n ],\n \"type\": \"string\"\n }\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.put("https://api.example.com/v1/prompts/{prompt_id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"response_schema\": {\n \"draft_07\": {\n \"enum\": [\n \"generalist\",\n \"specialist\"\n ],\n \"type\": \"string\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/prompts/{prompt_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"prompt\": \"<string>\",\n \"response_schema\": {\n \"draft_07\": {\n \"enum\": [\n \"generalist\",\n \"specialist\"\n ],\n \"type\": \"string\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "prompt_01h45ytscbebyvny4gc8cr8ma2",
"name": "<string>",
"prompt": "<string>",
"response_schema": {
"draft_07": {
"enum": [
"generalist",
"specialist"
],
"type": "string"
}
},
"version": 123,
"is_current": true,
"created_at": 123,
"description": "<string>"
},
"response_type": "PromptResponse",
"links": [
{
"href": "/resource/{resource_id}",
"method": "GET",
"rel": "self",
"title": "Resource Details"
},
{
"href": "/resource/{resource_id}/related",
"method": "GET",
"rel": "related",
"title": "Related Resources"
}
]
}{
"data": {
"title": "Request Validation Error",
"status": 422,
"detail": "Request validation failed",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Unauthorized",
"status": 401,
"detail": "Authentication required",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Payment Required",
"status": 402,
"detail": "Payment required",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Forbidden",
"status": 403,
"detail": "Access forbidden",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Not Found",
"status": 404,
"detail": "Resource not found",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Request Validation Error",
"status": 422,
"detail": "Request validation failed",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}{
"data": {
"title": "Internal Server Error",
"status": 500,
"detail": "Internal server error",
"instance": "https://urlyourequest.com/path?query=value"
},
"response_type": "ErrorResponse"
}Authorizations
API Key for external integrations (format: greetincs_...)
Path Parameters
Prompt ID in TypeID format (unversioned: prompt_xxx)
Body
Request schema for updating a prompt.
Note: version is an internal field managed by the system.
- version: Auto-incremented on updates, not accepted as input
1 - 25510001JSON Schema Draft-07 model for structured prompt responses. Supports both primitive schemas (e.g., {"type": "string"}) and object schemas. If omitted, defaults to {"type": "string"}.
Show child attributes
Show child attributes
Response
Successful Response
API response model for structured prompts.
Data model for versioned structured prompts.
The id field serializes as unversioned (prompt_xxx) for direct use in API paths.
Version info is in the separate version field.
Show child attributes
Show child attributes
HATEOAS links related to this response (e.g., self, next, prev)
Show child attributes
Show child attributes
[
{
"href": "/resource/{resource_id}",
"method": "GET",
"rel": "self",
"title": "Resource Details"
},
{
"href": "/resource/{resource_id}/related",
"method": "GET",
"rel": "related",
"title": "Related Resources"
}
]