> ## 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 LinkedIn org analytics

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

Returns aggregate analytics for a LinkedIn organization page. Parallel to
/apis/v1/social/accounts/{id}/linkedin-aggregate-analytics (which handles personal accounts only).
Backed by LinkedIn's organizationalEntityShareStatistics,
organizationalEntityFollowerStatistics, and organizationPageStatistics endpoints.

Response shape matches /apis/v1/social/analytics/instagram/account-insights. Max 89 days,
defaults to last 30 days.

Scope requirements: r_organization_social, r_organization_followers, and
r_organization_admin must all be present on the account. Accounts connected before
these scopes were included in the OAuth flow will return 412 with a reauth hint.

Enforced by this endpoint:
  - Page-view metrics accept only metricType=total_value (LinkedIn omits per-day
    segmentation even when the API is called with DAY granularity, so a time-series
    response would be meaningless).
  - Date range capped at 89 days.

LinkedIn-side platform limits (not re-enforced here, but worth knowing for larger
ranges in a future release):
  - Follower stats: rolling 12-month window, end must be no later than 2 days ago.
  - Share stats: rolling 12-month window.

<!-- 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/linkedin/org-aggregate-analytics
* **Availability:** enabled
* **Request URL template:** `https://api.aisa.one/apis/v1/social/analytics/linkedin/org-aggregate-analytics`
* **accountId:** query; required
* **metrics:** query; optional
* **fromDate:** query; optional
* **toDate:** query; optional
* **since:** query; optional
* **until:** query; optional
* **metricType:** 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_linkedin_5a3e98",
  "method": "GET",
  "path": "/apis/v1/social/analytics/linkedin/org-aggregate-analytics",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "description": "One of your social accounts (acc_...).",
      "in": "query",
      "name": "accountId",
      "required": true,
      "schema": {
        "pattern": "^acc_[0-9A-Za-z]{22}$",
        "type": "string"
      }
    },
    {
      "description": "Comma-separated list. Defaults to\n\"impressions,clicks,engagement_rate,organic_followers_gained,followers_gained,followers_lost\".\n\nShare statistics (support both total_value and time_series):\n  - impressions\n  - unique_impressions\n  - clicks\n  - likes\n  - comments\n  - shares\n  - engagement_rate       (0..1, LinkedIn-computed)\n\nFollower-gain statistics (support total_value and time_series):\n  - organic_followers_gained   (per-day organic gains for time_series; sum of organic gains over the range for total_value)\n  - paid_followers_gained      (per-day paid gains for time_series; sum of paid gains over the range for total_value)\n\nPage-view statistics (total_value ONLY - LinkedIn platform limit):\n  - page_views_total\n  - page_views_overview\n  - page_views_careers\n  - page_views_jobs\n  - page_views_life\n\nAIsa-synthesized from daily follower snapshots:\n  - followers_gained\n  - followers_lost",
      "in": "query",
      "name": "metrics",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Start date (YYYY-MM-DD). Defaults to 30 days ago.",
      "in": "query",
      "name": "fromDate",
      "required": false,
      "schema": {
        "format": "date",
        "type": "string"
      }
    },
    {
      "description": "End date (YYYY-MM-DD). Defaults to today.",
      "in": "query",
      "name": "toDate",
      "required": false,
      "schema": {
        "format": "date",
        "type": "string"
      }
    },
    {
      "description": "Alias of fromDate, kept for existing callers",
      "in": "query",
      "name": "since",
      "required": false,
      "schema": {
        "format": "date",
        "type": "string"
      }
    },
    {
      "description": "Alias of toDate, kept for existing callers",
      "in": "query",
      "name": "until",
      "required": false,
      "schema": {
        "format": "date",
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "metricType",
      "required": false,
      "schema": {
        "default": "total_value",
        "enum": [
          "time_series",
          "total_value"
        ],
        "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/linkedin/org-aggregate-analytics
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/linkedin/org-aggregate-analytics:
    get:
      summary: Get LinkedIn org analytics
      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.


        Returns aggregate analytics for a LinkedIn organization page. Parallel
        to

        /apis/v1/social/accounts/{id}/linkedin-aggregate-analytics (which
        handles personal accounts only).

        Backed by LinkedIn's organizationalEntityShareStatistics,

        organizationalEntityFollowerStatistics, and organizationPageStatistics
        endpoints.


        Response shape matches
        /apis/v1/social/analytics/instagram/account-insights. Max 89 days,

        defaults to last 30 days.


        Scope requirements: r_organization_social, r_organization_followers, and

        r_organization_admin must all be present on the account. Accounts
        connected before

        these scopes were included in the OAuth flow will return 412 with a
        reauth hint.


        Enforced by this endpoint:
          - Page-view metrics accept only metricType=total_value (LinkedIn omits per-day
            segmentation even when the API is called with DAY granularity, so a time-series
            response would be meaningless).
          - Date range capped at 89 days.

        LinkedIn-side platform limits (not re-enforced here, but worth knowing
        for larger

        ranges in a future release):
          - Follower stats: rolling 12-month window, end must be no later than 2 days ago.
          - Share stats: rolling 12-month window.

        <!-- 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_linkedin_5a3e98
      parameters:
        - description: One of your social accounts (acc_...).
          in: query
          name: accountId
          required: true
          schema:
            pattern: ^acc_[0-9A-Za-z]{22}$
            type: string
        - description: >-
            Comma-separated list. Defaults to

            "impressions,clicks,engagement_rate,organic_followers_gained,followers_gained,followers_lost".


            Share statistics (support both total_value and time_series):
              - impressions
              - unique_impressions
              - clicks
              - likes
              - comments
              - shares
              - engagement_rate       (0..1, LinkedIn-computed)

            Follower-gain statistics (support total_value and time_series):
              - organic_followers_gained   (per-day organic gains for time_series; sum of organic gains over the range for total_value)
              - paid_followers_gained      (per-day paid gains for time_series; sum of paid gains over the range for total_value)

            Page-view statistics (total_value ONLY - LinkedIn platform limit):
              - page_views_total
              - page_views_overview
              - page_views_careers
              - page_views_jobs
              - page_views_life

            AIsa-synthesized from daily follower snapshots:
              - followers_gained
              - followers_lost
          in: query
          name: metrics
          required: false
          schema:
            type: string
        - description: Start date (YYYY-MM-DD). Defaults to 30 days ago.
          in: query
          name: fromDate
          required: false
          schema:
            format: date
            type: string
        - description: End date (YYYY-MM-DD). Defaults to today.
          in: query
          name: toDate
          required: false
          schema:
            format: date
            type: string
        - description: Alias of fromDate, kept for existing callers
          in: query
          name: since
          required: false
          schema:
            format: date
            type: string
        - description: Alias of toDate, kept for existing callers
          in: query
          name: until
          required: false
          schema:
            format: date
            type: string
        - in: query
          name: metricType
          required: false
          schema:
            default: total_value
            enum:
              - time_series
              - total_value
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: >-
                  Shared account-insights response envelope used by every
                  platform-level

                  analytics endpoint
                  (/apis/v1/social/analytics/{facebook|instagram|youtube|linkedin|tiktok}/*).

                  The name is historical - the shape was first shipped for
                  Instagram and every

                  new platform endpoint reuses it for response-shape
                  consistency. The platform

                  field echoes back which platform served the response.
                properties:
                  accountId:
                    description: One of your social accounts (acc_...).
                    pattern: ^acc_[0-9A-Za-z]{22}$
                    type: string
                  breakdown:
                    description: >-
                      Breakdown dimension used (only present when breakdown was
                      requested)
                    type: string
                  dataDelay:
                    type: string
                  dateRange:
                    properties:
                      since:
                        format: date
                        type: string
                      until:
                        format: date
                        type: string
                    type: object
                  metricType:
                    enum:
                      - time_series
                      - total_value
                    type: string
                  metrics:
                    additionalProperties:
                      properties:
                        breakdowns:
                          description: >-
                            Breakdown values (only for total_value with
                            breakdown)
                          items:
                            properties:
                              dimension:
                                type: string
                              value:
                                type: number
                            type: object
                          type: array
                        currency:
                          description: >-
                            ISO 4217 currency of a monetary metric, or null when
                            the platform omitted it.

                            Always null on monetization_approximate_earnings,
                            which Meta returns as a bare number

                            with no currency; always present on
                            content_monetization_earnings.
                          type:
                            - string
                            - 'null'
                        total:
                          description: Sum or aggregate value for the metric
                          type: number
                        unit:
                          description: >-
                            Present on monetary metrics only. The scale of
                            "total" and of every "values[].value", exactly as
                            the platform returned them.


                            - "micro_amount": the platform returned an object
                            carrying a micro amount; values are that integer,
                            summed, unconverted. AIsa publishes no divisor
                            because Meta documents none: divide by the scale you
                            verified against the Page's own Meta Business Suite
                            export. On Facebook Page insights this is always
                            content_monetization_earnings.

                            - "unspecified": the platform returned a bare number
                            with no unit metadata, passed through as-is; the
                            platform does not state whether it is major or minor
                            currency units. On Facebook Page insights this is
                            always monetization_approximate_earnings.
                          enum:
                            - micro_amount
                            - unspecified
                          type: string
                        values:
                          description: >-
                            Daily values (for time_series, and always on
                            monetary metrics)
                          items:
                            properties:
                              date:
                                format: date
                                type: string
                              value:
                                type: number
                            type: object
                          type: array
                      type: object
                    description: >-
                      Object keyed by metric name.


                      - For time_series: each metric has "total" (number) and
                      "values" (array of {date, value}).

                      - For total_value: each metric has "total" (number) and
                      optionally "breakdowns" (array of {dimension, value}).


                      **Monetary metrics** also carry "unit" and "currency".
                      AIsa never rescales money: "total" and every
                      "values[].value" are the platform's raw numbers in the
                      stated unit.


                      Monetary metrics keep "values" even on
                      metricType=total_value, because their "total" is the sum
                      of the daily buckets the platform returned over the range.
                      Keep the series to reconcile that sum against the
                      platform's own reporting before invoicing on it.


                      A metric that could not be served is absent from this
                      object and listed in "unavailableMetrics" instead, so an
                      unavailable metric is never reported as a zero.
                    type: object
                  platform:
                    description: Platform that served this response.
                    enum:
                      - facebook
                      - instagram
                      - youtube
                      - linkedin
                      - tiktok
                    type: string
                  success:
                    type: boolean
                  unavailableMetrics:
                    description: >-
                      Requested metrics that could not be served. Present only
                      when at least one metric is unavailable, absent otherwise.


                      Each listed metric is OMITTED from "metrics" rather than
                      reported as 0, which is how an unavailable metric is
                      distinguished from a genuine zero. The request itself
                      still succeeds with HTTP 200.
                    items:
                      properties:
                        message:
                          description: >-
                            Platform-provided explanation when available (access
                            tokens redacted), otherwise AIsa copy.
                          type: string
                        metric:
                          description: The requested metric name.
                          type: string
                        reason:
                          description: >-
                            Why the metric is unavailable:


                            - "not_enrolled": the account is not enrolled in the
                            program behind this metric.

                            - "permission_missing": the connected user lacks
                            access to this metric.

                            - "unsupported_metric": the platform does not accept
                            this metric name on the API version AIsa uses.

                            - "no_data": the platform returned no bucket for
                            this metric over the requested range.

                            - "unreadable_value": the platform returned a value
                            shape AIsa cannot read, so no total is reported.

                            - "mixed_currency": readable values disagree on
                            currency or unit within the range.

                            - "upstream_error": any other platform failure.


                            "no_data" is the common case in practice. The others
                            are defensive: "not_enrolled" and
                            "unsupported_metric" in particular have not been
                            observed on live Facebook traffic, since a
                            non-enrolled Page returns zeros rather than an error
                            and metric names are validated before any platform
                            call.
                          enum:
                            - not_enrolled
                            - permission_missing
                            - unsupported_metric
                            - no_data
                            - unreadable_value
                            - mixed_currency
                            - upstream_error
                          type: string
                      type: object
                    type: array
                type: object
          description: Organization analytics data
        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.