Get a delivery

Full detail for one finished-URL callback delivery, including the exact payload sent and the response received.

Details

DescriptionReturns 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 MethodGET
Endpoint URL/v1/applications/:id/deliveries/:deliveryId
AuthorizationAPI 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

ParameterDescriptionLocationConstraintsDefault
idThe application's id.Pathuuid (required)
deliveryIdThe delivery's id.Pathuuid (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, deliveredAtSame summary fields as the deliveries list.
  • callIduuid | nullThe call this delivery is about. Null for non-call events.
  • targetUrlstring | nullThe URL this delivery was POSTed to on the most recent attempt (resolved at send time).
  • requestHeadersobject | nullThe exact headers Voylo sent on the most recent attempt (defaults + your custom headers, after the reserved-name filter).
  • payloadobjectThe exact JSON body Voylo POSTed on the most recent attempt, including any enriched fields (e.g. a signed recording_url).
  • responseBodystring | nullFirst 10 KB of your endpoint's response body on the most recent attempt. Null until the first attempt lands.

Possible errors

ErrorDescription
400 Bad Requestid or deliveryId is not a valid UUID.
401 UnauthorizedAPI key is missing, invalid, or revoked.
403 ForbiddenThe key's role doesn't permit this action.
404 Not FoundNo 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.