> ## 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 Main Feed comments

> Lists one page of an owner's Main Feed: the comment feed of every campaign that owner runs, merged into a single order and deduplicated so one LinkedIn post appears once even when several campaigns collected it. Each record carries the post, author, effective prospect context, current draft, state, and only the actions valid now; `engagementContexts` lists every campaign context the same comment is visible in. `pagination.total` counts the whole deduplicated owner-wide feed for the requested state, not one campaign. This action does not change feed state and never starts comment generation. After a mutation — approving or skipping a comment — restart paging from `offset = 0`, because a page taken at a stale offset can skip or repeat records; this matters most in `Need approval`, which is re-ranked on every request, while the other views are ordered by lifecycle transition time and do not reorder.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json get /client/v2/main-feed
openapi: 3.1.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/main-feed:
    get:
      tags:
        - Main Feed
      summary: List Main Feed comments
      description: >-
        Lists one page of an owner's Main Feed: the comment feed of every
        campaign that owner runs, merged into a single order and deduplicated so
        one LinkedIn post appears once even when several campaigns collected it.
        Each record carries the post, author, effective prospect context,
        current draft, state, and only the actions valid now;
        `engagementContexts` lists every campaign context the same comment is
        visible in. `pagination.total` counts the whole deduplicated owner-wide
        feed for the requested state, not one campaign. This action does not
        change feed state and never starts comment generation. After a mutation
        — approving or skipping a comment — restart paging from `offset = 0`,
        because a page taken at a stale offset can skip or repeat records; this
        matters most in `Need approval`, which is re-ranked on every request,
        while the other views are ordered by lifecycle transition time and do
        not reorder.
      operationId: MainFeedClientApiController_getList
      parameters:
        - description: >-
            LinkedIn account owner whose Main Feed is being read. Often a
            managed account rather than the authenticated user.
          required: true
          name: ownerId
          in: query
          schema:
            type: string
            format: uuid
        - description: >-
            Feed view, not an exact item-state filter. Need approval may include
            manual generation; Pending includes accepted generation or posting.
            Inspect each item’s state and `allowedActions`.
          required: true
          name: view
          in: query
          schema:
            enum:
              - Need approval
              - Pending
              - Error
              - Posted
              - Skipped
            type: string
        - description: Number of records requested for this page.
          required: false
          name: limit
          in: query
          schema:
            minimum: 1
            maximum: 50
            default: 10
            type: integer
        - description: Offset from the start of the owner-wide result set.
          required: false
          name: offset
          in: query
          schema:
            minimum: 0
            maximum: 2147483647
            default: 0
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListResponseDto4'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    GetListResponseDto4:
      type: object
      properties:
        status:
          type: string
          const: success
          description: Response status
        data:
          type: object
          properties:
            comments:
              type: array
              items:
                type: object
                properties:
                  postId:
                    type: string
                    format: uuid
                    description: LinkedIn post identity inside Extrovert.
                    examples:
                      - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  ownerId:
                    type: string
                    format: uuid
                    description: >-
                      LinkedIn account owner whose profile will engage with the
                      post.
                    examples:
                      - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  author:
                    type: object
                    properties:
                      id:
                        anyOf:
                          - type: string
                            format: uuid
                          - type: 'null'
                        description: >-
                          Extrovert prospect/profile ID when one exists in the
                          current workspace; null when only LinkedIn profile
                          data is available.
                      name:
                        type: string
                        description: Person's current LinkedIn display name.
                      linkedInUrl:
                        anyOf:
                          - type: string
                            format: uri
                          - type: 'null'
                        description: LinkedIn profile URL, or null when it is unavailable.
                      headline:
                        anyOf:
                          - type: string
                          - type: 'null'
                        description: LinkedIn headline, or null when it is unavailable.
                      avatarUrl:
                        anyOf:
                          - type: string
                            format: uri
                          - type: 'null'
                        description: Profile image URL, or null when it is unavailable.
                    required:
                      - id
                      - name
                      - linkedInUrl
                      - headline
                      - avatarUrl
                    description: Person whose post receives the engagement.
                  prospect:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            anyOf:
                              - type: string
                                format: uuid
                              - type: 'null'
                            description: >-
                              Extrovert prospect/profile ID when one exists in
                              the current workspace; null when only LinkedIn
                              profile data is available.
                          name:
                            type: string
                            description: Person's current LinkedIn display name.
                          linkedInUrl:
                            anyOf:
                              - type: string
                                format: uri
                              - type: 'null'
                            description: >-
                              LinkedIn profile URL, or null when it is
                              unavailable.
                          headline:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: LinkedIn headline, or null when it is unavailable.
                          avatarUrl:
                            anyOf:
                              - type: string
                                format: uri
                              - type: 'null'
                            description: Profile image URL, or null when it is unavailable.
                        required:
                          - id
                          - name
                          - linkedInUrl
                          - headline
                          - avatarUrl
                      - type: 'null'
                    description: >-
                      Primary relationship target: the author for Direct,
                      another person for Indirect, and null for Topical
                      engagement.
                  engagementRoute:
                    type: string
                    enum:
                      - Direct
                      - Indirect
                      - Topical
                  campaign:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Stable Extrovert entity ID.
                        examples:
                          - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                      name:
                        type: string
                        description: Customer-facing entity name.
                    required:
                      - id
                      - name
                  prospectList:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            description: Stable Extrovert entity ID.
                            examples:
                              - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                          name:
                            type: string
                            description: Customer-facing entity name.
                        required:
                          - id
                          - name
                      - type: 'null'
                  keyword:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            description: Stable Extrovert entity ID.
                            examples:
                              - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                          name:
                            type: string
                            description: Customer-facing entity name.
                        required:
                          - id
                          - name
                      - type: 'null'
                  topic:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            description: Stable Extrovert entity ID.
                            examples:
                              - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                          name:
                            type: string
                            description: Customer-facing entity name.
                        required:
                          - id
                          - name
                      - type: 'null'
                  engagementContexts:
                    minItems: 1
                    type: array
                    items:
                      type: object
                      properties:
                        campaign:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: Stable Extrovert entity ID.
                              examples:
                                - 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:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: Stable Extrovert entity ID.
                                  examples:
                                    - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                                name:
                                  type: string
                                  description: Customer-facing entity name.
                              required:
                                - id
                                - name
                            - type: 'null'
                          description: >-
                            Prospect List for this context, or null outside a
                            Prospect List.
                        keyword:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: Stable Extrovert entity ID.
                                  examples:
                                    - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                                name:
                                  type: string
                                  description: Customer-facing entity name.
                              required:
                                - id
                                - name
                            - type: 'null'
                          description: >-
                            Tracked keyword for this context, or null outside
                            Keyword collection.
                        topic:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: Stable Extrovert entity ID.
                                  examples:
                                    - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                                name:
                                  type: string
                                  description: Customer-facing entity name.
                              required:
                                - id
                                - name
                            - type: 'null'
                          description: >-
                            Matched Monitored Topic, or null when no topic was
                            assigned.
                        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:
                          anyOf:
                            - type: object
                              properties:
                                id:
                                  anyOf:
                                    - type: string
                                      format: uuid
                                    - type: 'null'
                                  description: >-
                                    Extrovert prospect/profile ID when one
                                    exists in the current workspace; null when
                                    only LinkedIn profile data is available.
                                name:
                                  type: string
                                  description: Person's current LinkedIn display name.
                                linkedInUrl:
                                  anyOf:
                                    - type: string
                                      format: uri
                                    - type: 'null'
                                  description: >-
                                    LinkedIn profile URL, or null when it is
                                    unavailable.
                                headline:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                  description: >-
                                    LinkedIn headline, or null when it is
                                    unavailable.
                                avatarUrl:
                                  anyOf:
                                    - type: string
                                      format: uri
                                    - type: 'null'
                                  description: >-
                                    Profile image URL, or null when it is
                                    unavailable.
                              required:
                                - id
                                - name
                                - linkedInUrl
                                - headline
                                - avatarUrl
                            - type: 'null'
                          description: >-
                            Effective relationship target for this context; null
                            only for Topical engagement without a prospect.
                      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:
                        anyOf:
                          - type: string
                          - type: 'null'
                        description: >-
                          LinkedIn post text, or null when the post contains no
                          stored text.
                      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.
                        examples:
                          - '2025-06-30T14:02:07.456Z'
                          - '2025-07-03T08:30:00.000Z'
                      format:
                        type: string
                        enum:
                          - Text
                          - Image
                          - Video
                          - Link
                          - Article
                          - Poll
                          - Job
                          - Celebration
                        description: Customer-facing post format.
                      likeCount:
                        anyOf:
                          - type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          - type: 'null'
                        description: >-
                          LinkedIn like count, or null when it cannot be parsed
                          reliably.
                      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:
                        anyOf:
                          - type: object
                            properties:
                              url:
                                type: string
                                format: uri
                                description: Destination linked from the LinkedIn post.
                              caption:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                                description: >-
                                  Link/article caption, or null when LinkedIn
                                  did not provide one.
                              summary:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                                description: >-
                                  Available post/link summary, or null when none
                                  was stored.
                            required:
                              - url
                              - caption
                              - summary
                          - type: 'null'
                        description: >-
                          Link/article metadata, or null when the post has no
                          external link.
                      originalPost:
                        anyOf:
                          - type: object
                            properties:
                              text:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                                description: Original post text, or null when unavailable.
                              linkedInUrl:
                                anyOf:
                                  - type: string
                                    format: uri
                                  - type: 'null'
                                description: Original post URL, or null when unavailable.
                              publishedAt:
                                anyOf:
                                  - type: string
                                    description: Date and time in ISO 8601 format
                                    examples:
                                      - '2025-06-30T14:02:07.456Z'
                                      - '2025-07-03T08:30:00.000Z'
                                  - type: 'null'
                                description: >-
                                  Original LinkedIn publication time, or null
                                  when unavailable.
                              author:
                                type: object
                                properties:
                                  id:
                                    anyOf:
                                      - type: string
                                        format: uuid
                                      - type: 'null'
                                    description: >-
                                      Extrovert prospect/profile ID when one
                                      exists in the current workspace; null when
                                      only LinkedIn profile data is available.
                                  name:
                                    type: string
                                    description: Person's current LinkedIn display name.
                                  linkedInUrl:
                                    anyOf:
                                      - type: string
                                        format: uri
                                      - type: 'null'
                                    description: >-
                                      LinkedIn profile URL, or null when it is
                                      unavailable.
                                  headline:
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                    description: >-
                                      LinkedIn headline, or null when it is
                                      unavailable.
                                  avatarUrl:
                                    anyOf:
                                      - type: string
                                        format: uri
                                      - type: 'null'
                                    description: >-
                                      Profile image URL, or null when it is
                                      unavailable.
                                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:
                                anyOf:
                                  - type: object
                                    properties:
                                      url:
                                        type: string
                                        format: uri
                                        description: >-
                                          Destination linked from the LinkedIn
                                          post.
                                      caption:
                                        anyOf:
                                          - type: string
                                          - type: 'null'
                                        description: >-
                                          Link/article caption, or null when
                                          LinkedIn did not provide one.
                                      summary:
                                        anyOf:
                                          - type: string
                                          - type: 'null'
                                        description: >-
                                          Available post/link summary, or null
                                          when none was stored.
                                    required:
                                      - url
                                      - caption
                                      - summary
                                  - type: 'null'
                            required:
                              - text
                              - linkedInUrl
                              - publishedAt
                              - author
                              - media
                              - externalLink
                          - type: 'null'
                        description: >-
                          Original post for a repost-with-text, or null when
                          this is not a repost.
                    required:
                      - text
                      - linkedInUrl
                      - publishedAt
                      - format
                      - likeCount
                      - media
                      - externalLink
                      - originalPost
                  draft:
                    anyOf:
                      - 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.
                            examples:
                              - '2025-06-30T14:02:07.456Z'
                              - '2025-07-03T08:30:00.000Z'
                        required:
                          - text
                          - source
                          - updatedAt
                      - type: 'null'
                    description: >-
                      Current effective draft, or null when no comment text
                      exists or React only needs none.
                  reactionBehavior:
                    anyOf:
                      - oneOf:
                          - type: object
                            properties:
                              behavior:
                                type: string
                                const: Comment only
                              reaction:
                                type: 'null'
                                description: >-
                                  No LinkedIn reaction is sent in Comment only
                                  mode.
                            required:
                              - behavior
                              - reaction
                          - type: object
                            properties:
                              behavior:
                                type: string
                                const: 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
                                const: React only
                              reaction:
                                type: string
                                enum:
                                  - Like
                                  - Celebrate
                                  - Support
                                  - Love
                                  - Insightful
                                  - Funny
                                description: LinkedIn reaction sent without a comment.
                            required:
                              - behavior
                              - reaction
                      - type: '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:
                    anyOf:
                      - type: string
                        description: Date and time in ISO 8601 format
                        examples:
                          - '2025-06-30T14:02:07.456Z'
                          - '2025-07-03T08:30:00.000Z'
                      - type: 'null'
                    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.
                  completedAt:
                    anyOf:
                      - type: string
                        description: Date and time in ISO 8601 format
                        examples:
                          - '2025-06-30T14:02:07.456Z'
                          - '2025-07-03T08:30:00.000Z'
                      - type: 'null'
                    description: >-
                      Posting/skip completion time, or null before a terminal
                      result.
                  error:
                    anyOf:
                      - 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:
                            anyOf:
                              - type: string
                                description: Date and time in ISO 8601 format
                                examples:
                                  - '2025-06-30T14:02:07.456Z'
                                  - '2025-07-03T08:30:00.000Z'
                              - type: 'null'
                            description: >-
                              When this failure was recorded, or null when no
                              reliable timestamp exists.
                        required:
                          - code
                          - message
                          - retryable
                          - occurredAt
                      - type: 'null'
                    description: >-
                      Current generation/posting failure, or null when no
                      failure is active.
                  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.
                    examples:
                      - '2025-06-30T14:02:07.456Z'
                      - '2025-07-03T08:30:00.000Z'
                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
          required:
            - comments
            - pagination
        message:
          type: string
          description: Success message
          examples:
            - 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

````

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