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

# Retrieve a conversation

> Returns one conversation with its participants, channel and counters. Use it to refresh a thread's `unreadCount` or `lastMessageAt` after a new message arrives. To read the messages themselves, call `GET /conversations/{id}/messages`.



## OpenAPI

````yaml openapi-sms.yaml GET /conversations/{id}
openapi: 3.0.3
info:
  title: Vobiz Messaging API
  description: >
    Send and receive SMS, MMS and RCS messages, buy messaging numbers, register
    for

    US 10DLC and toll-free, run broadcasts, manage conversations, opt-outs and
    webhooks.


    **Base URL:** `https://api.vobiz.ai/api/v1/sms`


    **Authentication:** every request needs the `X-Auth-ID` and `X-Auth-Token`
    headers.

    The account is taken from your credentials; you never put an account ID in a
    path or body.

    Field names in this API are camelCase.
  version: '1.0'
  contact:
    email: support@vobiz.ai
    url: https://vobiz.ai
servers:
  - url: https://api.vobiz.ai/api/v1/sms
    description: Production
security:
  - AuthID: []
    AuthToken: []
tags:
  - name: Messages
    description: Send messages and inspect their delivery state.
  - name: Numbers
    description: >-
      Messaging-capable numbers on your account, inventory search, purchase and
      release.
  - name: Coverage
    description: Where you can send, per country.
  - name: Conversations
    description: Two-way threads between one of your numbers and a contact.
  - name: Opt-outs
    description: Numbers that must not receive messages on a channel.
  - name: Webhooks
    description: Subscriptions that deliver message and broadcast events to your server.
  - name: Broadcasts
    description: Bulk sends from an uploaded recipient list.
  - name: RCS Senders
    description: RCS sender (agent) identities and their message templates.
  - name: 10DLC Brands
    description: US 10DLC brand registration.
  - name: 10DLC Campaigns
    description: US 10DLC campaigns, toll-free verification and supporting documents.
paths:
  /conversations/{id}:
    get:
      tags:
        - Conversations
      summary: Retrieve a conversation
      description: >-
        Returns one conversation with its participants, channel and counters.
        Use it to refresh a thread's `unreadCount` or `lastMessageAt` after a
        new message arrives. To read the messages themselves, call `GET
        /conversations/{id}/messages`.
      operationId: get-conversation
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            The conversation `id` (UUID), from `GET /conversations` or the
            `conversationId` on any message.
          schema:
            type: string
            format: uuid
          example: c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04
      responses:
        '200':
          description: The conversation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conversation'
              example:
                id: c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04
                accountId: MA_XXXXXXXX
                participantA: '+14155550100'
                participantB: '+14155550123'
                channel: sms
                lastMessageAt: '2026-10-16T21:23:51Z'
                messageCount: 3
                unreadCount: 1
                createdAt: '2026-10-16T21:23:02Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: The conversation does not exist on your account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: conversation not found
        '500':
          $ref: '#/components/responses/ServerError'
      x-codeSamples:
        - lang: typescript
          label: Node SDK
          source: >
            import { VobizClient } from "@vobiz/sdk";


            const client = new VobizClient({ apiKey: "MA_XXXXXXXX", authToken:
            "YOUR_AUTH_TOKEN" });


            await client.sms.conversations.getConversation({
                id: "c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04"
            })
        - lang: python
          label: Python SDK
          source: |
            from vobiz import Vobiz

            client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")

            client.sms.conversations.get_conversation(
                id="c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04",
            )
        - lang: go
          label: Go SDK
          source: |
            import (
                "context"

                vobiz "github.com/vobiz-ai/Vobiz-Go-SDK"
                "github.com/vobiz-ai/Vobiz-Go-SDK/client"
                "github.com/vobiz-ai/Vobiz-Go-SDK/option"
                "github.com/vobiz-ai/Vobiz-Go-SDK/sms"
            )

            c := client.NewClient(
                option.WithAPIKey("MA_XXXXXXXX"),
                option.WithAuthToken("YOUR_AUTH_TOKEN"),
            )

            request := &sms.GetConversationRequest{
                    ID: "c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04",
                }
            c.Sms.Conversations.GetConversation(
                    context.TODO(),
                    request,
                )
        - lang: java
          label: Java SDK
          source: |
            import com.vobiz.api.VobizApiClient;

            VobizApiClient client = VobizApiClient
                .builder()
                .apiKey("MA_XXXXXXXX")
                .authToken("YOUR_AUTH_TOKEN")
                .build();

            client.sms().conversations().getConversation(
                "c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04",
                GetConversationRequest
                    .builder()
                    .build()
            );
        - lang: ruby
          label: Ruby SDK
          source: >
            require 'vobiz'


            client = Vobiz::Client.new(api_key: 'MA_XXXXXXXX', auth_token:
            'YOUR_AUTH_TOKEN')


            client.sms.conversations.get_conversation(id:
            "c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04")
        - lang: csharp
          label: C# SDK
          source: |
            using Vobiz;
            using Vobiz.Sms;

            var client = new VobizApiClient("YOUR_AUTH_TOKEN", "MA_XXXXXXXX");

            await client.Sms.Conversations.GetConversationAsync(
                new GetConversationRequest { Id = "c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04" }
            );
        - lang: php
          label: PHP SDK
          source: >
            <?php


            require 'vendor/autoload.php';


            use Vobiz\VobizClient;


            $client = new VobizClient(apiKey: 'MA_XXXXXXXX', authToken:
            'YOUR_AUTH_TOKEN');


            $client->sms->conversations->getConversation(
                'c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04',
            );
