# List contacts (/api-reference/contacts/listContacts)

`GET /contacts`

Base URL: `https://next-api.useplunk.com`

Get a paginated list of contacts with cursor-based pagination.

## Query parameters

- `limit`: integer — Maximum items per page
- `cursor`: string — Pagination cursor
- `search`: string — Case-insensitive substring match on email.

## Responses

### `200` — List of contacts

- `data`: array<object>
  items:
    - `id`: string — Unique contact identifier
    - `email`: string (email) — Contact email address
    - `subscribed`: boolean — Subscription status
    - `data`: object — Custom contact data fields
    - `createdAt`: string (date-time)
    - `updatedAt`: string (date-time)
- `cursor`: string — Cursor for the next page. Pass this back as the `cursor` query parameter to fetch the next page.
- `hasMore`: boolean
- `total`: integer — Total count. Only populated on the first page (when no `cursor` is supplied); subsequent pages return `0` to avoid the recount cost.

```json
{
  "data": [
    {
      "id": "string",
      "email": "user@example.com",
      "subscribed": false,
      "data": null,
      "createdAt": "2026-05-17T18:27:16.096Z",
      "updatedAt": "2026-05-17T18:27:16.096Z"
    }
  ],
  "cursor": "string",
  "hasMore": false,
  "total": 0
}
```

## Example request

```bash
curl -X GET 'https://next-api.useplunk.com/contacts' \
  -H 'Authorization: Bearer YOUR_API_KEY'
```
