Skip to main content

Overview

MiniVoice AI adds post-call intelligence to recorded calls: transcripts, summaries, sentiment, scores, and topics. Use the combined endpoint first when building a call detail page.

AI results are read after a call has completed and recorded audio has been processed. The public API exposes read endpoints for combined AI, transcription, summaries, scoring, and topics. Your integration should store the returned status and payload so the UI can show completed, missing, and failed states separately.

Real Request

curl -sS https://api.minivoice.eu/v1/calls/call_123/ai \
-H 'Authorization: Bearer $MINIVOICE_API_KEY'

Real Response

{
"data": {
"call": {
"id": "call_123",
"direction": "inbound",
"from": "+15551230001",
"to": "+15551230002",
"status": "completed",
"duration_seconds": 180
},
"transcription": {
"status": "completed",
"language": "en",
"full_text": "I need help with billing.",
"segments": []
},
"summary": {
"status": "completed",
"summary": "The caller asked for billing help.",
"outcome": "follow_up_needed",
"sentiment": "neutral",
"action_items": [
"Review invoice"
],
"key_points": [
"Billing question"
]
},
"score": {
"status": "completed",
"total_score": 17,
"max_score": 20,
"percentage": 85,
"items": []
},
"topics": [
{
"topic": "Billing",
"raw_topic": "billing",
"normalized_topic": "Billing",
"confidence": 0.92
}
]
}
}

Real Webhook Example

{
"event": "call.completed",
"created_at": "2026-05-29T12:10:00Z",
"call": {
"id": "call_123",
"customer_id": "cust_123",
"application_id": "app_123",
"status": "completed",
"direction": "outbound",
"from": "+15551230001",
"to": "+15551230002"
},
"variables": {},
"data": {}
}

Common Use Case

Build a call intelligence dashboard that loads call metadata first, then fills in transcript, summary, score, sentiment, and topics as results become available.

Common Failure Case

{
"error": {
"code": "call_not_found",
"message": "call not found"
}
}

Do not hide the call when one AI result is missing. Show the call metadata immediately and let each AI section render its own completed or unavailable state.

Response handling

AI endpoints should be consumed as enrichment, not as the primary call record. Store the call ID, result status, and raw response for each feature your product uses. A completed call can have a completed transcript and a missing score, or a completed summary and no topics. Model those states independently in your UI and data layer.

For dashboards, prefer progressive loading. Show the call metadata first, then render transcript, summary, score, sentiment, and topics as each read succeeds. For automations, branch on explicit result values and status fields instead of assuming every recorded call has the same AI outputs.

Endpoint selection

Use /v1/calls/:id/ai for call detail pages because it returns every available AI section together. Use the individual endpoints when a screen only needs one result, such as a transcript viewer or a QA score widget. This keeps client code simple and avoids unnecessary parsing.

Testing

Place a recorded call with known wording, wait for call.completed, then fetch this endpoint. Save the response as a fixture and test your parser against completed data plus the not-found response shown above.