---
title: "List contacts"
method: GET
path: "/v1/contacts"
---

# List contacts

`GET /v1/contacts`

List contacts with their communication channels.

## Query parameters

- `phoneNumber` string
- `search` string
- `tag` string[]
- `limit` integer
- `cursor` string

## Response `200`

List of contacts.

- object
  - `items` Contact[], required
    - `id` string, required
    - `displayName` string — Display name for the contact.
    - `phoneNumber` string — DEPRECATED: Use primaryPhone instead. Primary phone number in E.164 format.
    - `primaryPhone` string — Primary phone number in E.164 format.
    - `primaryEmail` string, email — Primary email address.
    - `countryCode` string
    - `profileName` string, nullable — Contact's WhatsApp profile name. Only available for WhatsApp contacts.
    - `availableChannels` string[], required — List of available messaging channels for this contact.
    - `defaultChannel` 'sms' | 'whatsapp' | 'telegram' | 'email' | 'instagram' | 'messenger' | 'voice' — Preferred channel for this contact.
    - `verified` boolean, required — Whether this contact has been verified.
    - `channels` ContactChannel[] — All communication channels for this contact.
      - `id` string, required
      - `channel` 'sms' | 'whatsapp' | 'email' | 'telegram' | 'instagram' | 'messenger' | 'voice', required — Channel type.
      - `identifier` string, required — Channel identifier (phone number or email address).
      - `countryCode` string — ISO country code for phone numbers.
      - `label` string — Optional label for the channel.
      - `isPrimary` boolean, required — Whether this is the primary channel for its type.
      - `verified` boolean, required — Whether this channel has been verified.
      - `metrics` object — Delivery metrics for this channel.
        - `successCount` integer
        - `failureCount` integer
        - `totalAttempts` integer
        - `avgDeliveryTimeMs` number
        - `lastSuccessAt` string, date-time
      - `lastInboundAt` string, date-time — Last time a message was received on this channel.
      - `metadata` object
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time
    - `metadata` object, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time
  - `nextCursor` string, nullable

## Other responses

- `401` — Unauthorized.

## Changes

- **2026-08-20** `bae0dfda726a` — 1 warning, 2 info
  - removed the optional property `items/items/suggestedMergeWith` from the response with the `200` status
  - added the new optional `query` request parameter `search`
  - added the new optional `query` request parameter `tag`
- **2026-07-07** `f467a4da6cd2` — 1 warning
  - added the new `instagram` enum value to the `items/items/channels/items/channel` response property for the response status `200`
- **2026-06-18** `a817a073a07f` — 2 warning
  - added the new `messenger` enum value to the `items/items/channels/items/channel` response property for the response status `200`
  - added the new `messenger` enum value to the `items/items/defaultChannel` response property for the response status `200`

[Change history](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/changes/v1/contacts/get.md)

---

[API](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api.md) · [All operations](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/revisions/b343da23d9f4?raw)
