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

# Set comment moderation status

> Comments. Acts in public on your connected account; needs social:publish. Audited. Ids are yours: accounts acc_..., profiles prf_..., posts pst_...; every other object id is checked against your accounts before the call.

Set a comment's moderation status. Supported on YouTube only.

Use this to work a moderation queue: approve a held comment (`published`), reject it
(`rejected`), or send it back for review (`heldForReview`).

The request must be authorized by the owner of the channel or video the comment
belongs to. You cannot moderate comments on videos you do not own.

This is distinct from `POST /apis/v1/social/inbox/comments/{postId}/{commentId}/hide`, which
covers Facebook, Instagram, Threads, and X and does not apply to YouTube.

<!-- aisa-pricing:start -->
A request reference price is not currently available; use a request quote where supported. Account-specific pricing and final settlement may differ.
<!-- aisa-pricing:end -->

## Request contract

* **Method and path:** POST /apis/v1/social/inbox/comments/\{postId}/\{commentId}/moderation
* **Availability:** enabled
* **Request URL template:** `https://api.aisa.one/apis/v1/social/inbox/comments/{postId}/{commentId}/moderation`
* **postId:** path; required
* **commentId:** path; required
* **Runtime facts:** 99acb5bddbedc8d3352e7c4fef86c3e6d8852c14772bcd18dbcf415237a642bd

[Complete OpenAPI definition](https://aisa.one/docs/reference-contracts/aisa-social.json)

Effective request and pricing declaration (including authentication and referenced schemas):

```json theme={null}
{
  "operationId": "post_aisa_social_apis_v1_social_inbox_comments_po_671930",
  "method": "POST",
  "path": "/apis/v1/social/inbox/comments/{postId}/{commentId}/moderation",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "in": "path",
      "name": "postId",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "example": {
          "accountId": "acc_7Hq2Lm9Xc4Rt8Vw1Nb6Ks3",
          "banAuthor": true,
          "moderationStatus": "rejected",
          "platform": "youtube"
        },
        "schema": {
          "properties": {
            "accountId": {
              "description": "One of your social accounts (acc_...).",
              "pattern": "^acc_[0-9A-Za-z]{22}$",
              "type": "string"
            },
            "banAuthor": {
              "description": "Also ban the comment's author, auto-rejecting their future comments. Only valid when moderationStatus is \"rejected\"; any other pairing is a 400.",
              "type": "boolean"
            },
            "moderationStatus": {
              "description": "published approves the comment, rejected removes it, heldForReview returns it to the queue.",
              "enum": [
                "published",
                "rejected",
                "heldForReview"
              ],
              "type": "string"
            },
            "platform": {
              "description": "Only YouTube supports comment moderation",
              "enum": [
                "youtube"
              ],
              "type": "string"
            }
          },
          "required": [
            "accountId",
            "moderationStatus",
            "platform"
          ],
          "type": "object"
        }
      }
    },
    "required": true
  },
  "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"
      }
    }
  }
}
```

## Cost and request rules

A request reference price is not currently available; use a request quote where supported. Account-specific pricing and final settlement may differ.

Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.


## OpenAPI

````yaml reference-contracts/aisa-social.json POST /apis/v1/social/inbox/comments/{postId}/{commentId}/moderation
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}/{commentId}/moderation:
    post:
      summary: Set comment moderation status
      description: >-
        Comments. Acts in public on your connected account; needs
        social:publish. Audited. Ids are yours: accounts acc_..., profiles
        prf_..., posts pst_...; every other object id is checked against your
        accounts before the call.


        Set a comment's moderation status. Supported on YouTube only.


        Use this to work a moderation queue: approve a held comment
        (`published`), reject it

        (`rejected`), or send it back for review (`heldForReview`).


        The request must be authorized by the owner of the channel or video the
        comment

        belongs to. You cannot moderate comments on videos you do not own.


        This is distinct from `POST
        /apis/v1/social/inbox/comments/{postId}/{commentId}/hide`, which

        covers Facebook, Instagram, Threads, and X and does not apply to
        YouTube.


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

        A request reference price is not currently available; use a request
        quote where supported. Account-specific pricing and final settlement may
        differ.

        <!-- aisa-pricing:end -->
      operationId: post_aisa_social_apis_v1_social_inbox_comments_po_671930
      parameters:
        - in: path
          name: postId
          required: true
          schema:
            type: string
        - in: path
          name: commentId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              accountId: acc_7Hq2Lm9Xc4Rt8Vw1Nb6Ks3
              banAuthor: true
              moderationStatus: rejected
              platform: youtube
            schema:
              properties:
                accountId:
                  description: One of your social accounts (acc_...).
                  pattern: ^acc_[0-9A-Za-z]{22}$
                  type: string
                banAuthor:
                  description: >-
                    Also ban the comment's author, auto-rejecting their future
                    comments. Only valid when moderationStatus is "rejected";
                    any other pairing is a 400.
                  type: boolean
                moderationStatus:
                  description: >-
                    published approves the comment, rejected removes it,
                    heldForReview returns it to the queue.
                  enum:
                    - published
                    - rejected
                    - heldForReview
                  type: string
                platform:
                  description: Only YouTube supports comment moderation
                  enum:
                    - youtube
                  type: string
              required:
                - accountId
                - moderationStatus
                - platform
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                type: object
          description: Moderation status applied
        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.