Core resources
Assistants
An assistant (agent) is the voice AI persona: its prompt, model, voice, language, tools and knowledge. Edits create new versions; calls always run the published version.
/agents agents:readList assistants
List all assistants in the workspace.
Query parameters
| limit | number | Page size (default 20). |
| offset | number | Offset for pagination. |
curl https://api.bolchoai.in/v1/agents -H "Authorization: Bearer $BOLCHO_API_KEY"/agents/{id} agents:readGet assistant
Retrieve a single assistant with its current config and versions.
Path parameters
| id* | uuid | Assistant id. |
curl https://api.bolchoai.in/v1/agents/$ID \
-H "Authorization: Bearer $BOLCHO_API_KEY"/agents agents:writeCreate assistant
Create a new assistant with an initial config version.
Body
| name* | string | Display name (1–120 chars). |
| description | string | Optional description (max 500). |
| config | object | Initial config version — nested object, see fields below. |
| config.systemPrompt* | string | The assistant's instructions / persona (for voice). |
| config.chatSystemPrompt | string | Separate instructions used when the assistant runs as a text chatbot (falls back to systemPrompt). |
| config.firstMessage | string | Spoken greeting at call start. |
| config.llmProvider* | enum | anthropic | openai | google | openai_compatible | sarvam. |
| config.llmModel* | string | Model id, e.g. gpt-4o-mini, claude-sonnet-4-6. |
| config.temperature | number | 0–2 (default 0.7). |
| config.maxTokens | number | Max reply tokens, 1–8192 (default 1024). |
| config.sttProvider | enum | deepgram | sarvam (default deepgram). |
| config.ttsProvider* | enum | cartesia | elevenlabs | sarvam | azure | smallest. |
| config.ttsVoiceId* | string | Voice id for the TTS provider (see the Voices API). |
| config.language | string | BCP-47 language, e.g. en, hi-IN (default en). |
| config.backgroundSound | enum | off | office | cafe | restaurant | call_center | warehouse | airport. |
| config.noiseCancellation | enum | off | noise | bvc | telephony (default noise). |
curl -X POST https://api.bolchoai.in/v1/agents -H "Authorization: Bearer $BOLCHO_API_KEY" -H "Content-Type: application/json" \
-d '{ "name": "Support Bot", "config": { "systemPrompt": "You are helpful.", "llmProvider": "openai", "llmModel": "gpt-4o-mini", "ttsProvider": "azure", "ttsVoiceId": "en-US-AvaMultilingualNeural" } }'Response
{ "id": "a1b2…", "name": "Support Bot", "status": "draft", "publishedVersionId": null, "versions": [ { "version": 1, "systemPrompt": "You are helpful.", "llmProvider": "openai" } ] }/agents/{id} agents:writeUpdate assistant
Update the assistant's name and description. To change the config (prompt, model, voice, …), save a new version below, then publish.
Path parameters
| id* | uuid | Assistant id. |
Body
| name | string | New display name. |
| description | string | New description. |
curl -X PATCH https://api.bolchoai.in/v1/agents/$ID \
-H "Authorization: Bearer $BOLCHO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"description": "string"
}'/agents/{id}/versions agents:writeCreate a version
Save a new config version — the full config object (systemPrompt, llmProvider, llmModel, ttsProvider, ttsVoiceId required). Becomes the latest draft; publish to make it live.
Path parameters
| id* | uuid | Assistant id. |
curl -X POST https://api.bolchoai.in/v1/agents/$ID/versions \
-H "Authorization: Bearer $BOLCHO_API_KEY"/agents/{id}/publish agents:writePublish assistant
Promote a version to published — calls and chats run this version.
Path parameters
| id* | uuid | Assistant id. |
Body
| versionId | uuid | Version to publish (defaults to the latest draft). |
curl -X POST https://api.bolchoai.in/v1/agents/$AGENT_ID/publish -H "Authorization: Bearer $BOLCHO_API_KEY"/agents/{id}/attachments agents:readGet attachments
The tools and knowledge bases attached to the assistant.
Path parameters
| id* | uuid | Assistant id. |
curl https://api.bolchoai.in/v1/agents/$ID/attachments \
-H "Authorization: Bearer $BOLCHO_API_KEY"Response
{ "tools": [ { "toolId": "…", "channels": ["voice", "chat"] } ], "knowledgeBaseIds": ["…"] }/agents/{id}/tools agents:writeAttach tools
Set the tools (function-calling) available to the assistant, and which brain(s) each is wired into.
Path parameters
| id* | uuid | Assistant id. |
Body
| tools* | object[] | Full replacement list: [{ toolId, channels }]. `channels` is any of "voice"/"chat" (omit to default to both); e.g. a phone-transfer tool is ["voice"], a send-PDF tool is ["chat"]. |
curl -X PUT https://api.bolchoai.in/v1/agents/$ID/tools \
-H "Authorization: Bearer $BOLCHO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tools": [
"..."
]
}'/agents/{id}/knowledge agents:writeAttach knowledge
Link knowledge bases the assistant can search at call time.
Path parameters
| id* | uuid | Assistant id. |
Body
| knowledgeBaseIds* | string[] | Knowledge base ids. |
curl -X PUT https://api.bolchoai.in/v1/agents/$ID/knowledge \
-H "Authorization: Bearer $BOLCHO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"knowledgeBaseIds": [
"..."
]
}'/agents/{id} agents:writeDelete assistant
Permanently delete an assistant.
Path parameters
| id* | uuid | Assistant id. |
curl -X DELETE https://api.bolchoai.in/v1/agents/$ID \
-H "Authorization: Bearer $BOLCHO_API_KEY"