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

# Meta Ads

> Look up Meta ads for a company domain. Rate limit: 60 requests per minute per workspace.

Look up Meta 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 **60 requests per minute per workspace**. You need at least **1 credit** before the lookup can start. A finite numeric `number_of_ads` greater than zero costs **1 credit**. A zero, missing, nonnumeric, or nonpositive count costs **0 credits**.

The response preserves provider fields and adds `credits_consumed`. Fields such as `page_id` and `number_of_ads` are optional; do not assume every provider response includes them or uses a fixed type. An upstream HTTP `204` response becomes a zero-ad result.

## Timeouts and retries

The provider lookup can take up to **90 seconds**. HTTP `504` means that lookup timed out without a debit. Use bounded backoff for temporary errors and rate limits.

This endpoint does not support caller idempotency keys. Retrying a successful lookup can run and bill another lookup, including when the original response was lost.

## 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/meta-ads
openapi: 3.1.0
info:
  title: Airschool Public API
  version: '2026-09-11'
  description: Search, enrich, and resolve public business data with Airschool.
  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: Account
    description: Inspect workspace account state.
  - name: Miscellaneous
    description: Check WhatsApp availability, Meta ads, and email deliverability.
paths:
  /v1/meta-ads:
    post:
      tags:
        - Miscellaneous
      summary: Look up Meta ads
      description: >-
        Look up ads for one company domain. Provider fields are preserved. Only
        a finite numeric number_of_ads greater than zero costs one credit; zero,
        missing, nonnumeric, or nonpositive counts cost zero. A balance of at
        least one credit is required before lookup. No caller idempotency key is
        supported; retrying a successful lookup can incur another charge.
      operationId: lookupMetaAds
      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: >-
            Provider result with the settled credit cost. Provider fields are
            optional and are not coerced to fixed types.
          content:
            application/json:
              schema:
                type: object
                properties:
                  page_id:
                    description: Provider page identifier, when present.
                  number_of_ads:
                    description: >-
                      Provider ad count, when present. Only a positive finite
                      number is billable.
                  credits_consumed:
                    type: integer
                    enum:
                      - 0
                      - 1
                required:
                  - credits_consumed
                additionalProperties: true
              examples:
                ads:
                  value:
                    page_id: meta-123
                    number_of_ads: 4
                    credits_consumed: 1
                noAds:
                  value:
                    number_of_ads: 0
                    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: Provider request failed or returned an invalid response.
          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.
          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: >-
            Provider 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 Airschool workspace API key. Never expose the key in client-side
        code.

````