Search ads with a POST body
Retrieve one public page with the documented filters and an opaque continuation cursor. Lowercase /adlibrary/ aliases return canonical Post/Author data.
/v1/facebook/adLibrary/search/adsx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Must be application/json.
Keyword or advertiser name.
min 1 chars · max 4096 chars
runningkeyword_unordered (default) or keyword_exact_phrase.
one of: keyword_unordered, keyword_exact_phrase · default: "keyword_unordered"
all (default) or political_and_issue_ads.
one of: all, political_and_issue_ads · default: "all"
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
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. |