Get company ads with a POST body
Retrieve public advertiser suggestions or one page of an advertiser’s ads. Company-name lookup requires a unique exact match; use pageId when ambiguous.
/v1/facebook/adLibrary/company/adsx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Must be application/json.
Exact numeric advertiser page ID. Use pageId or companyName.
99887766Requires exactly one case-insensitive exact advertiser-name match. Prefer pageId to avoid ambiguity.
min 1 chars · max 4096 chars
Two uppercase letters or ALL. Defaults to ALL.
default: "ALL"
Query filter: ACTIVE (default), INACTIVE or ALL. Response: success, partial, failed or challenged.
one of: ALL, ACTIVE, INACTIVE · default: "ACTIVE"
ALL (default), IMAGE, VIDEO, MEME, IMAGE_AND_MEME or NONE.
one of: ALL, IMAGE, VIDEO, MEME, IMAGE_AND_MEME, NONE · default: "ALL"
total_impressions (default) or relevancy_monthly_grouped.
one of: total_impressions, relevancy_monthly_grouped · default: "total_impressions"
Optional two-letter content language.
Optional real calendar date YYYY-MM-DD.
Optional real calendar date YYYY-MM-DD, on or after start_date.
Use the compact field projection while preserving creative snapshots and regional transparency.
one of: true, false
Opaque continuation token bound to the operation and filters. POST supports long cursor values.
min 1 chars · max 65536 chars
Whether usable public data was retrieved.
Query filter: ACTIVE (default), INACTIVE or ALL. Response: success, partial, failed or challenged.
one of: success, partial
Request correlation ID.
Canonical public library URL.
absolute HTTPS URL
UTC retrieval time.
Completeness of the bounded source result, with explicit auxiliary-data warnings.
Always included.
Always included.
Always included.
Upstream requests, decoded response bytes and elapsed milliseconds. Page 1 includes browser bootstrap traffic; a warm continuation is one GraphQL POST.
Always included.
0 – 100
Always included.
≥ 0
Always included.
≥ 0
Company ad records. ads remains a service alias.
up to 100 items
Always included.
Always included.
Always included.
Always included.
Source ad records with exact archive/page IDs, public creative snapshots, cards, images/videos, publisher platforms, dates and available counts. Unknown source values remain null.
up to 100 items
Always included.
Always included.
Always included.
Always included.
Source ad records for keyword searches; advertiser suggestions for company search. ads is also retained as a service alias.
up to 100 items
Always included.
Always included.
Always included.
Always included.
Opaque continuation token bound to the operation and filters. POST supports long cursor values.
Source total estimate when available, otherwise null.
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 400 | invalid_request | Invalid, conflicting or unsupported parameters/cursor. |
| 401 | unauthorized | Missing or invalid x-api-key. |
| 403 | restricted_page | Source marks the ad restricted. |
| 404 | not_found | Explicitly absent ad or no exact company match. |
| 429 | upstream_rate_limited | Meta rate limit after at most two fresh proxy-session retries; direct egress is never retried on the same IP. |
| 502 | upstream_error upstream_challenged unsupported_page | Source failed, challenged, or returned unsupported data. |
| 502 | response_too_large request_limit payload_too_complex | An operation bound was exceeded. |
| 503 | busy | Both retrieval slots are occupied. |
| 504 | timeout | The operation deadline expired. |
| 503 | transcription_unavailable | Local speech runtime is not configured. |
| 502 | transcription_failed | Media decoding or speech recognition failed. |
| 422 | transcription_too_long | Video exceeds the 180-second speech limit. |