---
title: "Read a complete accessible ticket thread without marking it seen"
method: GET
path: "/workspaces/{workspaceId}/inbox/{conversationId}"
tags: ["Inbox"]
---

# Read a complete accessible ticket thread without marking it seen

`GET /workspaces/{workspaceId}/inbox/{conversationId}`

## Request

- Base URL: `https://app.communicate.so/api/v1`
- URL: `https://app.communicate.so/api/v1/workspaces/{workspaceId}/inbox/{conversationId}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Secure-better-auth.session_token`
  - API key in cookie `better-auth.session_token`

Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.

## Path parameters

- `workspaceId` string, required
- `conversationId` string, required

## Response `200`

Read a complete accessible ticket thread without marking it seen

- ReadInboxConversationResponse
  - `serverNow` string, date-time, required
  - `conversation` object, required
    - `id` string, required
    - `workspaceId` string, required
    - `agentId` string, required
    - `channel` 'playground' | 'widget' | 'api' | 'email' | 'dashboard', required
    - `surface` 'widget' | 'hosted', required
    - `visitorId` string, nullable, required
    - `subject` string, nullable, required
    - `createdBy` string, nullable, required
    - `contactId` string, nullable, required
    - `status` 'open' | 'closed', required
    - `mode` 'ai' | 'human', required
    - `modeLocked` boolean, required
    - `modeSource` 'legacy' | 'manual' | 'message_lifecycle', required
    - `modeVersion` integer, required
    - `contactEmail` string, nullable, required
    - `visitorLastSeenAt` string, date-time, nullable, required
    - `visitorSeenAt` string, date-time, nullable, required
    - `agentSeenAt` string, date-time, nullable, required
    - `visitorUserAgent` string, nullable, required
    - `visitorTimezone` string, nullable, required
    - `ticketNumber` integer, nullable, required
    - `visitorIp` string, nullable, required
    - `visitorCountry` string, nullable, required
    - `createdAt` string, date-time, required
    - `lastMessageAt` string, date-time, required
    - `messageCount` integer, required
    - `agentName` string, nullable, required
  - `inbox` object, required
    - `conversationId` string, required
    - `workspaceId` string
    - `status` 'open' | 'closed' | 'snoozed' | 'spam', required
    - `assigneeId` string, nullable, required
    - `teamId` string, nullable, required
    - `priority` 'low' | 'normal' | 'high' | 'urgent', required
    - `dueAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required
    - `assigneeMemberId` string, nullable
    - `assigneeWorkspaceId` string, nullable
    - `assigneeAgentGrantId` string, nullable
    - `assigneeKind` 'source_member' | 'linked_member', nullable
    - `assigneeAssignedAt` string, date-time, nullable
    - `assigneeAssignedByMemberId` string, nullable
    - `assigneeAssignedByWorkspaceId` string, nullable
    - `assigneeAssignedByAgentGrantId` string, nullable
    - `escalatedAt` string, date-time, nullable
    - `escalationStatus` 'pending' | 'claimed', nullable
  - `messages` object[], required
    - `id` string, required
    - `role` 'user' | 'assistant' | 'human', required
    - `content` string, required
    - `replyToMessageId` string, nullable
    - `citations` object[], nullable, required
      - `sourceId` string, required
      - `title` string, required
      - `snippet` string, required
    - `channel` 'widget' | 'email', nullable, required
    - `emailOpenedAt` string, date-time, nullable, required
    - `emailRaw` object, nullable, required
      - `text` string
      - `html` string
      - `quotedHistory` object
        - `present` boolean, required
    - `authorMemberId` string, nullable, required
    - `lifecycleStatus` 'queued' | 'sending' | 'sent' | 'undone' | 'failed' | 'uncertain' | 'bounced', required
    - `lifecycleVersion` integer, required
    - `revisionCount` integer, required
    - `undoDeadlineAt` string, date-time, nullable, required
    - `sentAt` string, date-time, nullable, required
    - `editDeadlineAt` string, date-time, nullable, required
    - `editedAt` string, date-time, nullable, required
    - `latestFailureCode` string, nullable, required
    - `createdAt` string, date-time, required
    - `attachments` object[], required
      - `id` string, required
      - `workspaceId` string, required
      - `conversationId` string, required
      - `messageId` string, nullable, required
      - `uploadedByMemberId` string, nullable, required
      - `uploadedByVisitorId` string, nullable, required
      - `uploadedByWorkspaceId` string, nullable, required
      - `uploadedByAgentGrantId` string, nullable, required
      - `uploadedByKind` 'visitor' | 'source_member' | 'linked_member' | 'system', required
      - `filename` string, required
      - `contentType` string, required
      - `detectedContentType` string, nullable, required
      - `sizeBytes` integer, required
      - `kind` 'image' | 'file', required
      - `inline` boolean, required
      - `contentId` string, nullable, required
      - `attachmentState` 'staged' | 'uploaded' | 'processing' | 'clean' | 'linked' | 'blocked' | 'failed', required
      - `blockedReason` string, nullable, required
      - `uploadConfirmedAt` string, date-time, nullable, required
      - `scanCompletedAt` string, date-time, nullable, required
      - `quarantinedAt` string, date-time, nullable, required
      - `linkedAt` string, date-time, nullable, required
      - `createdAt` string, date-time, required
  - `notes` object[], required
    - `id` string, required
    - `workspaceId` string, required
    - `conversationId` string, required
    - `authorId` string, required
    - `authorMemberId` string, nullable, required
    - `authorWorkspaceId` string, nullable, required
    - `authorAgentGrantId` string, nullable, required
    - `authorKind` 'source_member' | 'linked_member' | 'system', required
    - `audienceKind` 'source_only' | 'source_plus_author_destination', required
    - `audienceDestinationWorkspaceId` string, nullable, required
    - `body` string, required
    - `createdAt` string, date-time, required
  - `contact` object, nullable, required
    - `id` string, required
    - `workspaceId` string, required
    - `email` string, required
    - `name` string, nullable, required
    - `location` string, nullable, required
    - `company` string, nullable, required
    - `companySize` string, nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `voiceSessions` object[], required
    - `id` string, required
    - `status` 'starting' | 'active' | 'finalizing' | 'completed' | 'failed' | 'abandoned', required
    - `recordingStatus` 'pending' | 'available' | 'failed' | 'deleted', required
    - `durationSeconds` integer, nullable, required
    - `summary` string, nullable, required
    - `playbackUrl` string
    - `transcript` object[], required
      - `messageId` string, required
      - `role` 'user' | 'assistant', required
      - `text` string, required
      - `startMs` integer
      - `endMs` integer
  - `recentConversations` object[], required
    - `id` string, required
    - `subject` string, nullable, required
    - `status` 'open' | 'closed', required
    - `createdAt` string, date-time, required
    - `lastMessageAt` string, date-time, required
  - `labels` object[], required
    - `id` string, required
    - `name` string, required
    - `color` string, required
  - `csatRating` integer, nullable, required

## Other responses

- `401`: Missing, invalid, expired or revoked account credential or application session.
- `403`: Required account scope, live verified identity, membership or role permission is missing.
- `404`: Workspace or addressed resource is not visible to this member.
- `500`: Unexpected server failure.
- `503`: Authorization service temporarily unavailable.

---

[API](https://skmtc.dev/communicate/apis/communicate-public-rest-api-2.md) · [All operations](https://skmtc.dev/communicate/apis/communicate-public-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/communicate/apis/communicate-public-rest-api-2/revisions/db6be3d36733?raw)
