Skip to main content

Create Application

Endpoint​

POST /v1/applications

Method​

POST

Auth requirement​

Bearer application API key.

Business example: create one application for a receptionist IVR that answers the main number, gathers the caller department, and sends webhooks to your CRM.

Request body​

{
"name": "Support IVR",
"answer_url": "https://example.com/minivoice/answer",
"webhook_url": "https://example.com/minivoice/webhooks",
"webhook_secret": "change-me"
}

Response body​

{
"id": "app_20260529T120000.000000000",
"customer_id": "cust_123",
"name": "Support IVR",
"answer_url": "https://example.com/minivoice/answer",
"webhook_url": "https://example.com/minivoice/webhooks",
"api_key": "mv_live_xxx",
"created_at": "2026-05-29T12:00:00Z"
}

Errors​

400 invalid_json or invalid_request. 401 unauthorized.

Common Error Example​

{
"error": {
"code": "invalid_request",
"message": "name is required"
}
}

Example curl​

curl -sS -X POST https://api.minivoice.eu/v1/applications \
-H 'Authorization: Bearer $MINIVOICE_API_KEY' \
-H 'Content-Type: application/json' \
--data @- <<'JSON'
{
"name": "Support IVR",
"answer_url": "https://example.com/minivoice/answer",
"webhook_url": "https://example.com/minivoice/webhooks"
}
JSON

Test procedure​

Create an application, save the returned API key, and call GET /v1/applications to confirm it is available.

Integration checklist

An application connects your API key, answer_url, webhook_url, and routing choices. Start with one test application and one simple answer_url that returns a single action. After that works, add gather, transfer, recording, or AI processing in small steps.

Before using the application for real traffic, confirm that the answer_url returns valid JSON quickly, the webhook_url accepts signed events, and the DID or trunk route points to the correct application. Keep separate applications for testing and production so experiments do not affect live callers.

Copy/Paste Examples​

Real Request​

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

Real Response​

{
"data": [
{
"id": "app_123",
"name": "Support IVR",
"customer_id": "cust_123",
"answer_url": "https://example.com/answer",
"webhook_url": "https://example.com/webhooks",
"created_at": "2026-05-29T12:00:00Z"
}
],
"count": 1
}

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​

Create a receptionist or support IVR application before assigning a DID.

Common Failure Case​

{
"error": {
"code": "invalid_request",
"message": "answer_url must be a valid URL"
}
}

Use the error code for branching and log the full response body while testing.