Assistants API
CRUD operations for your Voilo Assistants.
Looking for auth, base URLs, pagination, or error formats? Head over to API Foundations.
Endpoints at a glance
Method & Path | Purpose |
---|---|
POST /v1/assistants | Create a new Assistant |
GET /v1/assistants | List existing Assistants (cursor‑paginated) |
GET /v1/assistants/{id} | Show a single Assistant |
PATCH /v1/assistants/{id} | Update part (or all) of an Assistant |
DELETE /v1/assistants/{id} | Delete (soft‑archive) an Assistant |
Tip: Assistants default to status:
active
. TheDELETE
operation flips status toarchived
.Archived Assistants are omitted from
GET /v1/assistants
and returning404
on lookup.
Assistant object schema
Field | Type | Notes |
---|---|---|
id | string | asst_ ‑prefixed Assistant ID |
name | string | Display name shown in Console |
model | string | LLM powering the Assistant (e.g. gpt-4o ) |
status | string | "active" (default) or "archived" |
tools | string[] | Array of tool IDs enabled for this Assistant |
config | object | Full Assistant Configuration payload (see Assistant Configuration guide) |
tags | string[] | Arbitrary labels for your own grouping |
owner_id | string | Workspace that owns the Assistant |
created_at | RFC‑3339 timestamp | Creation time |
updated_at | RFC‑3339 timestamp | Last modification time |
Create an Assistant
POST /v1/assistants
Example request
curl -X POST https://api.voilo.io/assistants \
-H "Authorization: Bearer $VOILO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sales Assistant",
"model": "gpt-4o",
"tools": ["tool_transcribe", "tool_actions"],
"tags": ["sales", "demo"],
"config": {
"prompt_template": "You are a Sales Assistant...",
"transcription": {
"provider": "openai",
"model": "gpt-4o-mini-transcribe",
"mode": "realtime"
},
"diarization": { "enabled": true },
"key_terms": { "enabled": true, "files": ["glossary.txt"] }
}
}'
Response 201 Created
{
"id": "asst_6z4p2MbrA8nVYP",
"name": "Sales Assistant",
"model": "gpt-4o",
"status": "active",
"tools": ["tool_transcribe", "tool_actions"],
"tags": ["sales", "demo"],
"default_prompt": "Stay upbeat, concise, and always log next steps.",
"config": { … },
"owner_id": "org_9hksJ4",
"created_at": "2025-06-10T14:01:22Z",
"updated_at": "2025-06-10T14:01:22Z"
}
List Assistants
GET /v1/assistants
Example request
curl "https://api.voilo.io/assistants?cursor=MjAyNS0wNi0xMFQxNDozMDowMFo&limit=20" \
-H "Authorization: Bearer $VOILO_API_KEY"
Response 200
{
"data": [ {…}, {…} ],
"next_cursor": "MjAyNS0wNi0xMFQxNDo1MDozMFo",
"has_more": true
}
Cursor semantics live in API Foundations → Pagination.
Show an Assistant
GET /v1/assistants/{id}
Example request
curl https://api.voilo.io/assistants/asst_6z4p2MbrA8nVYP \
-H "Authorization: Bearer $VOILO_API_KEY"
200 OK – returns the Assistant object.
404 Not Found – ID unknown or archived.
Update an Assistant
PATCH /v1/assistants/{id}
Example request
curl -X PATCH https://api.voilo.io/assistants/asst_6z4p2MbrA8nVYP \
-H "Authorization: Bearer $VOILO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "archived", "tags": ["sales", "legacy"] }'
200 OK – returns the updated resource.
Delete (archive) an Assistant
DELETE /v1/assistants/{id}
Example request
curl -X DELETE https://api.voilo.io/assistants/asst_6z4p2MbrA8nVYP \
-H "Authorization: Bearer $VOILO_API_KEY"
204 No Content – the Assistant is now archived.
Error handling recap
All non‑2xx responses follow the shared envelope documented in API Foundations → Error Envelope. For example:
{
"error": {
"code": "invalid_auth",
"message": "API key expired"
}
}
See also
- Assistant Configuration – deep‑dive into the config object shape.
- API Foundations – base URLs, auth, pagination, and errors.