GET /v1/requests/{requestId}— fetch one requestGET /v1/requests— list requests, filtered by date range or batch
RequestResponse shape, except the list endpoint omits four enrichment fields that can be large — see Concepts → Single-request vs list response shapes.
Single request
Fetch a specific request by itsrequestId:
Read-after-write lag: for a few seconds after a successful
POST /v1/requests, a GET /v1/requests/{requestId} for the just-created ID can return 404 REQUEST_NOT_FOUND even though the POST succeeded. If you poll, tolerate 404s for the first few seconds after create. The webhook flow sidesteps this entirely — by the time the webhook fires, the request is readable.Response
results is schema-specific — keys correspond to the fields defined by the request’s schema. Phone-call enrichment fields (transcript, recordingDownloadUrl, callDuration, callSummary, etc.) appear only when the request was fulfilled by a representative phone call. to echoes the dialed number only when you supplied it in inputs.phoneNumber; when the number came from payer-phone resolution, to is omitted and the matched payer is surfaced via payerLookup (without a phone number). The payerLookup block (inputPayerName / matchedPayerName) is present whenever a payer name was supplied or matched, mirroring the create response; it’s absent when no payer name applies. Requests fulfilled by more than one representative phone call also carry a contributingCalls array on the single-request read (GET /v1/requests/{requestId}), breaking out each call’s transcript, recording, and captured results. See the API Reference for the complete field list.
Errors
All non-2xx responses use the uniform{error, message, [details]} envelope.
| HTTP code | error code | Meaning |
|---|---|---|
200 | — | Request found |
401 | (gateway envelope) | Missing or invalid bearer token |
404 | REQUEST_NOT_FOUND | The request ID doesn’t exist for your account |
404 | ACCOUNT_NOT_FOUND | The API key resolves to an account that no longer exists. Contact support. |
500 | INTERNAL_ERROR | Unexpected server failure |
Listing requests
GET /v1/requests returns multiple requests, filtered by query parameters:
GET /v1/requests for the full request schema and per-language code samples.
Response
RequestResponse schema. Sorted by dateCreated descending (most recent first).
The list endpoint omits
transcript, transcriptPostCall, and recordingDownloadUrl. When you need any of these, fetch the single-request endpoint with the requestId from the list. See Concepts → Single-request vs list response shapes for the full breakdown.Query parameters
| Parameter | Format | Default | Notes |
|---|---|---|---|
dateFrom | YYYY-MM-DD | Today, midnight | Inclusive |
dateTo | YYYY-MM-DD | Tomorrow, midnight | Exclusive |
requestBatchId | string | — | Bypasses the date defaults — return all requests in the batch regardless of when they were created |
requestBatchId is provided, dateFrom and dateTo are ignored. When requestBatchId is not provided, dateFrom and dateTo default to today’s window.
By batch
PassrequestBatchId as a query parameter to fetch every request under a given batch, regardless of their individual state — useful for tracking progress.
If your original
POST /v1/requests batch was split across multiple requestBatchId values (see Creating a Request → Batch), iterate the unique requestBatchIds found in the create response and call this once per ID.Errors
All non-2xx responses use the uniform{error, message, [details]} envelope.
| HTTP code | error code | Meaning |
|---|---|---|
200 | — | List returned (may be empty) |
400 | INVALID_REQUEST | dateFrom or dateTo wasn’t a valid YYYY-MM-DD date |
401 | (gateway envelope) | Missing or invalid bearer token |
404 | ACCOUNT_NOT_FOUND | The API key resolves to an account that no longer exists. Contact support. |
500 | INTERNAL_ERROR | Unexpected server failure |
Reading after a webhook
The recommended end-to-end pattern is:- Create a request with
internalIdso you can correlate. - Receive the webhook when the request reaches a terminal state.
- Call
GET /v1/requests/{requestId}to fetch the full result.
requestId, requestBatchId, state, optional internalId/internalTag). It tells you that the request is done; the GET fetches the actual results, missingFields, modality, and the error object on PARTIAL / FAILURE.