> ## 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 best times to post

> Analytics. 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. Without profileId or accountId it reads your default profile.

Returns the best times to post based on historical engagement data.
Groups all published posts by day of week and hour (UTC), calculating average engagement per slot.
Use this to auto-schedule posts at optimal times.

<!-- 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:** GET /apis/v1/social/analytics/best-time
* **Availability:** enabled
* **Request URL template:** `https://api.aisa.one/apis/v1/social/analytics/best-time`
* **platform:** query; optional
* **profileId:** query; optional
* **accountId:** query; optional
* **source:** query; optional
* **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": "get_aisa_social_apis_v1_social_analytics_best_time",
  "method": "GET",
  "path": "/apis/v1/social/analytics/best-time",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "description": "Filter by platform (e.g. \"instagram\", \"tiktok\"). Omit for all platforms.",
      "in": "query",
      "name": "platform",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "One of your profiles (prf_...). Defaults to your default profile when neither profileId nor accountId is sent.",
      "in": "query",
      "name": "profileId",
      "required": false,
      "schema": {
        "pattern": "^prf_[0-9A-Za-z]{22}$",
        "type": "string"
      }
    },
    {
      "description": "One of your social accounts (acc_...).",
      "in": "query",
      "name": "accountId",
      "required": false,
      "schema": {
        "pattern": "^acc_[0-9A-Za-z]{22}$",
        "type": "string"
      }
    },
    {
      "description": "Filter by post origin. \"late\" for posts published via AIsa, \"external\" for posts imported from platforms.",
      "in": "query",
      "name": "source",
      "required": false,
      "schema": {
        "default": "all",
        "enum": [
          "all",
          "late",
          "external"
        ],
        "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"
      }
    }
  }
}
```

## 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 GET /apis/v1/social/analytics/best-time
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/analytics/best-time:
    get:
      summary: Get best times to post
      description: >-
        Analytics. 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. Without profileId or
        accountId it reads your default profile.


        Returns the best times to post based on historical engagement data.

        Groups all published posts by day of week and hour (UTC), calculating
        average engagement per slot.

        Use this to auto-schedule posts at optimal times.


        <!-- 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: get_aisa_social_apis_v1_social_analytics_best_time
      parameters:
        - description: >-
            Filter by platform (e.g. "instagram", "tiktok"). Omit for all
            platforms.
          in: query
          name: platform
          required: false
          schema:
            type: string
        - description: >-
            One of your profiles (prf_...). Defaults to your default profile
            when neither profileId nor accountId is sent.
          in: query
          name: profileId
          required: false
          schema:
            pattern: ^prf_[0-9A-Za-z]{22}$
            type: string
        - description: One of your social accounts (acc_...).
          in: query
          name: accountId
          required: false
          schema:
            pattern: ^acc_[0-9A-Za-z]{22}$
            type: string
        - description: >-
            Filter by post origin. "late" for posts published via AIsa,
            "external" for posts imported from platforms.
          in: query
          name: source
          required: false
          schema:
            default: all
            enum:
              - all
              - late
              - external
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  slots:
                    items:
                      properties:
                        avg_engagement:
                          description: >-
                            Average engagement (likes + comments + shares +
                            saves)
                          type: number
                        day_of_week:
                          description: 0=Monday, 6=Sunday
                          maximum: 6
                          minimum: 0
                          type: integer
                        hour:
                          description: Hour in UTC (0-23)
                          maximum: 23
                          minimum: 0
                          type: integer
                        post_count:
                          description: Number of posts in this slot
                          type: integer
                      type: object
                    type: array
                type: object
          description: Best time slots
        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.