---
title: "Get conversation"
method: GET
path: "/v1/messaging/inbox/conversations/{conversationId}"
tags: ["Messages"]
---

# Get conversation

`GET /v1/messaging/inbox/conversations/{conversationId}`

## Request

- Base URL: `https://apihub.co.il`
- URL: `https://apihub.co.il/v1/messaging/inbox/conversations/{conversationId}`
- Auth: HTTP bearer

Retrieve details and metadata for a specific conversation. Requires accountId query parameter.

**Billing:** Read (free unless it says otherwise) · **Rate limit:** 120/min

## Path parameters

- `conversationId` string, required: Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.

## Query parameters

- `accountId` string, required: The account ID

## 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: Operation result (see each operation). While a Studio render is processing: `stage` (queued · transcribing · downloading · preparing · cleaning_voice · mixing_audio · rendering · finishing), `phase` (the engine's: download · prepare · voice · audio · encode · qa · upload, or null), `progress` (a percent, 0–100) and `progress_fraction` (0–1), `eta_seconds` (seconds left, never below 0) and `estimate_seconds`
    - `data` object
      - `id` string
      - `status` 'active' | 'archived'
      - `metadata` object, nullable: Ad-click attribution for a conversation that started from a Meta ad. Absent when the conversation did not originate from an ad click. Captured once, from the first inbound message Meta attaches the referral to, and never overwritten. If the same person later clicks a different ad, the original values are kept. On Instagram Click-to-Direct that is usually not the first message: Meta first delivers the ad post as an attachment-only `share` / `ig_post` message with no referral, then attaches the referral to the next message. This operation currently returns only the `meta_ad_*` family, which covers Instagram Click-to-Direct and Facebook Messenger Click-to-Message. WhatsApp Click-to-WhatsApp attribution (the `ctwa_*` keys, where the ad ID is `ctwa_source_id`) is returned by `GET /v1/inbox/conversations` instead. Every key is optional and only the keys Meta supplied are returned, so read defensively. Meta does not send a campaign or ad set ID, so none is exposed here. More keys may be added over time. Treat any key you do not recognise as an opaque string. Key names differ from the `message.received` webhook on purpose. The webhook forwards Meta's referral verbatim (`ad_id`, `source`, `type`) while the stored conversation record uses the prefixed names below. Renaming either side would break existing integrations, so both spellings are kept.
        - `meta_ad_id` string: The Meta ad ID the user clicked. Always present when a referral was captured.
        - `meta_ad_ref` string: The ref parameter passed through from the ad creative.
        - `meta_ad_type` string: Meta-supplied referral type, for example OPEN_THREAD.
        - `meta_ad_title` string: Title of the ad creative at click time.
        - `meta_ad_source` string: Meta-supplied source identifier, for example ADS.
        - `meta_ad_flow_id` string: The Meta flow the ad launched, for flow ads.
        - `meta_ad_post_id` string: The organic post the ad promoted, when the ad was a boosted post.
        - `meta_ad_photo_url` string: Image of the ad creative at click time.
        - `meta_ad_video_url` string: Video of the ad creative at click time.
        - `meta_ad_product_id` string: The catalogue product the user clicked, for product ads.
        - `meta_ad_captured_at` string, date-time: When Zernio stored this referral. Always present when a referral was captured.
      - `platform` string
      - `accountId` string
      - `lastMessage` string
      - `updatedTime` string, date-time
      - `participants` object[]
        - `id` string
        - `name` string
      - `lastMessageAt` string, date-time
      - `participantId` string
      - `accountUsername` string
      - `participantName` string
      - `instagramProfile` object, nullable: Instagram profile data for the participant. Only present for Instagram conversations.
        - `fetchedAt` string, date-time, nullable: When this profile data was last fetched from Instagram
        - `isFollower` boolean, nullable: Whether the participant follows your Instagram business account
        - `isVerified` boolean, nullable: Whether the participant is a verified Instagram user
        - `isFollowing` boolean, nullable: Whether your Instagram business account follows the participant
        - `followerCount` integer, nullable: The participant's follower count on Instagram
      - `whatsappUsername` string: WhatsApp only. The participant's WhatsApp username (e.g. `jane.shop`, no leading @). Not a stable identifier, because users can change it: useful for display, not recommended as an identity anchor. Captured from inbound messages, so older threads fill in on their next inbound.
      - `businessScopedUserId` string: WhatsApp only. Meta business-scoped user ID (BSUID), the stable identity anchor; present when Meta has sent it for this participant.
      - `participantVerifiedType` 'blue' | 'government' | 'business' | 'none', nullable: X verified badge type. Only present for X conversations.
  - `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)
