Bolcho

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.

GET/agents agents:read

List assistants

List all assistants in the workspace.

Query parameters

limitnumberPage size (default 20).
offsetnumberOffset for pagination.
bash
curl https://api.bolchoai.in/v1/agents -H "Authorization: Bearer $BOLCHO_API_KEY"
GET/agents/{id} agents:read

Get assistant

Retrieve a single assistant with its current config and versions.

Path parameters

id*uuidAssistant id.
bash
curl https://api.bolchoai.in/v1/agents/$ID \
  -H "Authorization: Bearer $BOLCHO_API_KEY"
POST/agents agents:write

Create assistant

Create a new assistant with an initial config version.

Body

name*stringDisplay name (1–120 chars).
descriptionstringOptional description (max 500).
configobjectInitial config version — nested object, see fields below.
config.systemPrompt*stringThe assistant's instructions / persona (for voice).
config.chatSystemPromptstringSeparate instructions used when the assistant runs as a text chatbot (falls back to systemPrompt).
config.firstMessagestringSpoken greeting at call start.
config.llmProvider*enumanthropic | openai | google | openai_compatible | sarvam.
config.llmModel*stringModel id, e.g. gpt-4o-mini, claude-sonnet-4-6.
config.temperaturenumber0–2 (default 0.7).
config.maxTokensnumberMax reply tokens, 1–8192 (default 1024).
config.sttProviderenumdeepgram | sarvam (default deepgram).
config.ttsProvider*enumcartesia | elevenlabs | sarvam | azure | smallest.
config.ttsVoiceId*stringVoice id for the TTS provider (see the Voices API).
config.languagestringBCP-47 language, e.g. en, hi-IN (default en).
config.backgroundSoundenumoff | office | cafe | restaurant | call_center | warehouse | airport.
config.noiseCancellationenumoff | noise | bvc | telephony (default noise).
bash
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

json
{ "id": "a1b2…", "name": "Support Bot", "status": "draft", "publishedVersionId": null, "versions": [ { "version": 1, "systemPrompt": "You are helpful.", "llmProvider": "openai" } ] }
PATCH/agents/{id} agents:write

Update 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*uuidAssistant id.

Body

namestringNew display name.
descriptionstringNew description.
bash
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"
}'
POST/agents/{id}/versions agents:write

Create 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*uuidAssistant id.
bash
curl -X POST https://api.bolchoai.in/v1/agents/$ID/versions \
  -H "Authorization: Bearer $BOLCHO_API_KEY"
POST/agents/{id}/publish agents:write

Publish assistant

Promote a version to published — calls and chats run this version.

Path parameters

id*uuidAssistant id.

Body

versionIduuidVersion to publish (defaults to the latest draft).
bash
curl -X POST https://api.bolchoai.in/v1/agents/$AGENT_ID/publish -H "Authorization: Bearer $BOLCHO_API_KEY"
GET/agents/{id}/attachments agents:read

Get attachments

The tools and knowledge bases attached to the assistant.

Path parameters

id*uuidAssistant id.
bash
curl https://api.bolchoai.in/v1/agents/$ID/attachments \
  -H "Authorization: Bearer $BOLCHO_API_KEY"

Response

json
{ "tools": [ { "toolId": "…", "channels": ["voice", "chat"] } ], "knowledgeBaseIds": ["…"] }
PUT/agents/{id}/tools agents:write

Attach tools

Set the tools (function-calling) available to the assistant, and which brain(s) each is wired into.

Path parameters

id*uuidAssistant 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"].
bash
curl -X PUT https://api.bolchoai.in/v1/agents/$ID/tools \
  -H "Authorization: Bearer $BOLCHO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "tools": [
    "..."
  ]
}'
PUT/agents/{id}/knowledge agents:write

Attach knowledge

Link knowledge bases the assistant can search at call time.

Path parameters

id*uuidAssistant id.

Body

knowledgeBaseIds*string[]Knowledge base ids.
bash
curl -X PUT https://api.bolchoai.in/v1/agents/$ID/knowledge \
  -H "Authorization: Bearer $BOLCHO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "knowledgeBaseIds": [
    "..."
  ]
}'
POST/agents/{id}/share agents:write

Create share link

Create (or fetch) a public share slug so anyone can test-call this assistant without an account.

Path parameters

id*uuidAssistant id.
bash
curl -X POST https://api.bolchoai.in/v1/agents/$ID/share \
  -H "Authorization: Bearer $BOLCHO_API_KEY"

Response

json
{ "slug": "support-bot-9f3a1c20" }
DELETE/agents/{id}/share agents:write

Revoke share link

Disable the public share slug.

Path parameters

id*uuidAssistant id.
bash
curl -X DELETE https://api.bolchoai.in/v1/agents/$ID/share \
  -H "Authorization: Bearer $BOLCHO_API_KEY"

Response

json
{ "ok": true }
DELETE/agents/{id} agents:write

Delete assistant

Permanently delete an assistant.

Path parameters

id*uuidAssistant id.
bash
curl -X DELETE https://api.bolchoai.in/v1/agents/$ID \
  -H "Authorization: Bearer $BOLCHO_API_KEY"
Bolcho — Voice AI for Bharat