> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airscale.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Ads

> Look up Google ads for a company domain. Rate limit: 2 requests per rolling second and 120 per rolling minute per workspace.

Look up Google ads for one company. Send exactly one `domain` field: a bare hostname or HTTP(S) URL. Paths and queries are ignored after normalization. IP literals, credentials, non-default ports, and invalid domain labels are rejected. The JSON body must fit within 16 KiB.

## Usage and credits

The limit is **2 requests per rolling second and 120 requests per rolling minute per workspace**. You need at least **1 credit** before a lookup can start. A valid result with a positive `total_ad_count` or a nonempty `ads` array costs **1 credit**. A valid zero-ad result costs **0 credits**. Read `credits_consumed` for the charge.

The endpoint returns the first page of up to 20 ads. `total_ad_count` can be larger than the returned `ads` array. If `next_page_token` is present, it is returned, but this endpoint does not accept a token or fetch later pages.

The response is a JSON object. Common fields are `status`, `country_code`, `total_ad_count` (often a numeric string), `available_ads_in_response`, `ads`, `cached`, and `credits_consumed`. Each ad can include `advertiser_id`, `advertiser_name`, `creative_id`, `original_url`, `start`, `last_seen`, `format_type`, and a `variants` array with creative content or image URLs. Fields may be absent or vary by ad format. Treat any HTML in `variants[].content` as untrusted.

## Errors and retries

Invalid input returns `400`; insufficient credits returns `403`; the workspace limit returns `429`. Lookup failures return `502`, configuration or settlement failures return `503`, and lookup timeouts return `504`. Failed lookups and valid zero-ad results do not consume credits.

There is no caller idempotency key. A retry can run another lookup and charge another credit if ads are found. A `503` after a completed lookup can mean credit settlement is uncertain; check your balance or contact support before retrying.

## Next step

Review [credit balance](/api-reference/credit-count) or [rate limits](/api-reference/rate-limits) before scheduling more lookups.


## OpenAPI

````yaml openapi.json POST /v1/google-ads
openapi: 3.1.0
info:
  title: Airscale Public API
  version: '2026-09-11'
  description: Search, enrich, and resolve public business data with Airscale.
  x-airscale-source-repository: ViceScale/airscale-code
  x-airscale-source-sha: 1de19e1b70a052a4b8d9c2075021a7e5e7a94d51
servers:
  - url: https://api.airscale.io
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Search and discovery
    description: Search people, companies, and the web.
  - name: Contact data
    description: Find professional and personal contact data.
  - name: Profiles and reverse lookup
    description: Extract profiles or resolve a person from known contact data.
  - name: Post engagement
    description: Retrieve and enrich people who liked or commented on LinkedIn posts.
  - name: LinkedIn content
    description: >-
      Search LinkedIn posts, read profile and company feeds, and retrieve
      profile comments and comment reactions.
  - name: Account
    description: Inspect workspace account state.
  - name: Miscellaneous
    description: >-
      Find website technologies and check WhatsApp availability, Meta ads, and
      email deliverability.
paths:
  /v1/google-ads:
    post:
      tags:
        - Miscellaneous
      summary: Look up Google ads
      description: >-
        Look up the first page of up to 20 Google ads for one company domain. A
        valid positive count or nonempty ads array costs one credit; a valid
        zero-ad result costs zero. A balance of at least one credit is required
        before lookup. No caller idempotency key is supported.
      operationId: lookupGoogleAds
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  minLength: 1
                  description: >-
                    Bare company hostname or HTTP(S) URL. Whitespace is trimmed;
                    hostname is lowercased and leading www. and trailing dot are
                    removed. Paths and queries are ignored. IP literals,
                    credentials, non-default ports, and invalid domain labels
                    are rejected. Maximum JSON body size: 16 KiB (oversize
                    returns 400).
              required:
                - domain
              additionalProperties: false
            examples:
              request:
                value:
                  domain: example.com
      responses:
        '200':
          description: >-
            First-page ad lookup result and credit cost. Additional fields may
            be present.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Lookup status, when supplied.
                  country_code:
                    type: string
                    description: Country code used for the returned ads, when supplied.
                  total_ad_count:
                    oneOf:
                      - type: string
                        pattern: ^\d+$
                      - type: integer
                        minimum: 0
                    description: >-
                      Total matching ads. Often returned as a numeric string and
                      can exceed the number of ads in this response.
                  available_ads_in_response:
                    type: integer
                    minimum: 0
                    description: Number of ads available in this response, when supplied.
                  ads:
                    type: array
                    description: First page of up to 20 ads. Fields can vary by ad format.
                    items:
                      type: object
                      properties:
                        advertiser_id:
                          type: string
                          description: Advertiser identifier.
                        advertiser_name:
                          type: string
                          description: Advertiser name.
                        creative_id:
                          type: string
                          description: Ad creative identifier.
                        original_url:
                          type: string
                          description: Ad detail URL.
                        start:
                          type: string
                          description: First seen date, when supplied.
                        last_seen:
                          type: string
                          description: Last seen date, when supplied.
                        format_type:
                          type: string
                          description: Creative format, when supplied.
                        variants:
                          type: array
                          description: Creative variants, when supplied.
                          items:
                            type: object
                            properties:
                              format:
                                type: string
                              image:
                                type: string
                              content:
                                type: string
                                description: >-
                                  Creative markup or text; treat HTML as
                                  untrusted.
                            additionalProperties: true
                      additionalProperties: true
                  cached:
                    type: boolean
                    description: Whether the lookup result was cached, when supplied.
                  next_page_token:
                    type: string
                    description: >-
                      Continuation token, when present. This endpoint does not
                      fetch another page.
                  credits_consumed:
                    type: integer
                    enum:
                      - 0
                      - 1
                required:
                  - credits_consumed
                additionalProperties: true
              examples:
                ads:
                  value:
                    status: success
                    country_code: US
                    total_ad_count: '1'
                    available_ads_in_response: 1
                    ads:
                      - advertiser_id: AR123
                        advertiser_name: Example Company
                        creative_id: CR456
                        original_url: https://example.com/ads/CR456
                        start: '2026-01-01'
                        last_seen: '2026-01-15'
                        format_type: Image
                        variants:
                          - format: Image
                            image: https://example.com/ad-image.png
                            content: <img src="https://example.com/ad-image.png">
                    cached: false
                    credits_consumed: 1
                noAds:
                  value:
                    total_ad_count: 0
                    ads: []
                    credits_consumed: 0
        '400':
          description: Invalid JSON, domain, extra fields, or body larger than 16 KiB.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Insufficient credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '429':
          description: Workspace rate limit exceeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '502':
          description: Lookup failed or returned an invalid result. No debit is made.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '503':
          description: >-
            Authentication, rate limiting, configuration, or credit settlement
            is unavailable. Settlement can be uncertain after a completed
            lookup.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
        '504':
          description: >-
            The lookup exceeded its 90-second timeout. No debit is made for this
            timeout.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                  operation_id:
                    type: string
                    format: uuid
                    description: Operation UUID.
                required:
                  - error
                additionalProperties: true
              examples: {}
components:
  responses:
    Unauthorized:
      description: The Bearer token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      additionalProperties: true
      properties:
        error:
          type: string
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        Use an Airscale workspace API key. Never expose the key in client-side
        code.

````

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