List campaign recipients
GET/campaigns/{id}/recipients
Returns recipients for a campaign with their per-recipient call status, outcome, and attempt count. Use call_status and call_outcome to filter.
Requires
Authorization: Bearer <api_key>. Create a key in the Inspra dashboard under Workspace Settings → API Keys.Path parameters
- idstringrequiredUUID of the resource.
Query parameters
- pageinteger≥ 1optional1-based page index. Defaults to 1.Default
1 - page_sizeinteger1–100optionalItems per page. Defaults to 20. Hard-capped at 100 by the server.Default
20 - call_statusstringoptionalFilter by recipient
call_status. One ofpending,queued,calling,completed,failed,skipped.pendingqueuedcallingcompletedfailedskipped - call_outcomestringoptionalFilter by recipient
call_outcome(only meaningful whencall_status=completed). One ofanswered,no_answer,busy,voicemail,invalid_number,declined,error.answeredno_answerbusyvoicemailinvalid_numberdeclinederror - duration_bucketstringoptionalFilter by call length band.
under_30s(0-30s),30s_1m,1m_3m,over_3m(180s and above).under_30s30s_1m1m_3mover_3m - datestringoptionalRestrict to recipients created on this calendar day,
YYYY-MM-DD.
Response 200 OK
Paginated recipient list.
- dataobject[]required
27 fields
- idstringoptionalStable UUID of the recipient row.
- campaign_idstringoptionalUUID of the parent campaign.
- workspace_idstringoptionalUUID of the owning workspace.
- phone_numberstringoptionalRecipient phone number (as supplied on create; E.164 is the working form).
- first_namestringnullableoptionalRecipient first name.
- last_namestringnullableoptionalRecipient last name.
- emailstringnullableoptionalRecipient email.
- companystringnullableoptionalRecipient company (denormalised from CRM imports when present).
- last_attempt_atstringnullableoptionalISO 8601 UTC timestamp of the most recent dial attempt.
- sms_statusstringnullableoptionalSMS campaigns only. One of
queued,sent,delivered,failed,undelivered,opted_out. Call campaigns leave this null and progress oncall_statusinstead. - call_statusstringnullableoptionalRecipient call lifecycle. One of
pending(not yet attempted),queued(ready to dial),calling(in flight),completed(lifecycle finished, any outcome),failed(exhausted retries),skipped(cancelled by terminate or out-of-hours past expiry). - call_outcomestringnullableoptionalOutcome label set by the analyser when
call_status=completed. One ofanswered,no_answer,busy,voicemail,invalid_number,declined,error. - attemptsintegernullableoptionalNumber of dial attempts made so far for this recipient.
- call_duration_secondsintegernullableoptionalTotal talk-time on the most recent attempt, in **seconds**.
- call_started_atstringnullableoptionalISO 8601 UTC timestamp the most recent attempt connected.
- call_ended_atstringnullableoptionalISO 8601 UTC timestamp the most recent attempt ended.
- conversation_idstringnullableoptionalProvider-assigned session identifier for the call. Useful for looking the call up in the provider's own dashboard; the public API does not currently expose a join from this value to a
Call. - created_atstringnullableoptionalISO 8601 UTC timestamp when the recipient was loaded into the campaign.
- updated_atstringnullableoptionalISO 8601 UTC timestamp of the last update.
- reason_for_callstringnullable0–500 charsoptionalReason for contacting this recipient.
- address_line_1stringnullable0–255 charsoptionalFirst address line.
- address_line_2stringnullable0–255 charsoptionalSecond address line.
- suburbstringnullable0–255 charsoptionalSuburb or city.
- statestringnullable0–100 charsoptionalState or region.
- post_codestringnullable0–20 charsoptionalPostal code.
- countrystringnullable0–100 charsoptionalCountry.
- custom_variablesobjectoptionalThe
custom_variablesmap originally supplied on create (echoed back). Free-form JSON object.
- paginationobjectrequiredEchoed pagination block on every list response.
pageandpage_sizematch the request (or the defaults if omitted);totalis the count of matching rows across all pages.3 fields
- pageinteger≥ 1required1-based page index of this response.
- page_sizeinteger≥ 1requiredNumber of items per page (request cap is 100).
- totalinteger≥ 0requiredTotal matching items across all pages.
Errors
- 401UnauthorizedMissing, malformed, or invalid API key.
- 403ForbiddenWorkspace unavailable, suspended, or paywalled.
- 404Not FoundResource not found in this workspace.
- 429Too Many RequestsWorkspace request limit exceeded; shared across all its API keys.