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

> ## Agent Instructions
> - Base URLs: models `https://api.aisa.one/v1` (Gemini GenerateContent: `https://api.aisa.one/v1beta`); data APIs `https://api.aisa.one/apis/v1`. The `servers` of each operation in https://aisa.one/openapi.yaml is authoritative.
> - Auth: `Authorization: Bearer $AISA_API_KEY`. Never print, log, or commit the key.
> - MCP (preferred for agents): `https://mcp.aisa.one/mcp`, signed in with OAuth, so there is no key to paste.
> - Agent Skill: `npx skills add AIsa-team/agent-skills --skill aisa`. Fallback with the AIsa CLI: `aisa skills install aisa`.
> - Spending: docs, https://aisa.one/models, https://aisa.one/api, `/v1/models`, and MCP `search`, `list_categories`, `get_details`, `batch_quote`, and the `account` operation are free. Quote the exact calls before running them (MCP `batch_quote`, CLI `aisa quote --json`). If the quote reports `auto_execute_eligible: true`, run it unless the user set a tighter limit or asked only for a quote. Otherwise, tell the user in one message the planned calls, the quoted price, and a total USD budget for the task, then wait for approval. Direct HTTP calls follow the stricter rule at https://aisa.one/docs/get-started/cli.md#direct-http-fallback. Do not make paid calls to test availability. Full rule: https://aisa.one/llms.txt

# Get post comments

> Comments. Read only; needs social:read. Ids are yours: accounts acc_..., profiles prf_..., posts pst_...; every other object id is checked against your accounts before the call.

Fetch comments for a specific post. Requires accountId query parameter.

### Replies to a comment

Pass `commentId` (Facebook, Instagram, Reddit, TikTok) to fetch replies to a specific comment instead of the post's top-level comments.

- Facebook, Instagram and TikTok return the comment's replies, paged by `limit`/`cursor`.
- Reddit returns the focused comment thread instead.
- On Facebook and Instagram the requested comment itself comes back in the top-level `comment` field.

On Facebook, passing a COMMENT id as `postId` (instead of using `commentId`) is also supported for backwards compatibility. It returns that comment's replies the same way.

Prefer `commentId` for new integrations; it also works on Instagram, which rejects a comment id passed as `postId`. YouTube does not support either form: `postId` must be a video id.

### Caching

Responses are cached for up to 10 minutes, so a page may lag new comments by that window.

Do not poll this endpoint for real-time updates: subscribe to the `comment.received` webhook, which delivers new comments as they arrive. Your own writes (creating, replying to, or deleting a comment) refresh the cache immediately.

### TikTok

TikTok is served for accounts connected through the TikTok for Business app:

- `postId` is the TikTok video id.
- Each top-level comment carries up to three inline replies.
- `commentId` pages the full reply list of one comment.

Developer-app TikTok accounts return 400 with code `PLATFORM_LIMITATION`.

### X (Twitter)

When `postId` is itself a reply rather than the thread's root post, only replies to that specific post are returned, not the whole conversation thread.

### Hidden comments

- Facebook Pages and Instagram accounts connected through Instagram Login return them with `isHidden: true`.
- Instagram accounts connected through Facebook Login do not return them at all (Meta omits them, together with their replies). So a hidden comment and a deleted one look the same on this read.

<!-- aisa-pricing:start -->
当前未提供请求参考价格；请使用接口支持的报价功能确认费用。 最终费用以账户适用价格及实际结算为准。
<!-- aisa-pricing:end -->

## 请求规范

* **方法与路径:** GET /apis/v1/social/inbox/comments/\{postId}
* **可用状态:** enabled
* **请求 URL 模板:** `https://api.aisa.one/apis/v1/social/inbox/comments/{postId}`
* **postId:** path; 必填
* **accountId:** query; 必填
* **subreddit:** query; 可选
* **limit:** query; 可选
* **cursor:** query; 可选
* **commentId:** query; 可选
* **Runtime 事实版本:** 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd

