Get guidelines
curl --request GET \
--url https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"assistant_id": "3c7e1a52-8d4f-4b9a-a0e6-5f2d9c8b1e74",
"guidelines": "## Role\nYou book appointments for Bodywell Clinic.\n\n## Booking\nCheck availability with {{action.8b2f6d10-4c3e-4a7b-9e15-2d6c0f8a3b91}} before offering a time.",
"needs_publish": false,
"live_version": {
"version_id": "5e0b9c41-7a2d-4f6e-b8c3-1d9a0e4f7b62",
"version_number": 3,
"name": null,
"published_at": "2026-10-29T14:02:11.000Z",
"activated_at": null
}
}
}{
"success": false,
"error": "Unauthorized: Invalid credentials"
}{
"message": "Forbidden: Workspace does not belong to your account."
}{
"message": "Assistant not found."
}{
"status": "error",
"message": "Too many requests, please try again later."
}Agents
Get guidelines
Read the guidelines saved on an agent’s draft
GET
/
api
/
v1
/
assistants
/
{assistantId}
/
guidelines
Get guidelines
curl --request GET \
--url https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": {
"assistant_id": "3c7e1a52-8d4f-4b9a-a0e6-5f2d9c8b1e74",
"guidelines": "## Role\nYou book appointments for Bodywell Clinic.\n\n## Booking\nCheck availability with {{action.8b2f6d10-4c3e-4a7b-9e15-2d6c0f8a3b91}} before offering a time.",
"needs_publish": false,
"live_version": {
"version_id": "5e0b9c41-7a2d-4f6e-b8c3-1d9a0e4f7b62",
"version_number": 3,
"name": null,
"published_at": "2026-10-29T14:02:11.000Z",
"activated_at": null
}
}
}{
"success": false,
"error": "Unauthorized: Invalid credentials"
}{
"message": "Forbidden: Workspace does not belong to your account."
}{
"message": "Assistant not found."
}{
"status": "error",
"message": "Too many requests, please try again later."
}This returns the draft: what you see in the Guidelines editor in Studio, and what Talk and the test Chat use. On a published agent, live calls, website chats and emails use the published guidelines until the next Publish,
needs_publish is true when the agent has any unpublished change, not only to its guidelines, and it can stay true after an edit is changed back: it says a publish may be needed, not what is in it. live_version names the version that is live.
Guidelines refer to actions and variables with {{...}} placeholders, and the API returns them by ID, such as {{action.<id>}}, where Studio shows names. Keep them exactly as returned when you send the text back with Replace guidelines.Authorizations
An API key from Manage → API Keys in Studio. See Authentication.
Path Parameters
The agent's ID. Open the agent in Studio and select Copy ID in its header.
Was this page helpful?