Voiceflow bearer token
Get playbook
curl --request GET \
--url https://realtime-api.voiceflow.com/v1/stable/playbook/<playbookID> \
--header 'Authorization: Bearer <token>'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/playbook/<playbookID>?projectID=<projectID>&environmentAlias=<environmentAlias>&includeInstructions=<includeInstructions>', {
method: 'GET',
headers: {
Authorization: 'Bearer <token>',
},
});
const data = await response.json();import requests
response = requests.get(
'https://realtime-api.voiceflow.com/v1/stable/playbook/<playbookID>?projectID=<projectID>&environmentAlias=<environmentAlias>&includeInstructions=<includeInstructions>',
headers={'Authorization': 'Bearer <token>'},
)
data = response.json()vf playbook get --playbook-id <playbookID> --project-id <projectID> --environment-alias <environmentAlias> --include-instructions <includeInstructions>{
"playbook": {
"id": "<string>",
"name": "<string>",
"settings": {
"model": "<AIModel>",
"realtime": {
"voice": "<string>",
"eagerness": "<string>"
},
"maxTokens": 0,
"temperature": 0,
"reasoningEffort": "<AIReasoningEffort>"
},
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"instructions": "<string>",
"pathToolOrder": [
"<string>"
],
"endTool": {
"enabled": true,
"messages": null,
"toolSound": null,
"description": "<string>"
},
"cardTool": {
"enabled": true,
"messages": null,
"description": "<string>"
},
"buttonTool": {
"enabled": true,
"messages": null,
"description": "<string>"
},
"carouselTool": {
"enabled": true,
"messages": null,
"description": "<string>"
},
"skipTurnTool": {
"enabled": true,
"description": "<string>"
},
"webSearchTool": {
"enabled": true,
"messages": null,
"toolSound": null,
"description": "<string>",
"allowedDomains": [
"<string>"
],
"sourceUrlsCount": 0
},
"callForwardTool": {
"enabled": true,
"address": "<Markup>",
"messages": null,
"extension": "<Markup>",
"toolSound": null,
"description": "<string>",
"addressType": "<CallForwardAddressType>",
"callerIDPassthrough": true
},
"knowledgeBaseTool": {
"query": "<Markup>",
"enabled": true,
"filters": [
"<AgentKnowledgeBaseMetadataKeyFilter>"
],
"messages": null,
"toolSound": null,
"chunkLimit": 0,
"description": "<string>",
"queryMode": "<AgentKnowledgeBaseToolQueryMode>",
"sourceUrlsCount": 0
},
"instructionsLineCount": 0
}
}Returns a single playbook by ID, with the fields that define it. A playbook is a set of instructions that drives an agent toward a goal, calling tools as it needs them.
GET
/v1/stable/playbook/{playbookID}
Get playbook
curl --request GET \
--url https://realtime-api.voiceflow.com/v1/stable/playbook/<playbookID> \
--header 'Authorization: Bearer <token>'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/playbook/<playbookID>?projectID=<projectID>&environmentAlias=<environmentAlias>&includeInstructions=<includeInstructions>', {
method: 'GET',
headers: {
Authorization: 'Bearer <token>',
},
});
const data = await response.json();import requests
response = requests.get(
'https://realtime-api.voiceflow.com/v1/stable/playbook/<playbookID>?projectID=<projectID>&environmentAlias=<environmentAlias>&includeInstructions=<includeInstructions>',
headers={'Authorization': 'Bearer <token>'},
)
data = response.json()vf playbook get --playbook-id <playbookID> --project-id <projectID> --environment-alias <environmentAlias> --include-instructions <includeInstructions>{
"playbook": {
"id": "<string>",
"name": "<string>",
"settings": {
"model": "<AIModel>",
"realtime": {
"voice": "<string>",
"eagerness": "<string>"
},
"maxTokens": 0,
"temperature": 0,
"reasoningEffort": "<AIReasoningEffort>"
},
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"instructions": "<string>",
"pathToolOrder": [
"<string>"
],
"endTool": {
"enabled": true,
"messages": null,
"toolSound": null,
"description": "<string>"
},
"cardTool": {
"enabled": true,
"messages": null,
"description": "<string>"
},
"buttonTool": {
"enabled": true,
"messages": null,
"description": "<string>"
},
"carouselTool": {
"enabled": true,
"messages": null,
"description": "<string>"
},
"skipTurnTool": {
"enabled": true,
"description": "<string>"
},
"webSearchTool": {
"enabled": true,
"messages": null,
"toolSound": null,
"description": "<string>",
"allowedDomains": [
"<string>"
],
"sourceUrlsCount": 0
},
"callForwardTool": {
"enabled": true,
"address": "<Markup>",
"messages": null,
"extension": "<Markup>",
"toolSound": null,
"description": "<string>",
"addressType": "<CallForwardAddressType>",
"callerIDPassthrough": true
},
"knowledgeBaseTool": {
"query": "<Markup>",
"enabled": true,
"filters": [
"<AgentKnowledgeBaseMetadataKeyFilter>"
],
"messages": null,
"toolSound": null,
"chunkLimit": 0,
"description": "<string>",
"queryMode": "<AgentKnowledgeBaseToolQueryMode>",
"sourceUrlsCount": 0
},
"instructionsLineCount": 0
}
}Authorizations
Query Parameters
Response
200 - application/jsonReturns a single playbook, including its instructions, its tool ordering, and the system tool settings configured on it.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Option 1
string
Option 2 · MarkupSpan
Show child attributes
Option 3 · MarkupToolReference
Show child attributes
Was this page helpful?
Thanks for your feedback.