[完整 OpenAPI 定义](https://aisa.one/docs/reference-contracts/zh/aisa-social.json)

有效请求与价格声明（包括认证和引用的 schema）：

```json theme={null}
{
  "operationId": "get_aisa_social_apis_v1_social_inbox_comments_postid",
  "method": "GET",
  "path": "/apis/v1/social/inbox/comments/{postId}",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "description": "AIsa post ID or platform-specific post ID. AIsa IDs are auto-resolved.\n\n- **LinkedIn:** pass the post id exactly as the feed returns it (urn:li:share:<id> or urn:li:ugcPost:<id>). A bare number is read as an activity id (urn:li:activity:<n>, the number in a linkedin.com/feed/update URL), so a share or ugcPost number passed bare returns an empty list.\n- **Facebook:** a comment ID is also accepted and returns that comment's replies (kept for backwards compatibility). Prefer the `commentId` query parameter, which also works on Instagram.",
      "in": "path",
      "name": "postId",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "One of your social accounts (acc_...).",
      "in": "query",
      "name": "accountId",
      "required": true,
      "schema": {
        "pattern": "^acc_[0-9A-Za-z]{22}$",
        "type": "string"
      }
    },
    {
      "description": "(Reddit only) Subreddit name",
      "in": "query",
      "name": "subreddit",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Maximum number of comments to return",
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
        "default": 25,
        "maximum": 100,
        "minimum": 1,
        "type": "integer"
      }
    },
    {
      "description": "Pagination cursor, returned by a previous call as `pagination.cursor`. This is the platform's own opaque paging value passed through verbatim: never construct, decode or validate it client-side.",
      "in": "query",
      "name": "cursor",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "(Facebook, Instagram, Reddit and TikTok) Get replies to a specific comment. On Facebook and Instagram, the requested comment is returned in the top-level `comment` field and comments[] holds its replies.",
      "in": "query",
      "name": "commentId",
      "required": false,
      "schema": {
        "type": "string"
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "x-aisa-status": "enabled",
  "x-aisa-pricing": {
    "description": "Included with your connected social accounts: AIsa does not charge per call.",
    "kind": "no_customer_charge"
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  }
}
```

## 费用与请求规则

当前未提供请求参考价格；请使用接口支持的报价功能确认费用。 最终费用以账户适用价格及实际结算为准。

公开参考值不是你的账户报价或最终扣费。对于支持 X-AISA-Cost-Mode: quote 的接口，执行前请针对完整请求获取免费报价；执行后通过响应费用元数据和 Usage Logs 核对结算费用。1 USD 等于 1,000,000 个整数 micro-USD。


## OpenAPI

````yaml reference-contracts/zh/aisa-social.json GET /apis/v1/social/inbox/comments/{postId}
openapi: 3.1.0
info:
  description: ''
  title: AIsa Social
  version: '1'
  x-aisa-capabilities:
    idempotency: Idempotency-Key
    max_price: X-AISA-Max-Price-USD
    quote:
      header: X-AISA-Cost-Mode
      value: quote
  x-aisa-configured-paths: []
  x-aisa-document:
    facts_hash: 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd
    generator_version: '3'
    protocol_version: '1'
    schema_version: '1'
    composer_version: '27'
    response_pending: []
    document_hash: sha256:7f9742cb1ea233c648dcb290fdfbf24e53a27dcf900ec1386f83a8ef2e6b1bf9
  x-aisa-plans:
    builder: 1
    display_plan: payg
    payg: 1
    similarweb_payg: 1
    team: 1
    version: e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb
  x-aisa-provider: aisa-social
  x-aisa-catalogs:
    aisa-social:
      title: AIsa Social
      description: ''
      x-aisa-document:
        facts_hash: 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd
        generator_version: '3'
        protocol_version: '1'
        schema_version: '1'
      x-aisa-plans:
        builder: 1
        display_plan: payg
        payg: 1
        similarweb_payg: 1
        team: 1
        version: e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb
      x-aisa-capabilities:
        idempotency: Idempotency-Key
        max_price: X-AISA-Max-Price-USD
        quote:
          header: X-AISA-Cost-Mode
          value: quote
servers:
  - url: https://api.aisa.one
security:
  - bearerAuth: []
paths:
  /apis/v1/social/inbox/comments/{postId}:
    get:
      summary: Get post comments
      description: >-
        Comments. Read only; needs social:read. Ids are yours: accounts acc_...,
        profiles prf_..., posts pst_...; every other object id is checked
        against your accounts before the call.


        Fetch comments for a specific post. Requires accountId query parameter.


        ### Replies to a comment


        Pass `commentId` (Facebook, Instagram, Reddit, TikTok) to fetch replies
        to a specific comment instead of the post's top-level comments.


        - Facebook, Instagram and TikTok return the comment's replies, paged by
        `limit`/`cursor`.

        - Reddit returns the focused comment thread instead.

        - On Facebook and Instagram the requested comment itself comes back in
        the top-level `comment` field.


        On Facebook, passing a COMMENT id as `postId` (instead of using
        `commentId`) is also supported for backwards compatibility. It returns
        that comment's replies the same way.


        Prefer `commentId` for new integrations; it also works on Instagram,
        which rejects a comment id passed as `postId`. YouTube does not support
        either form: `postId` must be a video id.


        ### Caching


        Responses are cached for up to 10 minutes, so a page may lag new
        comments by that window.


        Do not poll this endpoint for real-time updates: subscribe to the
        `comment.received` webhook, which delivers new comments as they arrive.
        Your own writes (creating, replying to, or deleting a comment) refresh
        the cache immediately.


        ### TikTok


        TikTok is served for accounts connected through the TikTok for Business
        app:


        - `postId` is the TikTok video id.

        - Each top-level comment carries up to three inline replies.

        - `commentId` pages the full reply list of one comment.


        Developer-app TikTok accounts return 400 with code
        `PLATFORM_LIMITATION`.


        ### X (Twitter)


        When `postId` is itself a reply rather than the thread's root post, only
        replies to that specific post are returned, not the whole conversation
        thread.


        ### Hidden comments


        - Facebook Pages and Instagram accounts connected through Instagram
        Login return them with `isHidden: true`.

        - Instagram accounts connected through Facebook Login do not return them
        at all (Meta omits them, together with their replies). So a hidden
        comment and a deleted one look the same on this read.


        <!-- aisa-pricing:start -->

        当前未提供请求参考价格；请使用接口支持的报价功能确认费用。 最终费用以账户适用价格及实际结算为准。

        <!-- aisa-pricing:end -->
      operationId: get_aisa_social_apis_v1_social_inbox_comments_postid
      parameters:
        - description: >-
            AIsa post ID or platform-specific post ID. AIsa IDs are
            auto-resolved.


            - **LinkedIn:** pass the post id exactly as the feed returns it
            (urn:li:share:<id> or urn:li:ugcPost:<id>). A bare number is read as
            an activity id (urn:li:activity:<n>, the number in a
            linkedin.com/feed/update URL), so a share or ugcPost number passed
            bare returns an empty list.

            - **Facebook:** a comment ID is also accepted and returns that
            comment's replies (kept for backwards compatibility). Prefer the
            `commentId` query parameter, which also works on Instagram.
          in: path
          name: postId
          required: true
          schema:
            type: string
        - description: One of your social accounts (acc_...).
          in: query
          name: accountId
          required: true
          schema:
            pattern: ^acc_[0-9A-Za-z]{22}$
            type: string
        - description: (Reddit only) Subreddit name
          in: query
          name: subreddit
          required: false
          schema:
            type: string
        - description: Maximum number of comments to return
          in: query
          name: limit
          required: false
          schema:
            default: 25
            maximum: 100
            minimum: 1
            type: integer
        - description: >-
            Pagination cursor, returned by a previous call as
            `pagination.cursor`. This is the platform's own opaque paging value
            passed through verbatim: never construct, decode or validate it
            client-side.
          in: query
          name: cursor
          required: false
          schema:
            type: string
        - description: >-
            (Facebook, Instagram, Reddit and TikTok) Get replies to a specific
            comment. On Facebook and Instagram, the requested comment is
            returned in the top-level `comment` field and comments[] holds its
            replies.
          in: query
          name: commentId
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  comment:
                    description: >-
                      (Facebook and Instagram only) Present when `commentId` was
                      passed: the requested

                      comment itself, in the same shape as an entry in
                      comments[]. comments[] then holds

                      that comment's replies instead of the post's top-level
                      comments.
                    type: object
                  comments:
                    items:
                      properties:
                        canDelete:
                          type: boolean
                        canHide:
                          description: >-
                            Whether this comment can be hidden (Facebook,
                            Instagram, Threads)
                          type: boolean
                        canLike:
                          description: >-
                            Whether this comment can be liked (Facebook, X,
                            Bluesky, Reddit, LinkedIn)
                          type: boolean
                        canReply:
                          type: boolean
                        cid:
                          description: Bluesky content identifier
                          type:
                            - string
                            - 'null'
                        createdTime:
                          format: date-time
                          type: string
                        from:
                          properties:
                            id:
                              type: string
                            isOwner:
                              type: boolean
                            name:
                              type: string
                            picture:
                              type:
                                - string
                                - 'null'
                            username:
                              type: string
                            verifiedType:
                              description: >-
                                X verified badge type. Only present for X
                                comments.
                              enum:
                                - blue
                                - government
                                - business
                                - none
                              type:
                                - string
                                - 'null'
                          type: object
                        id:
                          type: string
                        isHidden:
                          description: >-
                            Whether the comment is currently hidden. On
                            Instagram accounts connected through Facebook Login,
                            Meta leaves hidden comments (and their replies) out
                            of the list entirely, so they never appear with
                            isHidden true; Instagram Login accounts and Facebook
                            Pages return them with isHidden true.
                          type: boolean
                        isLiked:
                          description: Whether the current user has liked this comment
                          type: boolean
                        likeCount:
                          type: integer
                        likeUri:
                          description: Bluesky like URI for unliking
                          type:
                            - string
                            - 'null'
                        message:
                          type: string
                        parentId:
                          description: >-
                            ID of the parent comment.


                            - Facebook and Instagram: present on entries inside
                            replies[]; omitted on top-level entries.

                            - X: present inside replies[] and on top-level
                            entries, where it holds the ID of the post replied
                            to.

                            - Every other platform: omitted; the parent
                            relationship is expressed only through replies[]
                            nesting.


                            When omitted, the key is absent, not null.
                          type:
                            - string
                            - 'null'
                        platform:
                          description: The platform this comment is from
                          type: string
                        replies:
                          items:
                            type: object
                          type: array
                        repliesHasMore:
                          description: >-
                            Facebook only. True when replies[] (capped at 10)
                            does not hold the comment's full reply thread.


                            Fetch the rest by passing the comment id as the
                            `commentId` query parameter to GET
                            /apis/v1/social/inbox/comments/{postId} (or, for
                            backwards compatibility, as `postId`).


                            Absent (not false) on every other platform,
                            including Instagram, which has no equivalent signal.
                          type: boolean
                        replyCount:
                          description: >-
                            The platform's own reply count, which includes
                            hidden and deleted replies. Can exceed
                            replies[].length even when repliesHasMore is false
                            or absent.
                          type: integer
                        rootCid:
                          description: Bluesky root post CID
                          type:
                            - string
                            - 'null'
                        rootUri:
                          description: Bluesky root post URI
                          type:
                            - string
                            - 'null'
                        url:
                          description: >-
                            Direct link to the comment on the platform (if
                            available)
                          type:
                            - string
                            - 'null'
                      type: object
                    type: array
                  meta:
                    properties:
                      accountId:
                        description: One of your social accounts (acc_...).
                        pattern: ^acc_[0-9A-Za-z]{22}$
                        type: string
                      adComments:
                        description: >-
                          (Facebook/Instagram only) Present when this post has
                          no organic comments but is a boosted post: the
                          engagement lives on the ad. Use the ad-comments
                          endpoint instead.
                        properties:
                          adCommentsUrl:
                            description: >-
                              Path to fetch the ad's comments (GET
                              /apis/v1/ads/{adId}/comments)
                            type: string
                          adId:
                            description: Internal AIsa ad ID
                            type: string
                        type:
                          - object
                          - 'null'
                      lastUpdated:
                        format: date-time
                        type: string
                      platform:
                        type: string
                      postId:
                        type: string
                      postUrn:
                        description: >-
                          (LinkedIn only) The post URN that was queried, after a
                          bare number is read as urn:li:activity:<n>
                        type: string
                      subreddit:
                        description: (Reddit only) Subreddit name
                        type:
                          - string
                          - 'null'
                    type: object
                  pagination:
                    properties:
                      cursor:
                        description: >-
                          Only present when hasMore is true. Absent on the last
                          page, so treat its absence as the end of the thread.
                        type:
                          - string
                          - 'null'
                      hasMore:
                        type: boolean
                    type: object
                  post:
                    anyOf:
                      - properties:
                          author:
                            description: Reddit username, without the u/ prefix
                            type: string
                          createdUtc:
                            description: Unix timestamp in seconds
                            type: integer
                          flairText:
                            description: Link flair text if any
                            type:
                              - string
                              - 'null'
                          fullname:
                            description: Fullname with type prefix (e.g. "t3_1tjtj26")
                            type: string
                          id:
                            description: Reddit post base36 id (e.g. "1tjtj26")
                            type: string
                          isGallery:
                            description: >-
                              True if the post is a Reddit gallery (multiple
                              images)
                            type: boolean
                          numComments:
                            type: integer
                          over18:
                            type: boolean
                          permalink:
                            description: Absolute URL to the post on reddit.com
                            type: string
                          score:
                            description: Net upvotes (upvotes minus downvotes)
                            type: integer
                          selftext:
                            description: Body text for self-posts (empty for link posts)
                            type: string
                          stickied:
                            type: boolean
                          subreddit:
                            description: Subreddit name, without the r/ prefix
                            type: string
                          title:
                            type: string
                          url:
                            description: >-
                              For link posts, the external URL; for self-posts,
                              the Reddit permalink
                            type: string
                        type: object
                      - properties:
                          createdAt:
                            description: >-
                              Creation time as Meta returns it (e.g.
                              2026-05-27T17:15:51+0000)
                            type:
                              - string
                              - 'null'
                          id:
                            description: >-
                              Facebook post id ({pageId}_{postId}) or Instagram
                              media id
                            type: string
                          mediaType:
                            description: >-
                              Instagram `media_type` (IMAGE, VIDEO,
                              CAROUSEL_ALBUM) or the Facebook attachment type
                              (photo, video_inline, link, ...)
                            type:
                              - string
                              - 'null'
                          mediaUrl:
                            description: >-
                              Instagram `media_url` (the video file for videos).
                              Always null on Facebook. Expiring Meta CDN URL.
                            format: uri
                            type:
                              - string
                              - 'null'
                          permalink:
                            format: uri
                            type:
                              - string
                              - 'null'
                          productType:
                            description: >-
                              Instagram `media_product_type`: AD, FEED, REELS or
                              STORY. Always null on Facebook.
                            type:
                              - string
                              - 'null'
                          text:
                            description: Facebook post message or Instagram caption
                            type:
                              - string
                              - 'null'
                          thumbnailUrl:
                            description: >-
                              Facebook `full_picture` (or the first attachment
                              image); Instagram `thumbnail_url` for videos,
                              `media_url` for images. Expiring Meta CDN URL.
                            format: uri
                            type:
                              - string
                              - 'null'
                        required:
                          - createdAt
                          - id
                          - mediaType
                          - mediaUrl
                          - permalink
                          - productType
                          - text
                          - thumbnailUrl
                        type: object
                      - type: 'null'
                    description: >-
                      (Reddit, Facebook and Instagram) Metadata for the target
                      post, returned with the comments so you can render a
                      preview without another request.


                      **Facebook and Instagram** return the Meta shape: post
                      thumbnail, text and permalink, for any post the account
                      can read, including hidden dark posts Meta publishes per
                      ad variant (dynamic creative, placement asset
                      customization, Advantage+).


                      - Facebook posts need the Facebook Page connection;
                      Instagram media the Instagram connection.

                      - `thumbnailUrl` and `mediaUrl` are expiring Meta CDN
                      URLs: store a copy to render them later.

                      - On Instagram, `productType` tells an ad (`AD`) from
                      organic media (`FEED`, `REELS`, `STORY`).


                      **Absent** on other platforms, when the connection's token
                      cannot read the post, and on Reddit when the upstream
                      response lacks the post listing (deleted post, malformed
                      response).
                  status:
                    type: string
                type: object
          description: Comments for the post
        default:
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type:
                          - string
                          - 'null'
                      details:
                        additionalProperties: {}
                        type:
                          - object
                          - 'null'
                      message:
                        type:
                          - string
                          - 'null'
                      param:
                        type:
                          - string
                          - 'null'
                      retryHint:
                        enum:
                          - never
                          - after_delay
                          - after_reconnect
                          - reconcile_first
                          - null
                        type:
                          - string
                          - 'null'
                      retryable:
                        type:
                          - boolean
                          - 'null'
                      type:
                        type:
                          - string
                          - 'null'
                    type:
                      - object
                      - 'null'
                type: object
          description: Error. The code field is stable; see the error catalog.
components:
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````

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