API Reference
Інтегруйте аналітику дзвінків з будь-яким зовнішнім сервісом.
Згенеруйте API-ключ у Налаштуваннях →Base URL
https://your-domain.com/api/v1Автентифікація
Передавайте API-ключ у заголовку Authorization кожного запиту:
Authorization: Bearer aca_your_api_key_hereAPI-ключі починаються з aca_. Згенеруйте свій у Налаштуваннях.
Швидкий старт
Завантажте аудіофайл, потім опитуйте до завершення аналізу:
# 1. Upload an audio file for analysis (returns 202 immediately)
curl -X POST https://your-domain.com/api/v1/calls \
-H "Authorization: Bearer aca_your_key_here" \
-F "file=@/path/to/call.mp3" \
-F "reportType=medium"
# Response → { "id": "cmp...", "status": "queued", "pollUrl": "/api/v1/calls/cmp..." }
# 2. Poll until status === "completed" or "failed"
curl https://your-domain.com/api/v1/calls/cmp... \
-H "Authorization: Bearer aca_your_key_here"// JavaScript — upload and wait for result
async function analyzeCall(filePath, apiKey) {
const form = new FormData();
form.append('file', fs.createReadStream(filePath));
form.append('reportType', 'medium');
const upload = await fetch('https://your-domain.com/api/v1/calls', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
body: form,
});
const { id } = await upload.json(); // status: 202
// Poll every 5 seconds until done
while (true) {
await new Promise(r => setTimeout(r, 5000));
const res = await fetch(`https://your-domain.com/api/v1/calls/${id}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const call = await res.json();
if (call.status === 'completed') return call;
if (call.status === 'failed') throw new Error(call.errorMessage);
}
}Endpoints
/api/v1/meПовертає акаунт, пов'язаний з вашим API-ключем. Корисно для перевірки ключа.
/api/v1/callsЗавантажте аудіофайл для транскрипції та AI-аналізу. Повертає HTTP 202 одразу з ID дзвінка. Опитуйте GET /api/v1/calls/:id поки статус не стане 'completed' або 'failed'. Аудіофайл автоматично видаляється після аналізу.
| Параметр | Тип | Опис |
|---|---|---|
| file | Файл (multipart) | Аудіофайл — MP3, WAV, M4A, OGG, FLAC, AAC, WMA |
| reportType | string | high_level · medium · detailed (за замовчуванням: medium) |
/api/v1/callsПовертає список ваших дзвінків з пагінацією, відсортований за датою (найновіші першими).
| Параметр | Тип | Опис |
|---|---|---|
| limit | integer | Кількість результатів (1–100, за замовчуванням 50) |
| offset | integer | Пропустити N записів для пагінації (за замовчуванням 0) |
| status | string | Фільтр за статусом: queued · transcribing · analyzing · completed · failed |
/api/v1/calls/:idПовертає повний аналіз одного дзвінка — транскрипцію, оцінку, резюме, проблеми, рекомендації та всі секції звіту.
Приклад — відповідь GET /api/v1/calls
{
"calls": [
{
"id": "cmpranw3g00049gvmy1r4tgfv",
"fileName": "call_2024-01-15.mp3",
"status": "completed",
"reportType": "medium",
"language": "uk",
"product": "CRM Software",
"saleStatus": "sold",
"score": 8,
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:31:45.000Z"
}
],
"total": 42,
"limit": 50,
"offset": 0
}Приклад — відповідь GET /api/v1/calls/:id
{
"id": "cmpranw3g00049gvmy1r4tgfv",
"fileName": "call_2024-01-15.mp3",
"status": "completed",
"language": "uk",
"product": "CRM Software",
"saleStatus": "sold",
"score": 8,
"summary": "Manager successfully presented the product...",
"customerIntent": "Looking to automate sales tracking",
"nextStep": "Schedule demo for next week",
"issues": ["Did not ask about budget", "Interrupted customer twice"],
"positives": ["Strong product knowledge", "Good rapport"],
"recommendations": ["Ask discovery questions earlier"],
"objections": ["Price is too high"],
"managerMistakes": ["Skipped needs analysis"],
"detailedReport": [...],
"transcript": "Manager: Hello...",
"createdAt": "2024-01-15T10:30:00.000Z"
}Коди помилок
| HTTP статус | Опис |
|---|---|
| 200 | Успіх |
| 202 | Прийнято — дзвінок поставлено в чергу |
| 401 | Відсутній або недійсний API-ключ |
| 404 | Ресурс не знайдено (або він належить іншому акаунту) |
| 500 | Помилка сервера — спробуйте ще раз |
Протестуйте
Протестуйте
Надішліть живий запит прямо з браузера.