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

# Get conversation

> Returns one LinkedIn conversation, its unique active reply, and a bounded delivered-message page. Reading does not clear unread state unless markAsRead is true. Use offset 0 for the latest page and increase it to load older messages.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json get /client/v2/dm-conversations/{connectionId}
openapi: 3.0.0
info:
  title: Extrovert Client API
  description: >-
    Public API for Extrovert platform integration. Use your API key for
    authentication.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.goextrovert.com/
    description: API Server
security: []
tags: []
paths:
  /client/v2/dm-conversations/{connectionId}:
    get:
      tags:
        - Direct Messages
      summary: Get conversation
      description: >-
        Returns one LinkedIn conversation, its unique active reply, and a
        bounded delivered-message page. Reading does not clear unread state
        unless markAsRead is true. Use offset 0 for the latest page and increase
        it to load older messages.
      operationId: DmConversationsClientApiController_get
      parameters:
        - description: Conversation (connection) ID the action addresses.
          required: true
          name: connectionId
          in: path
          schema:
            type: string
            format: uuid
        - description: >-
            When true, request that Extrovert and LinkedIn mark the conversation
            read. Provider synchronization may finish after this response.
          required: true
          name: markAsRead
          in: query
          schema:
            default: false
            type: boolean
        - description: Number of delivered history messages requested for this page.
          required: false
          name: messageLimit
          in: query
          schema:
            minimum: 1
            maximum: 30
            default: 30
            type: integer
        - description: >-
            Offset from the newest delivered message. 0 returns the latest page;
            larger offsets load older messages.
          required: false
          name: messageOffset
          in: query
          schema:
            minimum: 0
            maximum: 9007199254740991
            default: 0
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetResponseDto4'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    GetResponseDto4:
      type: object
      properties:
        status:
          type: string
          description: Response status
          enum:
            - success
        data:
          type: object
          properties:
            connectionId:
              type: string
              format: uuid
              description: Stable conversation (connection) ID.
              example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
            ownerId:
              type: string
              format: uuid
              description: LinkedIn account owner whose inbox contains this conversation.
              example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
            prospect:
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                  description: >-
                    Extrovert prospect/profile ID when one exists in the current
                    workspace; null when only LinkedIn profile data is
                    available.
                  nullable: true
                name:
                  type: string
                  description: Person's current LinkedIn display name.
                linkedInUrl:
                  type: string
                  format: uri
                  description: LinkedIn profile URL, or null when it is unavailable.
                  nullable: true
                headline:
                  type: string
                  description: LinkedIn headline, or null when it is unavailable.
                  nullable: true
                avatarUrl:
                  type: string
                  format: uri
                  description: Profile image URL, or null when it is unavailable.
                  nullable: true
              required:
                - id
                - name
                - linkedInUrl
                - headline
                - avatarUrl
              description: LinkedIn conversation counterpart.
            context:
              type: object
              properties:
                campaign:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Stable Extrovert entity ID.
                      example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                    name:
                      type: string
                      description: Customer-facing entity name.
                  required:
                    - id
                    - name
                  description: >-
                    Selected accessible campaign context, or null when no
                    workspace lead binding exists.
                  nullable: true
                prospectList:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Stable Extrovert entity ID.
                      example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                    name:
                      type: string
                      description: Customer-facing entity name.
                  required:
                    - id
                    - name
                  description: Selected Prospect List, or null when none applies.
                  nullable: true
              required:
                - campaign
                - prospectList
            connectedAt:
              type: string
              description: Known LinkedIn connection date, or null when unavailable.
              nullable: true
              example: '2025-06-30T14:02:07.456Z'
            lastMessage:
              type: object
              properties:
                text:
                  type: string
                  description: Latest delivered message text.
                author:
                  type: string
                  enum:
                    - Owner
                    - Prospect
                  description: Which side of the LinkedIn conversation sent the message.
                sentAt:
                  type: string
                  description: Delivery time of the latest delivered message.
                  example: '2025-06-30T14:02:07.456Z'
              required:
                - text
                - author
                - sentAt
              description: Latest delivered message preview, or null for an empty history.
              nullable: true
            unreadCount:
              type: integer
              minimum: 0
              maximum: 9007199254740991
              description: Unread delivered messages in this conversation.
            state:
              type: string
              enum:
                - No draft
                - Suggested
                - Draft ready
                - Generating
                - Sending
                - Sent
                - History changed
                - Error
                - Paused
                - Skipped
            allowedActions:
              type: array
              items:
                type: string
                enum:
                  - prepare-reply
                  - improve-reply
                  - edit-reply
                  - send-reply
                  - recover-draft
              description: Actions valid for the current state.
            activeReply:
              type: object
              properties:
                dmId:
                  type: string
                  format: uuid
                  description: Exact reply ID required by Improve, Edit, Send, and Recover.
                  example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                connectionId:
                  type: string
                  format: uuid
                  description: Conversation this reply belongs to.
                  example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                text:
                  type: string
                  minLength: 1
                  description: Effective reply text.
                source:
                  type: string
                  enum:
                    - Extrovert-generated
                    - Agent-authored
                    - Edited
                  description: >-
                    Extrovert-generated when no authored override exists;
                    Agent-authored when created without generation; Edited when
                    custom text overrides a generated reply.
                state:
                  type: string
                  enum:
                    - No draft
                    - Suggested
                    - Draft ready
                    - Generating
                    - Sending
                    - Sent
                    - History changed
                    - Error
                    - Paused
                    - Skipped
                allowedActions:
                  type: array
                  items:
                    type: string
                    enum:
                      - prepare-reply
                      - improve-reply
                      - edit-reply
                      - send-reply
                      - recover-draft
                  description: Actions valid for the current state.
                reason:
                  type: string
                  enum:
                    - Relevant post
                    - Conversation inactive
                    - New connection
                    - Manual
                    - External connection
                  description: >-
                    Why Extrovert prepared this reply, or null when no trigger
                    reason applies.
                  nullable: true
                relevantPost:
                  type: object
                  properties:
                    postId:
                      type: string
                      format: uuid
                      description: >-
                        Extrovert post ID, or null when only the LinkedIn
                        snapshot remains.
                      nullable: true
                    summary:
                      type: string
                      description: Stored post summary, or null when none was persisted.
                      nullable: true
                    linkedInUrl:
                      type: string
                      format: uri
                      description: LinkedIn URL of the post that triggered the reply.
                    publishedAt:
                      type: string
                      description: When the post was published on LinkedIn.
                      example: '2025-06-30T14:02:07.456Z'
                  required:
                    - postId
                    - summary
                    - linkedInUrl
                    - publishedAt
                  description: >-
                    Post that triggered the reply, or null when the trigger was
                    not a post.
                  nullable: true
                error:
                  type: object
                  properties:
                    code:
                      type: string
                      description: >-
                        Stable public error code suitable for branching. It is
                        not a raw provider or backend status.
                    message:
                      type: string
                      description: >-
                        Safe explanation of what failed and what the caller
                        should do next.
                    retryable:
                      type: boolean
                      description: >-
                        Whether retrying may succeed after the stated condition
                        is resolved.
                    occurredAt:
                      type: string
                      description: >-
                        When this failure was recorded, or null when no reliable
                        timestamp exists.
                      nullable: true
                      example: '2025-06-30T14:02:07.456Z'
                  required:
                    - code
                    - message
                    - retryable
                    - occurredAt
                  description: >-
                    Current send/workflow failure, or null when no failure is
                    active.
                  nullable: true
                createdAt:
                  type: string
                  description: Date and time in ISO 8601 format
                  example: '2025-06-30T14:02:07.456Z'
                updatedAt:
                  type: string
                  description: Date and time in ISO 8601 format
                  example: '2025-06-30T14:02:07.456Z'
                sentAt:
                  type: string
                  description: LinkedIn send time, or null before successful delivery.
                  nullable: true
                  example: '2025-06-30T14:02:07.456Z'
              required:
                - dmId
                - connectionId
                - text
                - source
                - state
                - allowedActions
                - reason
                - relevantPost
                - error
                - createdAt
                - updatedAt
                - sentAt
              description: >-
                Unique active Extrovert reply, or null when the conversation has
                no active draft/send failure.
              nullable: true
            messages:
              type: array
              items:
                type: object
                properties:
                  dmId:
                    type: string
                    format: uuid
                    description: Exact message ID.
                    example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  connectionId:
                    type: string
                    format: uuid
                    description: Conversation this message belongs to.
                    example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  text:
                    type: string
                    description: Message text.
                  author:
                    type: string
                    enum:
                      - Owner
                      - Prospect
                    description: Which side of the LinkedIn conversation sent the message.
                  sentAt:
                    type: string
                    description: >-
                      LinkedIn delivery time, or the best persisted delivery
                      time for imported history.
                    example: '2025-06-30T14:02:07.456Z'
                required:
                  - dmId
                  - connectionId
                  - text
                  - author
                  - sentAt
              description: >-
                Delivered history page in chronological order; activeReply is
                never duplicated here.
            messagePagination:
              type: object
              properties:
                limit:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                  description: Number of records requested for this page.
                offset:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                  description: Offset from the start of the filtered result set.
                total:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                  description: Total records available for the same filters.
              required:
                - limit
                - offset
                - total
              description: Pagination anchored from the newest delivered message.
        message:
          type: string
          description: Success message
          example: Operation completed successfully
      required:
        - status
        - data
        - message
    ClientApiErrorResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          example: error
          enum:
            - error
        data:
          type: object
          description: Response data
          example: null
          nullable: true
        message:
          type: string
          description: Error message
          example: An error occurred while processing the request
      required:
        - status
        - data
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key for authentication

````