> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pingback.live/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Conversation

> Fetch a single conversation with its full message history.

## Overview

Retrieves a single conversation by ID, including the associated customer and the complete message history. Only conversations belonging to your business are accessible.

## Request

**Method**: `GET`
**URL**: `/api/v1/conversations/{conversation_id}`

### Headers

| Header        | Value          |
| ------------- | -------------- |
| Authorization | Bearer {token} |

### Path parameters

<ParamField path="conversation_id" type="string (UUID)" required>
  The UUID of the conversation to retrieve.
</ParamField>

## Response

<ResponseField name="id" type="string (UUID)">
  Unique identifier for the conversation.
</ResponseField>

<ResponseField name="business_id" type="string (UUID)">
  The business this conversation belongs to.
</ResponseField>

<ResponseField name="customer_id" type="string (UUID) | null">
  The associated customer's UUID.
</ResponseField>

<ResponseField name="assignee_id" type="string (UUID) | null">
  The assigned agent's UUID, or `null` if unassigned.
</ResponseField>

<ResponseField name="status" type="string">
  Current status. One of `"open"`, `"pending"`, `"resolved"`, or `"closed"`.
</ResponseField>

<ResponseField name="channel_type" type="string">
  The channel this conversation came through.
</ResponseField>

<ResponseField name="channel_id" type="string (UUID) | null">
  The channel record this conversation is linked to.
</ResponseField>

<ResponseField name="created_at" type="string (ISO 8601)">
  Timestamp when the conversation was created.
</ResponseField>

<ResponseField name="updated_at" type="string (ISO 8601)">
  Timestamp when the conversation was last updated.
</ResponseField>

<ResponseField name="first_response_at" type="string (ISO 8601) | null">
  Timestamp of the first agent response, used for SLA tracking.
</ResponseField>

<ResponseField name="customer" type="object | null">
  Embedded customer object.

  <Expandable title="customer fields">
    <ResponseField name="customer.id" type="integer">
      Customer ID.
    </ResponseField>

    <ResponseField name="customer.name" type="string | null">
      Customer's display name.
    </ResponseField>

    <ResponseField name="customer.email" type="string | null">
      Customer's email address.
    </ResponseField>

    <ResponseField name="customer.phone" type="string | null">
      Customer's phone number.
    </ResponseField>

    <ResponseField name="customer.external_id" type="string | null">
      Your system's identifier for this customer.
    </ResponseField>

    <ResponseField name="customer.created_at" type="string (ISO 8601)">
      Timestamp when the customer record was created.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="messages" type="array">
  Full list of messages in this conversation, ordered chronologically.

  <Expandable title="message fields">
    <ResponseField name="messages[].id" type="string (UUID)">
      Unique identifier for the message.
    </ResponseField>

    <ResponseField name="messages[].conversation_id" type="string (UUID)">
      The conversation this message belongs to.
    </ResponseField>

    <ResponseField name="messages[].sender_type" type="string">
      Who sent the message. One of `"agent"` or `"customer"`.
    </ResponseField>

    <ResponseField name="messages[].sender_id" type="string (UUID) | null">
      UUID of the agent who sent the message, or `null` for customer messages.
    </ResponseField>

    <ResponseField name="messages[].content" type="string">
      The text content of the message.
    </ResponseField>

    <ResponseField name="messages[].attachments" type="array">
      List of attachment objects, if any.
    </ResponseField>

    <ResponseField name="messages[].created_at" type="string (ISO 8601)">
      Timestamp when the message was sent.
    </ResponseField>
  </Expandable>
</ResponseField>

## Example

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.pingback.live/api/v1/conversations/c3d4e5f6-a7b8-9012-cdef-123456789012 \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const conversationId = 'c3d4e5f6-a7b8-9012-cdef-123456789012';
  const response = await fetch(
    `https://api.pingback.live/api/v1/conversations/${conversationId}`,
    {
      headers: {
        'Authorization': `Bearer ${token}`,
      },
    }
  );
  const conversation = await response.json();
  ```
</CodeGroup>

### Response example

```json theme={null}
{
  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "business_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "customer_id": "d4e5f6a7-b8c9-0123-defa-234567890123",
  "assignee_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "open",
  "channel_type": "widget",
  "channel_id": "e5f6a7b8-c9d0-1234-efab-345678901234",
  "created_at": "2024-03-01T09:00:00Z",
  "updated_at": "2024-03-01T09:20:00Z",
  "first_response_at": "2024-03-01T09:05:00Z",
  "customer": {
    "id": 42,
    "business_id": 7,
    "name": "Alex Johnson",
    "email": "alex@example.com",
    "phone": null,
    "external_id": null,
    "created_at": "2024-02-20T08:00:00Z"
  },
  "messages": [
    {
      "id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
      "conversation_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
      "sender_type": "customer",
      "sender_id": null,
      "content": "Hello, I need help with my order.",
      "attachments": [],
      "created_at": "2024-03-01T09:00:00Z"
    },
    {
      "id": "g7b8c9d0-e1f2-3456-abcd-567890123456",
      "conversation_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
      "sender_type": "agent",
      "sender_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "content": "Hi Alex! Happy to help. Can you share your order number?",
      "attachments": [],
      "created_at": "2024-03-01T09:05:00Z"
    }
  ]
}
```

## Errors

| Status | Meaning                                                    |
| ------ | ---------------------------------------------------------- |
| 401    | Unauthorized — missing or invalid Bearer token             |
| 404    | Conversation not found or does not belong to your business |
