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

# Top Google Ads keywords by domain — search volume, CPC

> rows carry keyword, searchVolume, liveSearchVolume, rankingDifficulty, totalMonthlyClicks, broad/phrase/exactCostPerClick, broad/phrase/exactMonthlyCost, paidCompetitors, distinctCompetitors and serpFeaturesCsv. Note the path segment is `keyword_api`, unlike the other PPC endpoints which live under `serp_api`.

<!-- aisa-pricing:start -->
按用量计费；默认请求预估费用：$0.002 USD（不是固定价格）。 声明的单位费率：每 provider_credit $0.000001 USD。 最终费用以账户适用价格及实际结算为准。
<!-- aisa-pricing:end -->

## 请求规范

* **方法与路径:** GET /apis/v1/spyfu/google-domain-paid-keywords
* **可用状态:** enabled
* **请求 URL 模板:** `https://api.aisa.one/apis/v1/spyfu/google-domain-paid-keywords`
* **adultFilter:** query; 可选
* **countryCode:** query; 可选
* **excludeTerms:** query; 可选
* **includeTerms:** query; 可选
* **isQuestion:** query; 可选
* **isTransactionalIntent:** query; 可选
* **pageSize:** query; 必填
* **query:** query; 必填
* **searchVolume.min:** query; 可选
* **sortBy:** query; 可选
* **sortOrder:** query; 可选
* **startingRow:** query; 必填
* **Runtime 事实版本:** ce753df3e0f9e74e5806dcbad1d277991749d173b751d37f28f4295fb56855a6

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

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

```json theme={null}
{
  "operationId": "spyfu.google-domain-paid-keywords",
  "method": "GET",
  "path": "/apis/v1/spyfu/google-domain-paid-keywords",
  "servers": [
    {
      "url": "https://api.aisa.one"
    }
  ],
  "parameters": [
    {
      "name": "adultFilter",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "description": "default true — filters adult keywords out"
      }
    },
    {
      "name": "countryCode",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "description": "default US",
        "examples": [
          "US"
        ]
      }
    },
    {
      "name": "excludeTerms",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "description": "drop keywords containing these terms"
      }
    },
    {
      "name": "includeTerms",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "description": "only keywords containing these terms"
      }
    },
    {
      "name": "isQuestion",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "description": "restrict to question keywords"
      }
    },
    {
      "name": "isTransactionalIntent",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "description": "restrict to transactional-intent keywords"
      }
    },
    {
      "examples": {
        "default": {
          "value": 1
        },
        "minimal": {
          "value": 1
        }
      },
      "in": "query",
      "name": "pageSize",
      "required": true,
      "schema": {
        "maximum": 100,
        "minimum": 1,
        "type": "integer",
        "description": "COST DIAL — rows to return, 1 to 10,000, DEFAULT 5.\n\nFor current API pricing, see the published x-aisa-pricing metadata. Where supported, obtain a quote for your exact request."
      }
    },
    {
      "examples": {
        "default": {
          "value": "nike"
        },
        "minimal": {
          "value": "nike"
        }
      },
      "in": "query",
      "name": "query",
      "required": true,
      "schema": {
        "minLength": 1,
        "type": "string",
        "description": "the advertiser — a domain, subdomain, URL or path. Note this family uses `query`, not `domain`"
      }
    },
    {
      "name": "searchVolume.min",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "description": "range filters use this dotted form; also searchVolume.max, liveSearchVolume.min/max, costPerClick.min/max, monthlyCost.min/max, adCount.min/max, keywordDifficulty.min/max"
      }
    },
    {
      "name": "sortBy",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "description": "default SearchVolume"
      }
    },
    {
      "name": "sortOrder",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "description": "Ascending | Descending; default Descending"
      }
    },
    {
      "examples": {
        "default": {
          "value": 1
        },
        "minimal": {
          "value": 1
        }
      },
      "in": "query",
      "name": "startingRow",
      "required": true,
      "schema": {
        "enum": [
          1
        ],
        "maximum": 1,
        "minimum": 1,
        "type": "integer",
        "description": "1-based row offset; default 1"
      }
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "x-aisa-status": "enabled",
  "x-aisa-pricing": {
    "cost_contract": "response_units",
    "customer_multiplier": 1.0,
    "customer_pricing": "provider_cost_multiplier",
    "default_request_estimate_usd": 0.002,
    "estimate_source": "profile_seed",
    "evidence_source": "response_header",
    "unit": "provider_credit",
    "unit_rate_usd": 1e-06
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  }
}
```

## 费用与请求规则

按用量计费；默认请求预估费用：\$0.002 USD（不是固定价格）。 声明的单位费率：每 provider\_credit \$0.000001 USD。 最终费用以账户适用价格及实际结算为准。

公开参考值不是你的账户报价或最终扣费。对于支持 X-AISA-Cost-Mode: quote 的接口，执行前请针对完整请求获取免费报价；执行后通过响应费用元数据和 Usage Logs 核对结算费用。1 USD 等于 1,000,000 个整数 micro-USD。

* **默认请求参考估价（USD）:** 0.002
* **声明的单位费率（USD）:** 1e-06
* **计费单位:** provider\_credit
* **计费依据:** response\_units
* **公开参考倍率:** 1.0
* **结算证据来源:** response\_header


## OpenAPI

