---
title: "Get contact channels"
method: GET
path: "/v1/contacts/{contactId}/channels"
tags: ["Contacts"]
---

# Get contact channels

`GET /v1/contacts/{contactId}/channels`

## Request

- Base URL: `https://api.postzen.dev`
- URL: `https://api.postzen.dev/v1/contacts/{contactId}/channels`
- Auth: HTTP bearer

Requires read_only. Returns all channels oldest first by createdAt, including lastActiveAt. Unknown or out-of-scope contacts return 404 contactNotFound.

## Path parameters

- `contactId` string, required: Contact owning this channel.

## Response `200`

Get contact channels.

- object
  - `channels` ContactChannel[], required: Channels ordered oldest first by createdAt.
    - `id` string, required: Contact channel id.
    - `contactId` string, required: Contact owning this channel.
    - `accountId` string, required: Connected account id; must belong to the same profile and caller.
    - `platform` 'x' | 'instagram' | 'tiktok' | 'linkedin' | 'facebook' | 'youtube' | 'threads' | 'pinterest' | 'bluesky' | 'telegram', required: PostZen platform. Always resolved from the connected account.
    - `platformIdentifier` string, required: Platform identity (IGSID, PSID, or handle), trimmed, 1–200 characters. Unique per connected account.
    - `displayIdentifier` string, nullable, required: Optional username or friendly handle, at most 200 characters.
    - `isSubscribed` boolean, required: Channel opt-in. False prevents comment automation sends on this channel.
    - `conversationId` string, nullable, required: Platform conversation id when known; not the PostZen inbox document id.
    - `metadata` object, nullable, required: Optional platform facts; same key and scalar value limits as customFields.
    - `lastActiveAt` string, date-time, nullable, required: Latest counted message time on this channel.
    - `createdAt` string, date-time, required: Channel creation time.

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid API key.
- `403`: The API key does not have sufficient permission or profile access.
- `404`: Resource not found.
- `429`: Rate limit exceeded. Retry after the interval indicated by the `Retry-After` header.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/postzen/apis/postzen-public-api.md) · [All operations](https://skmtc.dev/postzen/apis/postzen-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/postzen/apis/postzen-public-api/revisions/40863e3710ec?raw)
