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

# Read an ad account's campaigns and ad sets live

> Ad Accounts. Read only. Reads an ad account's campaigns and ad sets straight from Meta or TikTok, so checks like budget limits see current values. It reads one Meta ad account or TikTok advertiser live from the platform, so it is cheap enough to run before every write. For example, a per-ad-account spend ceiling that must see the current daily / lifetime budget rather than the synced copy.

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

## 请求规范

* **方法与路径:** GET /apis/v1/ads/accounts/live
* **可用状态:** enabled
* **请求 URL 模板:** `https://api.aisa.one/apis/v1/ads/accounts/live`
* **connectionId:** query; 必填
* **adAccountId:** query; 必填
* **status:** query; 可选
* **level:** query; 可选
* **limit:** query; 可选
* **after:** query; 可选
* **Runtime 事实版本:** fe60122939c67dc98a3a6ac6b97bd5c326b526105150c8959304dd2160d4dd09

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

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

```json theme={null}
{
  "operationId": "get_aisa_ads_apis_v1_ads_accounts_live",
  "method": "GET",
  "path": "/apis/v1/ads/accounts/live",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "description": "The ads connection (adc_...) the request runs on: one of yours, from GET /apis/v1/ads/connections. On a request with a JSON body it may be sent as a top-level body member instead.",
      "in": "query",
      "name": "connectionId",
      "required": true,
      "schema": {
        "pattern": "^adc_[0-9A-Za-z]+$",
        "type": "string"
      }
    },
    {
      "description": "Meta ad account id (act_) or TikTok advertiser id (digits).",
      "in": "query",
      "name": "adAccountId",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Comma-separated Meta `effective_status` values to keep: ACTIVE, PAUSED, IN_PROCESS, WITH_ISSUES, DELETED, ARCHIVED, and CAMPAIGN_PAUSED (ad sets only; the campaigns level ignores it). Defaults to every status except DELETED and ARCHIVED.",
      "in": "query",
      "name": "status",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Read only one level. Required with `after`. Both levels are read when omitted.",
      "in": "query",
      "name": "level",
      "required": false,
      "schema": {
        "enum": [
          "campaign",
          "adSet"
        ],
        "type": "string"
      }
    },
    {
      "description": "Maximum rows per level in this response.",
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
        "default": 200,
        "maximum": 500,
        "minimum": 1,
        "type": "integer"
      }
    },
    {
      "description": "Cursor from `paging.campaigns.after` or `paging.adSets.after` of a previous response. Requires `level` (and on TikTok the same `limit`).",
      "in": "query",
      "name": "after",
      "required": false,
      "schema": {
        "type": "string"
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "x-aisa-status": "enabled",
  "x-aisa-pricing": {
    "description": "Ads operations are free. Ad spend is billed by the ad platform to the connected ad account, never by AIsa.",
    "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-ads.json GET /apis/v1/ads/accounts/live
openapi: 3.1.0
info:
  description: ''
  title: AIsa Ads
  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: fe60122939c67dc98a3a6ac6b97bd5c326b526105150c8959304dd2160d4dd09
    generator_version: '3'
    protocol_version: '1'
    schema_version: '1'
    composer_version: '27'
    response_pending: []
    document_hash: sha256:ba353f59e89e1ebabe0e301d8ef57d3cbfa6bb406a8c591ee9c3833d64b60520
  x-aisa-plans:
    builder: 1
    display_plan: payg
    payg: 1
    similarweb_payg: 1
    team: 1
    version: e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb
  x-aisa-provider: aisa-ads
  x-aisa-catalogs:
    aisa-ads:
      title: AIsa Ads
      description: ''
      x-aisa-document:
        facts_hash: fe60122939c67dc98a3a6ac6b97bd5c326b526105150c8959304dd2160d4dd09
        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/ads/accounts/live:
    get:
      summary: Read an ad account's campaigns and ad sets live
      description: >-
        Ad Accounts. Read only. Reads an ad account's campaigns and ad sets
        straight from Meta or TikTok, so checks like budget limits see current
        values. It reads one Meta ad account or TikTok advertiser live from the
        platform, so it is cheap enough to run before every write. For example,
        a per-ad-account spend ceiling that must see the current daily /
        lifetime budget rather than the synced copy.


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

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

        <!-- aisa-pricing:end -->
      operationId: get_aisa_ads_apis_v1_ads_accounts_live
      parameters:
        - description: >-
            The ads connection (adc_...) the request runs on: one of yours, from
            GET /apis/v1/ads/connections. On a request with a JSON body it may
            be sent as a top-level body member instead.
          in: query
          name: connectionId
          required: true
          schema:
            pattern: ^adc_[0-9A-Za-z]+$
            type: string
        - description: Meta ad account id (act_) or TikTok advertiser id (digits).
          in: query
          name: adAccountId
          required: true
          schema:
            type: string
        - description: >-
            Comma-separated Meta `effective_status` values to keep: ACTIVE,
            PAUSED, IN_PROCESS, WITH_ISSUES, DELETED, ARCHIVED, and
            CAMPAIGN_PAUSED (ad sets only; the campaigns level ignores it).
            Defaults to every status except DELETED and ARCHIVED.
          in: query
          name: status
          required: false
          schema:
            type: string
        - description: >-
            Read only one level. Required with `after`. Both levels are read
            when omitted.
          in: query
          name: level
          required: false
          schema:
            enum:
              - campaign
              - adSet
            type: string
        - description: Maximum rows per level in this response.
          in: query
          name: limit
          required: false
          schema:
            default: 200
            maximum: 500
            minimum: 1
            type: integer
        - description: >-
            Cursor from `paging.campaigns.after` or `paging.adSets.after` of a
            previous response. Requires `level` (and on TikTok the same
            `limit`).
          in: query
          name: after
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  adAccountId:
                    type: string
                  adSets:
                    description: Absent when `level=campaign`.
                    items:
                      properties:
                        adSchedule:
                          description: >-
                            Meta only. The ad set's dayparting
                            (`adset_schedule`) in the
                            `platformSpecificData.adSchedule` shape, one window
                            per day (a window Meta stores off the hour is
                            widened to whole hours). Null when the ad set runs
                            around the clock.
                          oneOf:
                            - description: >-
                                Meta ad set dayparting: the hours the ad set
                                delivers, in whole hours. Same `dayOfWeek` /
                                `startHour` / `endHour` naming as the Google
                                `PUT
                                /apis/v1/ads/campaigns/{campaignId}/ad-schedule`,
                                but Meta has no minutes and no bid modifiers.
                              items:
                                additionalProperties: true
                                type: object
                              maxItems: 168
                              type: array
                            - type: 'null'
                        adSetName:
                          type:
                            - string
                            - 'null'
                        bidAmount:
                          description: >-
                            Bid cap or cost target in whole units of `currency`
                            (Meta `bid_amount`; TikTok `bid_price`, else
                            `conversion_bid_price`, else `deep_cpa_bid`). Null
                            when the strategy has none.
                          type:
                            - number
                            - 'null'
                        bidStrategy:
                          description: >-
                            Meta `bid_strategy`. On TikTok the ad group's
                            `bid_type` normalized to the same vocabulary
                            (LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP,
                            LOWEST_COST_WITH_MIN_ROAS).
                          type:
                            - string
                            - 'null'
                        billingEvent:
                          description: Meta or TikTok `billing_event`.
                          type:
                            - string
                            - 'null'
                        budget:
                          description: >-
                            The ad set budget, same shape as the synced rows.
                            Null under a campaign budget.
                          properties:
                            amount:
                              type: number
                            type:
                              enum:
                                - daily
                                - lifetime
                              type: string
                          type:
                            - object
                            - 'null'
                        budgetMode:
                          description: 'TikTok only: `budget_mode` as TikTok reports it.'
                          type:
                            - string
                            - 'null'
                        budgetRemaining:
                          description: >-
                            Meta `budget_remaining` in whole units of
                            `currency`. Null when the ad set has no budget of
                            its own, and always on TikTok.
                          type:
                            - number
                            - 'null'
                        configuredStatus:
                          description: >-
                            The ad set's own switch: Meta `status`, or TikTok
                            `operation_status` as ACTIVE / PAUSED.
                          type:
                            - string
                            - 'null'
                        dailyBudget:
                          description: Daily budget in whole units of `currency`.
                          type:
                            - number
                            - 'null'
                        lifetimeBudget:
                          description: Lifetime budget in whole units of `currency`.
                          type:
                            - number
                            - 'null'
                        optimizationGoal:
                          description: Meta or TikTok `optimization_goal`.
                          type:
                            - string
                            - 'null'
                        platformAdSetId:
                          type: string
                        platformAdSetStatus:
                          description: >-
                            Meta `effective_status` (ACTIVE, PAUSED,
                            CAMPAIGN_PAUSED...) or TikTok `secondary_status`
                            (ADGROUP_STATUS_DELIVERY_OK,
                            ADGROUP_STATUS_AUDIT...).
                          type:
                            - string
                            - 'null'
                        platformCampaignId:
                          type:
                            - string
                            - 'null'
                        promotedObject:
                          additionalProperties: true
                          description: Meta `promoted_object` verbatim (snake_case).
                          type:
                            - object
                            - 'null'
                        schedule:
                          properties:
                            endDate:
                              description: Absent when the ad set runs until it is stopped.
                              format: date-time
                              type: string
                            startDate:
                              format: date-time
                              type: string
                          type:
                            - object
                            - 'null'
                        status:
                          type: string
                        targeting:
                          additionalProperties: true
                          description: >-
                            The platform's targeting verbatim (snake_case), as
                            it reports it now: Meta `targeting`, or TikTok's ad
                            group targeting fields (location_ids, age_groups,
                            gender, languages, interest_category_ids,
                            audience_ids, placements...).
                          type:
                            - object
                            - 'null'
                      type: object
                    type: array
                  campaigns:
                    description: Absent when `level=adSet`.
                    items:
                      properties:
                        bidStrategy:
                          description: >-
                            Meta `bid_strategy`, set on campaigns with a
                            campaign budget. Null on TikTok.
                          type:
                            - string
                            - 'null'
                        budget:
                          description: >-
                            The campaign budget, same shape as the synced rows.
                            Null when the budget lives on the ad sets.
                          properties:
                            amount:
                              type: number
                            type:
                              enum:
                                - daily
                                - lifetime
                              type: string
                          type:
                            - object
                            - 'null'
                        budgetMode:
                          description: >-
                            TikTok only: `budget_mode` as TikTok reports it
                            (BUDGET_MODE_DAY, BUDGET_MODE_DYNAMIC_DAILY_BUDGET,
                            BUDGET_MODE_TOTAL, BUDGET_MODE_INFINITE).
                          type:
                            - string
                            - 'null'
                        budgetRemaining:
                          description: >-
                            Meta `budget_remaining` in whole units of
                            `currency`. Null when the campaign has no budget of
                            its own, and always on TikTok.
                          type:
                            - number
                            - 'null'
                        campaignName:
                          type:
                            - string
                            - 'null'
                        configuredStatus:
                          description: >-
                            The campaign's own switch: Meta `status` (ACTIVE,
                            PAUSED, DELETED, ARCHIVED), or TikTok
                            `operation_status` as ACTIVE (ENABLE) / PAUSED
                            (DISABLE).
                          type:
                            - string
                            - 'null'
                        dailyBudget:
                          description: >-
                            Daily budget in whole units of `currency` (Meta
                            `daily_budget`; TikTok `budget` under a daily budget
                            mode).
                          type:
                            - number
                            - 'null'
                        lifetimeBudget:
                          description: >-
                            Lifetime budget in whole units of `currency` (Meta
                            `lifetime_budget`; TikTok `budget` under
                            BUDGET_MODE_TOTAL).
                          type:
                            - number
                            - 'null'
                        platformCampaignId:
                          type: string
                        platformCampaignStatus:
                          description: >-
                            Meta `effective_status` (ACTIVE, PAUSED,
                            WITH_ISSUES...) or TikTok `secondary_status`
                            (CAMPAIGN_STATUS_ENABLE...).
                          type:
                            - string
                            - 'null'
                        spendCap:
                          description: >-
                            Campaign spending limit (Meta `spend_cap`) in whole
                            units of `currency`. Null when none is set, and
                            always on TikTok.
                          type:
                            - number
                            - 'null'
                        status:
                          type: string
                      type: object
                    type: array
                  connectionId:
                    description: The ads connection (adc_...) the object belongs to.
                    type:
                      - string
                      - 'null'
                  currency:
                    description: ISO 4217 code every budget and bid amount is expressed in.
                    type: string
                  paging:
                    description: >-
                      One entry per level read. `after` is null on the last
                      page.
                    properties:
                      adSets:
                        properties:
                          after:
                            type:
                              - string
                              - 'null'
                        type: object
                      campaigns:
                        properties:
                          after:
                            type:
                              - string
                              - 'null'
                        type: object
                    type: object
                  platform:
                    enum:
                      - facebook
                      - tiktok
                    type: string
                  readAt:
                    description: When the platform was read.
                    format: date-time
                    type: string
                type: object
          description: Live campaigns and ad sets
        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:
                        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.