---
title: "List chats"
method: GET
path: "/v1/social/profiles/{profile_id}/chats"
tags: ["Direct Messages"]
---

# List chats

`GET /v1/social/profiles/{profile_id}/chats`

## Request

- Base URL: `https://apihub.co.il`
- URL: `https://apihub.co.il/v1/social/profiles/{profile_id}/chats`
- Auth: HTTP bearer

Returns a paginated list of chats for a profile, ordered by last_message_at descending (most recent first).

**Billing:** Read request · **Rate limit:** 120/min

## Path parameters

- `profile_id` string, required: Profile ID

## Query parameters

- `page` integer: Page number (1-based). Passing 0 returns page 1.
- `after` string: ISO 8601 timestamp — only chats with last_message_at after this
- `before` string: ISO 8601 timestamp — only chats with last_message_at before this
- `per_page` integer: Number of items per page.

## Headers

- `Idempotency-Key` string
- `X-Tag` string

## Response `200`

Completed

- object
  - `id` string: Execution id — stable across internal retries; use it with GET /v1/executions/{id}
  - `status` 'pending' | 'processing' | 'completed' | 'partial' | 'failed' | 'cancelled' | 'timeout'
  - `operation` string
  - `tag` string, nullable: Your X-Tag, if sent
  - `created_at` string, date-time
  - `completed_at` string, date-time, nullable
  - `output` object: Paginated list of chats for a profile.
    - `data` object[]
      - `id` string: Chat hashid
      - `archived` boolean: Bluesky only — whether the chat is muted/archived
      - `metadata` object, nullable: Platform-specific information about the participant, fetched asynchronously when the chat is first created and refreshed at most once per hour on inbound messages. Keys are only present when the platform returns a value — treat missing keys as unknown, not false.
        - `muted` boolean: Bluesky — whether the conversation is muted/archived
        - `page_id` string: Facebook — Page ID this chat is owned by (required for sending)
        - `referral` object: Latest ig.me / m.me link referral (latest referral wins)
          - `ref` string
          - `type` string
          - `source` string
          - `received_at` string
        - `language_code` string: Telegram — IETF language tag reported by Telegram for the user
        - `follower_count` integer: Instagram — participant's follower count
        - `is_verified_user` boolean: Instagram — participant has a verified account
        - `last_referral_at` string: ISO 8601 timestamp of the latest referral (opens the 24-hour messaging window)
        - `participant_fetched_at` string: ISO 8601 timestamp of the last recipient-info refresh
        - `is_business_follow_user` boolean: Instagram — the business profile follows the participant
        - `is_user_follow_business` boolean: Instagram — participant follows the business profile
      - `platform` 'facebook' | 'instagram' | 'telegram' | 'bluesky': Network ID
      - `created_at` string: ISO 8601 timestamp of chat creation
      - `profile_id` string: Profile hashid this chat belongs to
      - `last_inbound_at` string, nullable: ISO 8601 timestamp of last inbound message
      - `last_message_at` string, nullable: ISO 8601 timestamp of last message in either direction
      - `last_outbound_at` string, nullable: ISO 8601 timestamp of last outbound message
      - `participant_name` string, nullable: Participant's display name (when known)
      - `participant_username` string, nullable: Participant's username (when known)
      - `participant_avatar_url` string, nullable: Stable storage URL of the participant's profile picture (null until fetched)
      - `participant_external_id` string: Platform-native participant ID
      - `external_conversation_id` string, nullable: Platform's native conversation ID (when known)
    - `page` integer
    - `total` integer
    - `per_page` integer
  - `error` string, nullable
  - `usage` object
    - `credits_charged` number, nullable
    - `credits_reserved` number
    - `estimated_credits` number
    - `cost_source` 'provider_reported' | 'calculated' | 'estimated' | 'null', nullable
    - `provider_usage` object, nullable: Normalised consumption, e.g. { VIDEO_SECOND: 22.4 }
  - `balance` object
    - `available` number
    - `reserved` number

## Other responses

- `400`: Invalid input
- `402`: Insufficient credits / project budget
- `404`: Resource not found (or not yours)
- `429`: Rate limited
- `503`: Service temporarily paused

---

[API](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai.md) · [All operations](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/llms.txt) · [OpenAPI document](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/revisions/a8caa42835ce?raw)
