Rate Limits
Outbound call creation is protected by CPS and concurrent-call limits. If a limit is exceeded, MiniVoice returns HTTP 429 with one of these error codes:
{
"error": {
"code": "cps_limit_reached",
"message": "calls per second limit reached"
}
}
or
{
"error": {
"code": "concurrent_call_limit_reached",
"message": "concurrent call limit reached"
}
}
Back off and retry later when receiving these responses.
Integration checklist
Set up the smallest possible working integration before adding business logic. Use one API key, one application, one answer_url, one webhook_url, and one DID or outbound test number. Save the successful request and response bodies because they become the baseline for later troubleshooting.
When you add features, change one part of the flow at a time. If a call fails, check authentication first, then the route, then the answer_url response, then webhook delivery. That order usually separates setup errors from call-control errors quickly.
Copy/Paste Examples
Real Request
curl -sS https://api.minivoice.eu/v1/calls \
-H 'Authorization: Bearer $MINIVOICE_API_KEY'
Real Response
{
"data": [],
"count": 0
}
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": "inbound",
"from": "+15551230001",
"to": "+15551230002"
},
"variables": {},
"data": {}
}
Common Use Case
Prepare the base integration for a receptionist IVR, appointment confirmation line, or payment reminder workflow before sending real callers through it.
Common Failure Case
{
"error": {
"code": "unauthorized",
"message": "unauthorized"
}
}
Use the error code for branching and log the full response body while testing.