curl -X POST 'https://api.60db.ai/deep-analytics/analysis-agents' \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"name": "Refund policy check", "instructions": "Flag any call where the agent gives wrong refund information.", "key_terms": ["refund", "RMA"], "language": "en"}'
const res = await fetch('https://api.60db.ai/deep-analytics/analysis-agents', {
method: 'POST',
headers: {
Authorization: 'Bearer your-api-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Refund policy check",
"instructions": "Flag any call where the agent gives wrong refund information.",
"key_terms": [
"refund",
"RMA"
],
"language": "en"
}),
});
const { success, data, message, code } = await res.json();
if (!success) throw new Error(`${code}: ${message}`);
Call Analysis
Create Analyzer
Create a call analyzer
POST
/
deep-analytics
/
analysis-agents
curl -X POST 'https://api.60db.ai/deep-analytics/analysis-agents' \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"name": "Refund policy check", "instructions": "Flag any call where the agent gives wrong refund information.", "key_terms": ["refund", "RMA"], "language": "en"}'
const res = await fetch('https://api.60db.ai/deep-analytics/analysis-agents', {
method: 'POST',
headers: {
Authorization: 'Bearer your-api-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Refund policy check",
"instructions": "Flag any call where the agent gives wrong refund information.",
"key_terms": [
"refund",
"RMA"
],
"language": "en"
}),
});
const { success, data, message, code } = await res.json();
if (!success) throw new Error(`${code}: ${message}`);
Create an analyzer: instructions that tell the AI what to look for in every call. Version 1 is created with it.
Unknown fields are rejected.
Needs workspace role
owner or admin, or the analytics_admin grant.Request
Headers
Body
UUID of a knowledge collection the owner can see. The analyzer checks claims against it. Default
nullUp to 200 terms, 1–60 characters each. Words the transcription should spell correctly. Default
[]Up to 20 characters. A list of language codes such as
hi,en (up to 5, separated by commas) limits the languages used to transcribe each speaker turn, so short phrases like “haan ji” are not guessed as another language. Use it when your calls are in one or two known languages. Leave it empty to detect the language automaticallyResponse
201 Created{
"success": true,
"data": {
"id": "3f1c2d4e-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
"name": "Refund policy check",
"description": "Finds wrong refund answers",
"instructions": "Flag any call where the agent gives wrong refund information.",
"knowledge_collection_id": null,
"knowledge_collection_name": null,
"key_terms": [
"refund",
"RMA"
],
"language": "en",
"version_no": 1,
"version_id": "e0f1a2b3-c4d5-4e6f-8a7b-9c0d1e2f3a4b",
"my_role": "manage",
"counts": {
"recordings": 0,
"analyzed": 0,
"with_problems": 0,
"waiting": 0,
"ready": 0,
"failed": 0
},
"created_at": "2026-11-12T09:00:00.000Z",
"updated_at": "2026-11-12T09:00:00.000Z"
}
}
Errors
Errors use{ "success": false, "message": "...", "code": "..." }. See the overview for the codes every route can return.
This endpoint
| Status | Code | When |
|---|---|---|
| 400 | VALIDATION_ERROR | A field is missing or invalid. field names it |
| 404 | KNOWLEDGE_COLLECTION_NOT_FOUND | knowledge_collection_id is not a collection you can use |
Example
curl -X POST 'https://api.60db.ai/deep-analytics/analysis-agents' \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"name": "Refund policy check", "instructions": "Flag any call where the agent gives wrong refund information.", "key_terms": ["refund", "RMA"], "language": "en"}'
const res = await fetch('https://api.60db.ai/deep-analytics/analysis-agents', {
method: 'POST',
headers: {
Authorization: 'Bearer your-api-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Refund policy check",
"instructions": "Flag any call where the agent gives wrong refund information.",
"key_terms": [
"refund",
"RMA"
],
"language": "en"
}),
});
const { success, data, message, code } = await res.json();
if (!success) throw new Error(`${code}: ${message}`);