# List a contact's events

`GET /v1/contacts/{id}/events`

Requires an API key with the `contacts:read` scope. [About keys and scopes](/docs/api/authentication)

The events tracked against this contact, newest first, with their properties. Events past the retention period are gone and not listed.

## Path parameters

- `id` (string, required, uuid)

## Query parameters

- `limit` (integer, optional, min > 0, max 100, default `20`)
- `cursor` (string, optional, 1–2048 characters)

## Returns

Returns `200 OK`. Otherwise returns an error; [Errors](/docs/api/errors) lists every code and which to retry.

- `id` (string, required, uuid)
- `contactId` (string, required, uuid)
- `eventName` (string, required)
- `properties` (object, required) — The details tracked with the event.
- `occurredAt` (string, required, date-time) — When the event happened.

## Example

```bash
curl https://api.kirora.io/v1/contacts/018f2a4e-6b1c-7d3e-9f40-37386ae05a6b/events \
  -H "Authorization: Bearer $KIRORA_API_KEY"
```

Response `200`:

```json
{
  "data": [
    {
      "id": "018f2a4e-6b1c-7d3e-9f40-37386ae05a6b",
      "contactId": "018f2a4e-6b1c-7d3e-9f40-4db757ce5a6b",
      "eventName": "Order Completed",
      "properties": {},
      "occurredAt": "2030-03-14T09:30:00Z"
    }
  ],
  "meta": {
    "pagination": {
      "limit": 1,
      "nextCursor": "nextCursor_example"
    }
  }
}
```
