> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apifycloud.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Contact History

> Get campaign message history for a contact

## Endpoint

`GET https://api.apifycloud.io/api/v1/analytics/{appId}/contacts/{contactId}/history`

## Authentication

Bearer token required.

Scope: `analytics:read`

## Path parameters

* `appId` (UUID, required)
* `contactId` (string, required)

## Query parameters

* `limit` (number, optional)
* `cursor` (string, optional)

## Response

```json theme={null}
{
  "data": [
    {
      "id": "uuid",
      "campaign_name": "Launch",
      "template_name": "hsm_odontologia_v0",
      "status": "delivered",
      "sent_at": "2026-02-18T00:00:00.000Z",
      "delivered_at": "2026-02-18T00:01:00.000Z",
      "read_at": null,
      "failed_at": null,
      "error_message": null,
      "created_at": "2026-02-18T00:00:00.000Z"
    }
  ],
  "meta": {
    "timestamp": "2026-02-18T00:00:00.000Z"
  },
  "pagination": {
    "limit": 25,
    "hasMore": false,
    "nextCursor": null
  }
}
```

## Errors

* `403 forbidden` unauthorized for app or missing scope
* `400 validation_error` invalid path/query parameters
* `429 rate_limit_exceeded`
* `500 server_error`