````yaml reference-contracts/zh/spyfu.json GET /apis/v1/spyfu/google-domain-paid-keywords
openapi: 3.1.0
info:
  description: ''
  title: SpyFu
  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:
    - /apis/v1/spyfu/google-domain-ad-history
    - /apis/v1/spyfu/google-domain-competitors
    - /apis/v1/spyfu/google-domain-overview
    - /apis/v1/spyfu/google-domain-paid-keywords
    - /apis/v1/spyfu/google-domain-ppc-competitors
    - /apis/v1/spyfu/google-domain-ranked-keywords
  x-aisa-document:
    facts_hash: ce753df3e0f9e74e5806dcbad1d277991749d173b751d37f28f4295fb56855a6
    generator_version: '3'
    protocol_version: '1'
    schema_version: '1'
    composer_version: '28'
    response_pending:
      - operation_id: spyfu.google-domain-ad-history
        path: /apis/v1/spyfu/google-domain-ad-history
        method: GET
        statuses:
          - '200'
        reason: public success response has no authoritative payload declaration
      - operation_id: spyfu.google-domain-competitors
        path: /apis/v1/spyfu/google-domain-competitors
        method: GET
        statuses:
          - '200'
        reason: public success response has no authoritative payload declaration
      - operation_id: spyfu.google-domain-overview
        path: /apis/v1/spyfu/google-domain-overview
        method: GET
        statuses:
          - '200'
        reason: public success response has no authoritative payload declaration
      - operation_id: spyfu.google-domain-paid-keywords
        path: /apis/v1/spyfu/google-domain-paid-keywords
        method: GET
        statuses:
          - '200'
        reason: public success response has no authoritative payload declaration
      - operation_id: spyfu.google-domain-ppc-competitors
        path: /apis/v1/spyfu/google-domain-ppc-competitors
        method: GET
        statuses:
          - '200'
        reason: public success response has no authoritative payload declaration
      - operation_id: spyfu.google-domain-ranked-keywords
        path: /apis/v1/spyfu/google-domain-ranked-keywords
        method: GET
        statuses:
          - '200'
        reason: public success response has no authoritative payload declaration
    document_hash: sha256:8f972d318d22ccb2fe3a3cf523fd02b5be160e0be247148154d2462e4ecbdef1
  x-aisa-plans:
    builder: 1
    display_plan: payg
    payg: 1
    similarweb_payg: 1
    team: 1
    version: e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb
  x-aisa-provider: spyfu
  x-aisa-catalogs:
    spyfu:
      title: SpyFu
      description: ''
      x-aisa-document:
        facts_hash: ce753df3e0f9e74e5806dcbad1d277991749d173b751d37f28f4295fb56855a6
        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/spyfu/google-domain-paid-keywords:
    get:
      tags:
        - SpyFu
      summary: Top Google Ads keywords by domain — search volume, CPC
      description: >-
        rows carry keyword, searchVolume, liveSearchVolume, rankingDifficulty,
        totalMonthlyClicks, broad/phrase/exactCostPerClick,
        broad/phrase/exactMonthlyCost, paidCompetitors, distinctCompetitors and
        serpFeaturesCsv. Note the path segment is `keyword_api`, unlike the
        other PPC endpoints which live under `serp_api`.


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

        按用量计费；默认请求预估费用：$0.002 USD（不是固定价格）。 声明的单位费率：每 provider_credit $0.000001
        USD。 最终费用以账户适用价格及实际结算为准。

        <!-- aisa-pricing:end -->
      operationId: spyfu.google-domain-paid-keywords
      parameters:
        - name: adultFilter
          in: query
          required: false
          schema:
            type: boolean
            description: default true — filters adult keywords out
        - name: countryCode
          in: query
          required: false
          schema:
            type: string
            description: default US
            examples:
              - US
        - name: excludeTerms
          in: query
          required: false
          schema:
            type: string
            description: drop keywords containing these terms
        - name: includeTerms
          in: query
          required: false
          schema:
            type: string
            description: only keywords containing these terms
        - name: isQuestion
          in: query
          required: false
          schema:
            type: boolean
            description: restrict to question keywords
        - name: isTransactionalIntent
          in: query
          required: false
          schema:
            type: boolean
            description: restrict to transactional-intent keywords
        - examples:
            default:
              value: 1
            minimal:
              value: 1
          in: query
          name: pageSize
          required: true
          schema:
            maximum: 100
            minimum: 1
            type: integer
            description: >-
              COST DIAL — rows to return, 1 to 10,000, DEFAULT 5.


              For current API pricing, see the published x-aisa-pricing
              metadata. Where supported, obtain a quote for your exact request.
        - examples:
            default:
              value: nike
            minimal:
              value: nike
          in: query
          name: query
          required: true
          schema:
            minLength: 1
            type: string
            description: >-
              the advertiser — a domain, subdomain, URL or path. Note this
              family uses `query`, not `domain`
        - name: searchVolume.min
          in: query
          required: false
          schema:
            type: integer
            description: >-
              range filters use this dotted form; also searchVolume.max,
              liveSearchVolume.min/max, costPerClick.min/max,
              monthlyCost.min/max, adCount.min/max, keywordDifficulty.min/max
        - name: sortBy
          in: query
          required: false
          schema:
            type: string
            description: default SearchVolume
        - name: sortOrder
          in: query
          required: false
          schema:
            type: string
            description: Ascending | Descending; default Descending
        - examples:
            default:
              value: 1
            minimal:
              value: 1
          in: query
          name: startingRow
          required: true
          schema:
            enum:
              - 1
            maximum: 1
            minimum: 1
            type: integer
            description: 1-based row offset; default 1
      responses:
        '200':
          description: 成功响应
        default:
          content:
            application/json:
              schema: {}
          description: >-
            Error response; upstream passthrough responses may use provider
            formats
      x-codeSamples:
        - lang: text
          label: Reference example
          source: >-
            # Fixed reference example. Playground inputs do not update this
            sample.

            curl --request GET \
              --url 'https://api.aisa.one/apis/v1/spyfu/google-domain-paid-keywords?pageSize=1&query=nike&startingRow=1' \
              --header 'Authorization: Bearer <token>'
components:
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.