Get a delivery
Full detail for one finished-URL callback delivery, including the exact payload sent and the response received.
Details
| Description | Returns one delivery with the heavy fields the list omits: the payload Voylo POSTed, the request headers it sent, the destination URL, and your endpoint's response body — all captured from the most recent attempt. |
|---|---|
| HTTP Method | GET |
| Endpoint URL | /v1/applications/:id/deliveries/:deliveryId |
| Authorization | API key as a bearer token — Authorization: Bearer $VOYLO_API_KEY. Both the application and the delivery must belong to the key's workspace, otherwise 404. See Authentication. |
Request parameters
| Parameter | Description | Location | Constraints | Default |
|---|---|---|---|---|
id | The application's id. | Path | uuid (required) | — |
deliveryId | The delivery's id. | Path | uuid (required) | — |
Request example
cURL
curl https://voylo.ai/v1/applications/8f3b1c2e-9a4d-4e7f-8b21-6c5d4e3f2a1b/deliveries/d1e2f3a4-b5c6-7d8e-9f01-2a3b4c5d6e7f \ -H "Authorization: Bearer $VOYLO_API_KEY"
Success response example
200 OK
{
"id": "d1e2f3a4-b5c6-7d8e-9f01-2a3b4c5d6e7f",
"eventType": "call.completed",
"eventId": "evt_5c4d3e2f1a0b",
"status": "delivered",
"attempts": 1,
"responseStatus": 200,
"lastError": null,
"nextAttemptAt": "2026-06-23T11:02:14.000Z",
"createdAt": "2026-06-23T11:02:13.000Z",
"deliveredAt": "2026-06-23T11:02:14.000Z",
"callId": "9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
"targetUrl": "https://api.example.com/voylo/cdr",
"requestHeaders": {
"Content-Type": "application/json",
"Voylo-Signature": "t=1750676533,v1=…"
},
"payload": {
"event": "call.completed",
"call_id": "9b8a7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
"recording_url": "https://…signed…"
},
"responseBody": "ok"
}Description
id, eventType, eventId, status, attempts, responseStatus, lastError, nextAttemptAt, createdAt, deliveredAt— Same summary fields as the deliveries list.callIduuid | null — The call this delivery is about. Null for non-call events.targetUrlstring | null — The URL this delivery was POSTed to on the most recent attempt (resolved at send time).requestHeadersobject | null — The exact headers Voylo sent on the most recent attempt (defaults + your custom headers, after the reserved-name filter).payloadobject — The exact JSON body Voylo POSTed on the most recent attempt, including any enriched fields (e.g. a signed recording_url).responseBodystring | null — First 10 KB of your endpoint's response body on the most recent attempt. Null until the first attempt lands.
Possible errors
| Error | Description |
|---|---|
| 400 Bad Request | id or deliveryId is not a valid UUID. |
| 401 Unauthorized | API key is missing, invalid, or revoked. |
| 403 Forbidden | The key's role doesn't permit this action. |
| 404 Not Found | No such application/delivery in the key's workspace. |
The stored
payload reflects the last attempt — a signed recording_url in it may have expired. To send a fresh one, use resend a delivery.