Voiceflow bearer token
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/prompt \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": true
}
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/prompt?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": true
}
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/prompt?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": True
}
},
)
data = response.json()vf prompt create --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"prompt": {
"id": "<string>",
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": true
},
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"createdByID": 0,
"updatedByID": 0
},
"unresolvedReferences": [
{
"path": "<string>",
"token": "<string>",
"reason": "unknown"
}
]
}Creates a prompt, which is a system message plus optional model settings that a workflow step in prompt mode sends to the model. The prompt belongs to nothing until a step holds its ID.
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/prompt \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": true
}
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/prompt?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": true
}
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/prompt?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": True
}
},
)
data = response.json()vf prompt create --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"prompt": {
"id": "<string>",
"name": "<string>",
"system": "<string>",
"settings": {
"model": "<AIModel>",
"maxTokens": 0,
"temperature": 0,
"responseFormat": "<string>",
"reasoningEffort": "<AIReasoningEffort>",
"serviceTier": "<AIParamsServiceTier>",
"useStructuredOutput": true
},
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"createdByID": 0,
"updatedByID": 0
},
"unresolvedReferences": [
{
"path": "<string>",
"token": "<string>",
"reason": "unknown"
}
]
}Authorizations
Query Parameters
Body
Plain text; markdown is not interpreted. {variable_name} inserts a variable or entity, {variable_name.path} a field of a variable. Escape a literal { or \ with a backslash. A name matching neither is stored as literal text and reported in unresolvedReferences; secrets are not available here.
Show child attributes
Response
201 - application/jsonReturns the new prompt with its ID, name, system text, and settings, and unresolvedReferences for any variable or reference in the system text that did not resolve.
Show child attributes
Plain text; markdown is not interpreted. {variable_name} inserts a variable or entity, {variable_name.path} a field of a variable. Escape a literal { or \ with a backslash. A name matching neither is stored as literal text and reported in unresolvedReferences; secrets are not available here.
Show child attributes
References this write kept as literal text instead of binding, each with the reason. The write still succeeded.
Show child attributes
unknown: no variable or entity of that name. secret-not-allowed: the name is a project secret and this field does not accept one. path-on-non-variable: only a variable has fields. resource-id: a bare resource id, not a name. invalid-name: outside the ^\w{1,64}$ name grammar. dangling: the reference rendered as a bare id, because its row is gone or its name is outside the name grammar.
unknown, secret-not-allowed, path-on-non-variable, resource-id, invalid-name, danglingWas this page helpful?
Thanks for your feedback.