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

# List comments

> Lists one campaign's comment feed for an owner and review state. Results include the post, author, effective prospect context, current draft, state, and only actions valid now. `plannedAt` fills only when the campaign spaces approved comments with a posting interval — null means posting starts right after approval. This action does not change feed state.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json get /client/v2/comments
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:
    get:
      tags:
        - Comments
      summary: List comments
      description: >-
        Lists one campaign's comment feed for an owner and review state. Results
        include the post, author, effective prospect context, current draft,
        state, and only actions valid now. `plannedAt` fills only when the
        campaign spaces approved comments with a posting interval — null means
        posting starts right after approval. This action does not change feed
        state.
      operationId: CommentsClientApiController_getList
      parameters:
        - description: >-
            LinkedIn account owner whose campaign feed is being read. Often a
            managed account rather than the authenticated user — call
            `user_list-shared` first and pick the owner whose LinkedIn profile
            runs the campaign.
          required: true
          name: ownerId
          in: query
          schema:
            type: string
            format: uuid
        - description: >-
            Campaign that scopes this feed. Aggregated cross-campaign feed is
            not part of this action.
          required: true
          name: campaignId
          in: query
          schema:
            type: string
            format: uuid
        - description: Required customer-facing feed state.
          required: true
          name: view
          in: query
          schema:
            enum:
              - Need approval
              - Pending
              - Error
              - Posted
              - Skipped
            type: string
        - description: Optional Prospect List filter. Cannot be combined with keywordId.
          required: false
          name: prospectListId
          in: query
          schema:
            type: string
            format: uuid
        - description: Optional Keyword filter. Cannot be combined with prospectListId.
          required: false
          name: keywordId
          in: query
          schema:
            type: string
            format: uuid
        - description: Number of records requested for this page.
          required: false
          name: limit
          in: query
          schema:
            minimum: 1
            maximum: 50
            default: 20
            type: integer
        - description: Offset from the start of the filtered result set.
          required: false
          name: offset
          in: query
          schema:
            minimum: 0
            maximum: 9007199254740991
            default: 0
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListResponseDto3'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    GetListResponseDto3:
      type: object
      properties:
        status:
          type: string
          description: Response status
          enum:
            - success
        data:
          type: object
          properties:
            comments:
              type: array
              items:
                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'
                required:
                  - postId
                  - ownerId
                  - author
                  - prospect
                  - engagementRoute
                  - campaign
                  - prospectList
                  - keyword
                  - topic
                  - engagementContexts
                  - post
                  - draft
                  - reactionBehavior
                  - state
                  - plannedAt
                  - completedAt
                  - error
                  - allowedActions
                  - updatedAt
            pagination:
              description: Pagination information, if returned by the backend
              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
        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

````