Docs
Open dashboard

List SMS campaign recipients

GET/sms-campaigns/{id}/recipients

Returns the campaign's contacts with their per-contact sms_status (queued, sent or failed), newest first.

Requires Authorization: Bearer <api_key>. Create a key in the Inspra dashboard under Workspace Settings → API Keys.

Path parameters

  • idstringrequired
    UUID of the resource.

Query parameters

  • pageinteger≥ 1optional
    1-based page index. Defaults to 1.
    Default 1
  • page_sizeinteger1–100optional
    Items per page. Defaults to 20. Hard-capped at 100 by the server.
    Default 20

Response 200 OK

Paginated recipient list.

  • dataobject[]required
    27 fields
    • idstringoptional
      Stable UUID of the recipient row.
    • campaign_idstringoptional
      UUID of the parent campaign.
    • workspace_idstringoptional
      UUID of the owning workspace.
    • phone_numberstringoptional
      Recipient phone number (as supplied on create; E.164 is the working form).
    • first_namestringnullableoptional
      Recipient first name.
    • last_namestringnullableoptional
      Recipient last name.
    • emailstringnullableoptional
      Recipient email.
    • companystringnullableoptional
      Recipient company (denormalised from CRM imports when present).
    • last_attempt_atstringnullableoptional
      ISO 8601 UTC timestamp of the most recent dial attempt.
    • sms_statusstringnullableoptional
      SMS campaigns only. One of queued, sent, delivered, failed, undelivered, opted_out. Call campaigns leave this null and progress on call_status instead.
    • call_statusstringnullableoptional
      Recipient 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_outcomestringnullableoptional
      Outcome label set by the analyser when call_status=completed. One of answered, no_answer, busy, voicemail, invalid_number, declined, error.
    • attemptsintegernullableoptional
      Number of dial attempts made so far for this recipient.
    • call_duration_secondsintegernullableoptional
      Total talk-time on the most recent attempt, in **seconds**.
    • call_started_atstringnullableoptional
      ISO 8601 UTC timestamp the most recent attempt connected.
    • call_ended_atstringnullableoptional
      ISO 8601 UTC timestamp the most recent attempt ended.
    • conversation_idstringnullableoptional
      Provider-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_atstringnullableoptional
      ISO 8601 UTC timestamp when the recipient was loaded into the campaign.
    • updated_atstringnullableoptional
      ISO 8601 UTC timestamp of the last update.
    • reason_for_callstringnullable0–500 charsoptional
      Reason for contacting this recipient.
    • address_line_1stringnullable0–255 charsoptional
      First address line.
    • address_line_2stringnullable0–255 charsoptional
      Second address line.
    • suburbstringnullable0–255 charsoptional
      Suburb or city.
    • statestringnullable0–100 charsoptional
      State or region.
    • post_codestringnullable0–20 charsoptional
      Postal code.
    • countrystringnullable0–100 charsoptional
      Country.
    • custom_variablesobjectoptional
      The custom_variables map originally supplied on create (echoed back). Free-form JSON object.
  • paginationobjectrequired
    Echoed pagination block on every list response. page and page_size match the request (or the defaults if omitted); total is the count of matching rows across all pages.
    3 fields
    • pageinteger≥ 1required
      1-based page index of this response.
    • page_sizeinteger≥ 1required
      Number of items per page (request cap is 100).
    • totalinteger≥ 0required
      Total matching items across all pages.

Errors

  • 401Unauthorized
    Missing, malformed, or invalid API key.
  • 403Forbidden
    Workspace unavailable, suspended, or paywalled.
  • 404Not Found
    Resource not found in this workspace.
  • 429Too Many Requests
    Workspace request limit exceeded; shared across all its API keys.