Contact status

Query the latest calling outcome for one or more phone numbers in a Dialer campaign, and determine whether each number will be dialed again.

Please refer to the detailed API endpoint specification: Contact status

What you can achieve with the Contact status API

Use the Contact status endpoint to query the call outcome and redial status for specific phone numbers in a Dialer campaign so you can determine whether a number will be dialed again. Numbers that will not be dialed again according to the Redial rules specified for the campaign can then be identified for further processing in your CRM.

Prerequisites

  • You must have access to your contact center API key.
  • You must know the campaign ID of the campaign you wish to retrieve.
  • The **API redial status must be enabled for your contact center

Endpoint

GET /api/dialer/v1/campaigns/{campaign_id}/contact_status

Path parameters

ParameterDescriptionTypeRequired
campaign_idThe numeric ID of the campaign to retrieve.numberYes

Query parameters

ParameterDescriptionTypeRequiredNotes
contact_numbers[]One or more phone numbers to query.stringRequiredProvide numbers in E.164 format without the leading plus sign. You can pass this parameter multiple times. Maximum 1000 values per request.

Example request

GET /api/dialer/v1/campaigns/1399/contact_status?contact_numbers[]=77075357142&contact_numbers[]=77023599945&contact_numbers[]=5001

HTTP/1.1
Host: cluster1.contact_center_name.com
Authorization: Bearer {contactcenter_token}
Content-Type: application/json

Authentication

This endpoint requires authentication using the Contact Center Bearer Token. The token must be included in the request header:

Authorization: Bearer {contactcenter_token}

Response

The response contains a contacts array. Each element corresponds to one requested phone number.

Top level response

ElementDescriptionTypeNotes
contactsArray of Contact status objects.arrayOne element per requested phone number.

Contact status object

ElementDescriptionTypeNotes
campaign_idID of the dialer campaign.integer
contact_numberPhone number that was queried.stringIn E.164 format without the leading "+".
dialedIndicates whether the contact has been dialed in this campaign.boolean
last_callMost recent call attempt details.object or nullnull when dialed is false.
redial_statusRedial decision for the contact.object or nullnull when dialed is false.

last_call object

ElementDescriptionTypeNotes
idUnique identifier of the last call attempt from the Call Detail Records database.string
timestampTimestamp of the last call attempt in UTC.stringISO 8601 format.
dispositionCall disposition for the last attempt.stringExamples include rejected, no_answer, and answered.
dispatch_codeAgent assigned wrap up code for the call.string or nullCan be null when no wrap up code was assigned.

redial_status object

ElementDescriptionTypeNotes
final_attemptIndicates whether this was the final attempt for the contact.booleantrue means no further dial attempts will be scheduled.
next_attempt_timeScheduled time of the next dial attempt in UTC, based on the Redial rules specified for the campaign.stringPresent only when final_attempt is false. Omitted when final_attempt is true.

Notes

  • If a contact has never been dialed in the campaign, the API returns dialed: false, and last_call and redial_status are returned as null.
  • If redial_status.final_attempt is false, another dial attempt is planned and next_attempt_time is returned.
  • If redial_status.final_attempt is true, no further dial attempts will occur and next_attempt_time is omitted.
  • If the campaign status is paused or stopped, then ???

Response examples

Never dialed

{
  "contacts": [
    {
      "campaign_id": 1399,
      "contact_number": "77075357142",
      "dialed": false,
      "last_call": null,
      "redial_status": null
    }
  ]
}

Dialed and will be retried

{
  "contacts": [
    {
      "campaign_id": 1399,
      "contact_number": "77075357142",
      "dialed": true,
      "last_call": {
        "id": "a209293e-200f-4b98-bff2-d2698f4ecd39",
        "timestamp": "2025-12-12T03:45:34Z",
        "disposition": "rejected",
        "dispatch_code": null
      },
      "redial_status": {
        "final_attempt": false,
        "next_attempt_time": "2025-12-12T03:50:34Z"
      }
    }
  ]
}

Answered and completed

{
  "contacts": [
    {
      "campaign_id": 1399,
      "contact_number": "5001",
      "dialed": true,
      "last_call": {
        "id": "56bd5432-7eaa-474d-bb96-e3684dca6901",
        "timestamp": "2025-12-12T03:45:33Z",
        "disposition": "answered",
        "dispatch_code": "0001"
      },
      "redial_status": {
        "final_attempt": true
      }
    }
  ]
}

Errors

The following errors are expected for this endpoint.

Status codeMeaningNotes
400Bad requestInvalid phone format, missing required parameters, or more than 1000 contact_numbers[] values.
401UnauthorizedAuthentication failed.
404Not foundCampaign does not exist.
429Too many requestsRate limit exceeded.

See also