---
title: "Get a conversation with messages and lead context"
method: GET
path: "/api/conversations/{id}"
tags: ["Conversations"]
---

# Get a conversation with messages and lead context

`GET /api/conversations/{id}`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/conversations/{id}`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

One thread with its recent messages and the lead context Luca had when it drafted. Use `/messages` to page further back.

**API key scopes:** `conversations:read`.

## Path parameters

- `id` string, uuid, required

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- ConversationDetailResponse
  - `conversation` object, required
    - `profilePhotoRevision` string, uuid, nullable
    - `id` string, uuid, required
    - `coachId` string, uuid, required
    - `leadId` string, uuid, required
    - `channelAccountId` string, uuid, required
    - `currentPhase` string, required
    - `qualificationProgress` unknown, required
    - `lastInboundAt` string, nullable, required
    - `lastOutboundAt` string, nullable, required
    - `lastUserMessageAt` string, nullable, required
    - `unread` boolean
  - `lead` object, required
    - `id` string, uuid, required
    - `coachId` string, uuid, required
    - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp', required
    - `externalUserId` string, required
    - `displayName` string, nullable, required
    - `profilePhotoUrl` string, uri, nullable
    - `customFields` unknown, required
    - `tags` string[], required
    - `score` integer, required
    - `createdAt` string, required
    - `lastSeenAt` string, required
  - `channelAccount` object, required
    - `id` string, uuid, required
    - `coachId` string, uuid, required
    - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp', required
    - `externalAccountId` string, required
    - `status` string, required
    - `connectedAt` string, required
  - `messages` object[], required
    - `id` string, uuid, required
    - `conversationId` string, uuid, required
    - `coachId` string, uuid, required
    - `leadId` string, uuid, required
    - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp', required
    - `providerMessageId` string, required
    - `direction` 'inbound' | 'outbound', required
    - `sourceType` 'dm' | 'comment' | 'story_reply' | 'story_mention'
    - `body` string, required
    - `mediaUrls` string[], required
    - `media` object[]
      - `id` string, required
      - `mediaType` 'audio' | 'image' | 'file', required
      - `url` string, required
      - `status` 'pending' | 'completed' | 'failed' | 'skipped' | 'blocked' | 'cancelled', required
      - `safetyStatus` 'safe' | 'needs_review' | 'blocked', required
      - `transcript` string, nullable
      - `processingReason` string, nullable
      - `retry` object, nullable
        - `eligible` boolean, required
        - `active` boolean, required
        - `attemptsUsed` integer, required
        - `attemptsRemaining` integer, required
        - `unavailableReason` 'retry_active' | 'retry_exhausted' | 'original_missing' | 'cancelled' | 'not_retryable' | 'null', nullable, required
    - `rawPayload` unknown, required
    - `reviewQueueId` string, uuid, nullable, required
    - `replyAuthor` 'coach' | 'luca' | 'null', nullable
    - `outboundContentId` string, uuid, nullable, required
    - `outboundContentPosition` integer, nullable, required
    - `status` 'queued' | 'sent' | 'delivered' | 'read' | 'failed' | 'blocked_freeform_window' | 'blocked_instagram_messaging_window' | 'blocked_instagram_comment_reply_window' | 'blocked_messenger_messaging_window' | 'blocked_public_reply_link' | 'blocked_rate_limit' | 'blocked_channel_account_paused' | 'blocked_channel_account_suspended' | 'blocked_channel_account_disconnected' | 'blocked_channel_account_reconnect_required' | 'blocked_channel_account_health_red' | 'blocked_channel_account_status_unknown' | 'partially_sent', required
    - `failedReason` string, nullable, required
    - `delivery` object, nullable, required
      - `state` 'sending' | 'sent' | 'delivered' | 'read' | 'failed_retryable' | 'failed_not_retryable' | 'failed_account_blocked' | 'delivery_unknown', required
      - `accountIssue` 'paused' | 'suspended' | 'disconnected' | 'reconnect_required' | 'health_red' | 'status_unknown' | 'null', nullable, required
    - `sentParts` integer, nullable, required
    - `partialRetry` 'available' | 'queued' | 'unsafe' | 'unavailable' | 'null', nullable, required
    - `receivedAt` string, nullable, required
    - `sentAt` string, nullable, required
    - `deliveredAt` string, nullable, required
    - `readAt` string, nullable, required
  - `replyFailures` object[], required
    - `id` string, uuid, required
    - `conversationId` string, uuid, required
    - `idempotencyKey` string, required
    - `body` string, required
    - `content` object, required
      - `version` 1, required
      - `parts` union[], required
        - union
          - object
            - `id` string, uuid, required
            - `type` 'text', required
            - `text` string, required
            - `textGroupId` string, uuid
          - object
            - `id` string, uuid, required
            - `type` 'media', required
            - `uploadId` string, uuid, required
            - `mediaKind` 'image' | 'video' | 'audio' | 'voice' | 'document', required
            - `fileName` string
            - `caption` string
            - `altText` string
          - object
            - `id` string, uuid, required
            - `type` 'interactive', required
            - `interactionKind` 'buttons' | 'list' | 'quick_replies' | 'inline_buttons', required
            - `prompt` string, required
            - `options` object[], required
              - …
            - `expiresAt` string, date-time
          - object
            - `id` string, uuid, required
            - `type` 'template', required
            - `templateId` string, required
            - `name` string, required
            - `language` string, required
            - `versionHash` string, required
            - `parameters` union[], required
              - …
            - `renderedPreview` string, required
            - `providerMetadata` object
    - `reason` 'window_closed' | 'invalid_content' | 'channel_not_released' | 'channel_unavailable', required
    - `delivery` object, required
      - `state` 'sending' | 'sent' | 'delivered' | 'read' | 'failed_retryable' | 'failed_not_retryable' | 'failed_account_blocked' | 'delivery_unknown', required
      - `accountIssue` 'paused' | 'suspended' | 'disconnected' | 'reconnect_required' | 'health_red' | 'status_unknown' | 'null', nullable, required
    - `createdAt` string, required
  - `pendingReview` object, nullable, required
    - `id` string, uuid, required
    - `conversationId` string, uuid, required
    - `coachId` string, uuid, required
    - `draftBody` string, required
    - `sourceMessageId` string, uuid, nullable, required
    - `originThreadId` string, uuid, nullable, required
    - `qualification` unknown, required
    - `confidence` number, required
    - `voiceMatchScore` number, required
    - `status` string, required
    - `criticIssues` unknown, required
    - `createdAt` string, required
    - `resolvedAt` string, nullable, required
  - `copilotContext` object, required
    - `scopeType` 'lead', required
    - `scopeId` string, uuid, required
    - `leadId` string, uuid, required
    - `leadDisplayName` string, nullable, required
    - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp', required
    - `currentPhase` string, required
    - `recentMessageCount` integer, required
    - `pendingReviewCount` integer, required
    - `memoryCount` integer, required

## Other responses

- `401`: unauthorized
- `404`: not found
- `429`: rate limited
- `500`: internal error
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
