Campaigns

List campaign leads

Changed on

Returns the campaign leads of the specified campaign, deactivated ones included, in ascending id order. Use metadata.next_cursor to fetch the next page; it is null on the last page. metadata.total counts every campaign lead matching the filter, not only the current page.

No change history is stored. To keep a copy in sync, poll with updated_at[gte] set to the start time of your previous pull minus 5 minutes and de-duplicate the rows by id: a row is stamped before the write that carries it commits, and the overlap catches it. updated_at moves on every change to a campaign lead, a new dial attempt and a deactivation included. Pull once a minute per active campaign. This method shares the campaign leads limit of 1000 requests a minute per token with lead create and update; a 429 response means retry after a minute.

Deactivated campaign leads stay listed. When the leads of a stopped or completed campaign are cleaned up, nightly after its dispositions report is downloaded, the method returns an empty list with total: 0.

get/api/v4/campaigns/{campaign_id}/leads

Request

Path parameters

campaign_idinteger required
Example:1

The unique identifier of the campaign.

Query parameters

limitinteger

The number of campaign leads to return per page.

cursorstring
Example:ODI5MA==

Cursor returned in the previous response as metadata.next_cursor. Treat this value as an opaque token and pass it back unchanged. An invalid cursor returns 400 Bad Request.

string date-time
OR
Example:2026-10-02T09:00:00Z

Filter by last change time or by last change time range. For incremental sync use updated_at[gte], see the method description.

Response

OK

Example response

{
  "campaign_leads": [
    {
      "id": 8201,
      "phone_number": "77771234567",
      "name": "John Doe",
      "priority": 10,
      "active": true,
      "dial_attempt_count": 2,
      "source": {
        "system": "hubspot",
        "url": "https://crm.example.com/leads/1"
      },
      "import_method": "file_import",
      "created_at": "2026-10-01T09:00:00.000000Z",
      "updated_at": "2026-10-02T09:00:00.000000Z",
      "deactivated_at": "2026-10-03T09:00:00.000000Z"
    }
  ],
  "metadata": {
    "total": 100
  }
}

Changes