> ## 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 Instagram story insights

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

Returns metrics for a single story. The `source` field discriminates between three states:

- `live`: fetched from Meta in real time (story is still active)
- `cached`: fetched from a persisted `story_insights` webhook payload (story has expired but we received its final-state metrics from Meta)
- `unavailable`: story has expired and Meta sent no `story_insights` webhook for it

Meta sends that webhook most reliably for accounts connected with Facebook Login or with their linked Facebook Page connected. So read insights while the story is live if you need final numbers.

Meta can report an expired story as an empty successful result rather than an error. So an expired story resolves to `cached` or `unavailable` even though the upstream request itself succeeded.

### Field semantics

Field semantics follow Meta's API.

- Counts below 5 may be returned as 0 due to Meta's privacy floor on small audiences.
- The `navigation` field is the sum of `tapsForward + tapsBack + exits + swipesForward`.

<!-- 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/accounts/\{accountId}/instagram/stories/\{storyId}/insights
* **Availability:** enabled
* **Request URL template:** `https://api.aisa.one/apis/v1/social/accounts/{accountId}/instagram/stories/{storyId}/insights`
* **accountId:** path; required
* **storyId:** 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": "get_aisa_social_apis_v1_social_accounts_accountid_efb0e8",
  "method": "GET",
  "path": "/apis/v1/social/accounts/{accountId}/instagram/stories/{storyId}/insights",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "description": "One of your social accounts (acc_...).",
      "in": "path",
      "name": "accountId",
      "required": true,
      "schema": {
        "pattern": "^acc_[0-9A-Za-z]{22}$",
        "type": "string"
      }
    },
    {
      "description": "The Instagram media ID of the story.",
      "in": "path",
      "name": "storyId",
      "required": true,
      "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"
      }
    }
  }
}
```

## 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/accounts/{accountId}/instagram/stories/{storyId}/insights
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/accounts/{accountId}/instagram/stories/{storyId}/insights:
    get:
      summary: Get Instagram story insights
      description: >-
        Instagram. 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.


        Returns metrics for a single story. The `source` field discriminates
        between three states:


        - `live`: fetched from Meta in real time (story is still active)

        - `cached`: fetched from a persisted `story_insights` webhook payload
        (story has expired but we received its final-state metrics from Meta)

        - `unavailable`: story has expired and Meta sent no `story_insights`
        webhook for it


        Meta sends that webhook most reliably for accounts connected with
        Facebook Login or with their linked Facebook Page connected. So read
        insights while the story is live if you need final numbers.


        Meta can report an expired story as an empty successful result rather
        than an error. So an expired story resolves to `cached` or `unavailable`
        even though the upstream request itself succeeded.


        ### Field semantics


        Field semantics follow Meta's API.


        - Counts below 5 may be returned as 0 due to Meta's privacy floor on
        small audiences.

        - The `navigation` field is the sum of `tapsForward + tapsBack + exits +
        swipesForward`.


        <!-- 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_accounts_accountid_efb0e8
      parameters:
        - description: One of your social accounts (acc_...).
          in: path
          name: accountId
          required: true
          schema:
            pattern: ^acc_[0-9A-Za-z]{22}$
            type: string
        - description: The Instagram media ID of the story.
          in: path
          name: storyId
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      metrics:
                        properties:
                          exits:
                            description: Closed Stories interface entirely.
                            type: integer
                          follows:
                            type: integer
                          navigation:
                            description: >-
                              Total nav actions (tapsForward + tapsBack + exits
                              + swipesForward).
                            type: integer
                          profileVisits:
                            type: integer
                          reach:
                            description: Unique accounts that saw the story.
                            type: integer
                          replies:
                            description: DMs sent in reply to the story.
                            type: integer
                          reposts:
                            type: integer
                          shares:
                            type: integer
                          swipesForward:
                            description: Swiped left to next account's story.
                            type: integer
                          tapsBack:
                            description: Tapped left to previous slide.
                            type: integer
                          tapsForward:
                            description: Tapped right to next slide of SAME story.
                            type: integer
                          totalInteractions:
                            type: integer
                          views:
                            description: >-
                              Total story plays. Replaces deprecated
                              'impressions' for media created after 2024-07-02.
                            type: integer
                        required:
                          - exits
                          - follows
                          - navigation
                          - profileVisits
                          - reach
                          - replies
                          - reposts
                          - shares
                          - swipesForward
                          - tapsBack
                          - tapsForward
                          - totalInteractions
                          - views
                        type: object
                      source:
                        enum:
                          - live
                          - cached
                          - unavailable
                        type: string
                    required:
                      - metrics
                      - source
                    type: object
                required:
                  - data
                type: object
          description: Story insights
        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.