components:
  schemas:
    Conversation:
      type: object
      description: >-
        A two-way thread between one of your numbers (or RCS senders) and one
        contact on one channel. Vobiz creates it with the first message in
        either direction and adds every later message between the same pair on
        that channel.
      properties:
        id:
          type: string
          format: uuid
          example: c7d1e9a3-2b4f-4a6c-8d5e-1f3a9b7c2e04
          description: >-
            Unique identifier of the conversation (UUID). Pass it to the
            conversation endpoints; messages carry it as `conversationId`.
        accountId:
          type: string
          description: Your Vobiz account ID (Auth ID), for example `MA_XXXXXXXX`.
          example: MA_XXXXXXXX
        participantA:
          type: string
          description: >-
            Your side of the thread: your number in E.164 format, or the
            `senderName` of your RCS sender.
          example: '+14155550100'
        participantB:
          type: string
          description: The contact's phone number in E.164 format.
          example: '+14155550123'
        channel:
          type: string
          enum:
            - sms
            - mms
            - rcs
          description: >-
            Channel the thread runs on: `sms`, `mms` or `rcs`. The same two
            parties have a separate conversation on each channel.
        lastMessageAt:
          type: string
          format: date-time
          example: '2026-10-16T21:23:51Z'
          description: >-
            Time of the latest message in the thread, sent or received (ISO
            8601, UTC). Conversation lists are ordered by it, newest first.
        messageCount:
          type: integer
          example: 3
          description: Total number of messages in the thread, in both directions.
        unreadCount:
          type: integer
          description: >-
            Number of messages added to the thread since it was last marked
            read. `POST /conversations/{id}/read` resets it to `0`.
          example: 1
        lastReadAt:
          type: string
          format: date-time
          description: >-
            When the thread was last marked read (ISO 8601, UTC). Omitted until
            you first call `POST /conversations/{id}/read`.
          example: '2026-10-17T08:46:55Z'
        createdAt:
          type: string
          format: date-time
          example: '2026-10-16T21:23:02Z'
          description: >-
            When the conversation was created, as an RFC 3339 / ISO 8601
            timestamp in UTC.
    Error:
      type: object
      description: >-
        The body of every error response: a flat object with one `error` string
        that explains what went wrong. Use the HTTP status code to decide how to
        handle the error, and log `error` for diagnosis.
      required:
        - error
      properties:
        error:
          type: string
          example: 'recipient has opted out: +14155550123'
          description: >-
            Human-readable explanation of the error, for example `phoneNumber is
            required` or `recipient has opted out: +14155550123`. Branch on the
            HTTP status code rather than on this text.
  responses:
    Unauthorized:
      description: Missing or invalid `X-Auth-ID` / `X-Auth-Token`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: missing or invalid credentials
    ServerError:
      description: Unexpected error. Retry with the same idempotency key where one applies.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: internal error
  securitySchemes:
    AuthID:
      type: apiKey
      in: header
      name: X-Auth-ID
      description: Your Vobiz account Auth ID (`MA_XXXXXXXX`).
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: Your Vobiz account Auth Token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.