# The campaign's call log — every lead + its outcome

> GET /campaigns/{id}/contacts. HeyRik API parameters and documented request and response examples.

Source: https://www.heyrik.com/docs/api-reference/campaigns/get-campaigns-id-contacts-the-campaign-s-call-log-every-lead-its-outcome

GET https://server.heyrik.com/api/v1/campaigns/{id}/contacts

## Path parameters

- id (required): Replace {id} in the request URL with the value for this resource.

## Headers

Authorization: Bearer $HEYRIK_API_KEY (required). Keep your key on your server.

## Parameters

- status (string): Filter: pending | calling | completed | failed | retry.
- category (string): Filter by the classify bucket the agent tagged (hot / warm / cold…).
- limit / offset (number): Pagination. limit default 500, max 2000.

## Notes

This IS the per-lead result log: each row carries the dial status, the outcome, the classify category, a call summary, the fields the agent extracted, and the call_id — pass that to GET /calls/{id} for the full transcript + recording.

## Request example

```sh
curl "https://server.heyrik.com/api/v1/campaigns/cmp_4a19/contacts?status=completed&limit=100" \
  -H "Authorization: Bearer $HEYRIK_API_KEY"
```

## Response example

```json
{
  "data": [
    {
      "id": "bcc_9a11",
      "phone": "+919876543210",
      "variables": { "name": "Ravi", "order_id": "AC-8842" },
      "status": "completed",
      "attempts": 1,
      "call_id": "call_1dd990f7",
      "outcome": "confirmed",
      "category": "hot",
      "summary": "Confirmed the site visit for Saturday.",
      "extracted": { "budget": "80L", "timeline": "1 month" }
    }
  ]
}
```
