> ## 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 comment

> Returns the current owner-global comment by postId and ownerId across every state. The read is non-destructive and is the recovery check after an ambiguous write. `plannedAt` fills only when the campaign spaces approved comments with a posting interval — null means posting starts right after approval.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json get /client/v2/comments/{postId}
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/comments/{postId}:
    get:
      tags:
        - Comments
      summary: Get comment
      description: >-
        Returns the current owner-global comment by postId and ownerId across
        every state. The read is non-destructive and is the recovery check after
        an ambiguous write. `plannedAt` fills only when the campaign spaces
        approved comments with a posting interval — null means posting starts
        right after approval.
      operationId: CommentsClientApiController_get
      parameters:
        - description: Post to read.
          required: true
          name: postId
          in: path
          schema:
            type: string
            format: uuid
        - description: LinkedIn account owner whose comment state is returned.
          required: true
          name: ownerId
          in: query
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetResponseDto3'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    GetResponseDto3:
      type: object
      properties:
        status:
          type: string
          description: Response status
          enum:
            - success
        data:
          type: object
          properties:
            postId:
              type: string
              format: uuid
              description: LinkedIn post identity inside Extrovert.
              example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
            ownerId:
              type: string
              format: uuid
              description: LinkedIn account owner whose profile will engage with the post.
              example: 8d256aa6-9b12-49a7-93ee-bf41634b5b60
            author:
              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: Person whose post receives the engagement.
            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: >-
                Primary relationship target: the author for Direct, another
                person for Indirect, and null for Topical engagement.
              nullable: true
            engagementRoute:
              type: string
              enum:
                - Direct
                - Indirect
                - Topical
            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
            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
              nullable: true
            keyword:
              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
              nullable: true
            topic:
              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
              nullable: true
            engagementContexts:
              minItems: 1
              type: array
              items:
                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: Campaign in which this engagement context is visible.
                  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: >-
                      Prospect List for this context, or null outside a Prospect
                      List.
                    nullable: true
                  keyword:
                    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: >-
                      Tracked keyword for this context, or null outside Keyword
                      collection.
                    nullable: true
                  topic:
                    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: >-
                      Matched Monitored Topic, or null when no topic was
                      assigned.
                    nullable: true
                  engagementRoute:
                    type: string
                    enum:
                      - Direct
                      - Indirect
                      - Topical
                    description: >-
                      Direct means engaging on the prospect's post; Indirect
                      means engaging on another author's post to warm the
                      prospect; Topical has no prospect.
                  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: >-
                      Effective relationship target for this context; null only
                      for Topical engagement without a prospect.
                    nullable: true
                required:
                  - campaign
                  - prospectList
                  - keyword
                  - topic
                  - engagementRoute
                  - prospect
              description: >-
                All visible relationship contexts for this physical comment. The
                first context is mirrored in the top-level context fields.
            post:
              type: object
              properties:
                text:
                  type: string
                  description: >-
                    LinkedIn post text, or null when the post contains no stored
                    text.
                  nullable: true
                linkedInUrl:
                  type: string
                  format: uri
                  description: LinkedIn URL of the post receiving the engagement.
                publishedAt:
                  type: string
                  description: When the post was published on LinkedIn.
                  example: '2025-06-30T14:02:07.456Z'
                format:
                  type: string
                  enum:
                    - Text
                    - Image
                    - Video
                    - Link
                    - Article
                    - Poll
                    - Job
                  description: Customer-facing post format.
                likeCount:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                  description: >-
                    LinkedIn like count, or null when it cannot be parsed
                    reliably.
                  nullable: true
                media:
                  type: object
                  properties:
                    kind:
                      type: string
                      enum:
                        - None
                        - Image
                        - Video
                      description: Media kind indicated by the LinkedIn post.
                    urls:
                      type: array
                      items:
                        type: string
                        format: uri
                      description: >-
                        Available media URLs. Empty for no media and currently
                        also for video posts because production does not persist
                        a video URL.
                  required:
                    - kind
                    - urls
                externalLink:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                      description: Destination linked from the LinkedIn post.
                    caption:
                      type: string
                      description: >-
                        Link/article caption, or null when LinkedIn did not
                        provide one.
                      nullable: true
                    summary:
                      type: string
                      description: >-
                        Available post/link summary, or null when none was
                        stored.
                      nullable: true
                  required:
                    - url
                    - caption
                    - summary
                  description: >-
                    Link/article metadata, or null when the post has no external
                    link.
                  nullable: true
                originalPost:
                  type: object
                  properties:
                    text:
                      type: string
                      description: Original post text, or null when unavailable.
                      nullable: true
                    linkedInUrl:
                      type: string
                      format: uri
                      description: Original post URL, or null when unavailable.
                      nullable: true
                    publishedAt:
                      type: string
                      description: >-
                        Original LinkedIn publication time, or null when
                        unavailable.
                      nullable: true
                      example: '2025-06-30T14:02:07.456Z'
                    author:
                      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: >-
                        Original post author. ID and LinkedIn URL are null when
                        the repost source did not provide them.
                    media:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - None
                            - Image
                            - Video
                          description: Media kind indicated by the LinkedIn post.
                        urls:
                          type: array
                          items:
                            type: string
                            format: uri
                          description: >-
                            Available media URLs. Empty for no media and
                            currently also for video posts because production
                            does not persist a video URL.
                      required:
                        - kind
                        - urls
                    externalLink:
                      type: object
                      properties:
                        url:
                          type: string
                          format: uri
                          description: Destination linked from the LinkedIn post.
                        caption:
                          type: string
                          description: >-
                            Link/article caption, or null when LinkedIn did not
                            provide one.
                          nullable: true
                        summary:
                          type: string
                          description: >-
                            Available post/link summary, or null when none was
                            stored.
                          nullable: true
                      required:
                        - url
                        - caption
                        - summary
                      nullable: true
                  required:
                    - text
                    - linkedInUrl
                    - publishedAt
                    - author
                    - media
                    - externalLink
                  description: >-
                    Original post for a repost-with-text, or null when this is
                    not a repost.
                  nullable: true
              required:
                - text
                - linkedInUrl
                - publishedAt
                - format
                - likeCount
                - media
                - externalLink
                - originalPost
            draft:
              type: object
              properties:
                text:
                  type: string
                  minLength: 1
                  description: >-
                    Effective comment text that will be posted if the action
                    includes a comment.
                source:
                  type: string
                  enum:
                    - Extrovert-generated
                    - Agent-authored
                  description: >-
                    Who supplied the effective text. Agent-authored includes
                    edits that override an Extrovert-generated body.
                updatedAt:
                  type: string
                  description: When the effective draft last changed.
                  example: '2025-06-30T14:02:07.456Z'
              required:
                - text
                - source
                - updatedAt
              description: >-
                Current effective draft, or null when no comment text exists or
                React only needs none.
              nullable: true
            reactionBehavior:
              oneOf:
                - type: object
                  properties:
                    behavior:
                      type: string
                      enum:
                        - Comment only
                    reaction:
                      description: No LinkedIn reaction is sent in Comment only mode.
                      nullable: true
                      enum:
                        - null
                      example: null
                      type: object
                  required:
                    - behavior
                    - reaction
                - type: object
                  properties:
                    behavior:
                      type: string
                      enum:
                        - Comment and react
                    reaction:
                      type: string
                      enum:
                        - Like
                        - Celebrate
                        - Support
                        - Love
                        - Insightful
                        - Funny
                      description: LinkedIn reaction sent with the approved comment.
                  required:
                    - behavior
                    - reaction
                - type: object
                  properties:
                    behavior:
                      type: string
                      enum:
                        - React only
                    reaction:
                      type: string
                      enum:
                        - Like
                        - Celebrate
                        - Support
                        - Love
                        - Insightful
                        - Funny
                      description: LinkedIn reaction sent without a comment.
                  required:
                    - behavior
                    - reaction
                - type: object
                  nullable: true
                  enum:
                    - null
                  example: null
              description: >-
                Selected comment/reaction behavior, or null before a behavior
                has been initialized.
            state:
              type: string
              enum:
                - Generating
                - Need approval
                - Pending
                - Error
                - Posted
                - Skipped
            plannedAt:
              type: string
              description: >-
                Planned posting time. Set only when the campaign spaces approved
                comments with a posting interval; null when posting starts
                immediately after approval — even while the comment is Pending
                or already Posted.
              nullable: true
              example: '2025-06-30T14:02:07.456Z'
            completedAt:
              type: string
              description: Posting/skip completion time, or null before a terminal result.
              nullable: true
              example: '2025-06-30T14:02:07.456Z'
            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 generation/posting failure, or null when no failure is
                active.
              nullable: true
            allowedActions:
              type: array
              items:
                type: string
                enum:
                  - generate-or-improve-draft
                  - set-draft-text
                  - set-reaction-behavior
                  - approve
                  - cancel-posting
                  - skip
                  - unskip
              description: Actions valid for the current state.
            updatedAt:
              type: string
              description: Latest owner-global comment state change.
              example: '2025-06-30T14:02:07.456Z'
        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

````