Search Facebook ad library ads by keyword
scrapecreators.x.v1-facebook-adlibrary-search-adsSearches the Meta Ad Library by keyword and returns matching ads.
- Price
- $0.00188/callAt provider cost
- Success rate
- —No success-rate data yetNo success-rate data yet
- Latency p50
- ——
- Last verified
- —Not verified yet
GEThttps://toolswitch.dev/v1/tools/scrapecreators.x.v1-facebook-adlibrary-search-ads?query=runningPreview- Uses platform quota
- Synchronous response
- Reads public data
Parameters
sort_by is order-only: ranking by total_impressions does not mean the response carries verified spend or impression counts. Search may return a non-null collation_count that is null on scrapecreators.x.v1-facebook-adlibrary-ad detail for the same ad — grouping semantics differ between search and detail; do not treat collation_count as creative-variant or budget counts.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| Query parameters | ||||
trim | boolean | Optional | Set to true for a trimmed down version of the response | false |
query | string | Required | Keyword to search for | running |
cursor | string | Optional | Cursor to paginate through results | AQHRYLVDkoMkvGv7yK1rcce-vJmKiKv330R4v3j9KHSOaYvmF1bq1QkotG0rgW8Fkrj- |
status | string | Optional | Status of the ad. Defaults to ACTIVE. | ACTIVE |
ad_type | string | Optional | Search for all ads or only political and issue ads | all |
country | string | Optional | This can only be one country. It has to be the 2 letter code for the country. It defaults to ALL. | ALL |
sort_by | string | Optional | Order only. One of: total_impressions | relevancy_monthly_grouped. Defaults to impressions ranking (total_impressions). Controls result ORDER, not verified performance — does not guarantee non-null spend, impressions_text, or a positive impressions_index. Those fields are often null / -1 for commercial ads and are not verified performance metrics. | total_impressions |
end_date | string | Optional | Impressions end date. Needs to be in YYYY-MM-DD format. | 2025-02-16 |
media_type | string | Optional | Media type of the ad. Defaults to ALL. Meme just means the ad has text and an image. No clue why they call it meme. | ALL |
start_date | string | Optional | Impressions start date. Needs to be in YYYY-MM-DD format. | 2025-01-05 |
search_type | string | Optional | If you want to search by exact phrase or not | keyword_unordered |
- Query parameters
trimbooleanOptionalSet to true for a trimmed down version of the response
Example:
falsequerystringRequiredKeyword to search for
Example:
runningcursorstringOptionalCursor to paginate through results
Example:
AQHRYLVDkoMkvGv7yK1rcce-vJmKiKv330R4v3j9KHSOaYvmF1bq1QkotG0rgW8Fkrj-statusstringOptionalStatus of the ad. Defaults to ACTIVE.
Example:
ACTIVEad_typestringOptionalSearch for all ads or only political and issue ads
Example:
allcountrystringOptionalThis can only be one country. It has to be the 2 letter code for the country. It defaults to ALL.
Example:
ALLsort_bystringOptionalOrder only. One of: total_impressions | relevancy_monthly_grouped. Defaults to impressions ranking (total_impressions). Controls result ORDER, not verified performance — does not guarantee non-null spend, impressions_text, or a positive impressions_index. Those fields are often null / -1 for commercial ads and are not verified performance metrics.
Example:
total_impressionsend_datestringOptionalImpressions end date. Needs to be in YYYY-MM-DD format.
Example:
2025-02-16media_typestringOptionalMedia type of the ad. Defaults to ALL. Meme just means the ad has text and an image. No clue why they call it meme.
Example:
ALLstart_datestringOptionalImpressions start date. Needs to be in YYYY-MM-DD format.
Example:
2025-01-05search_typestringOptionalIf you want to search by exact phrase or not
Example:
keyword_unordered
Code samples
Replace $TOOLSWITCH_KEY with the key you created in the console.
curl -X GET 'https://toolswitch.dev/v1/tools/scrapecreators.x.v1-facebook-adlibrary-search-ads?query=running' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY"import os
import requests
response = requests.request(
"GET",
"https://toolswitch.dev/v1/tools/scrapecreators.x.v1-facebook-adlibrary-search-ads?query=running",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/scrapecreators.x.v1-facebook-adlibrary-search-ads?query=running", {
method: "GET",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
},
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());This gateway API is in preview; its URL and authentication may change. The example parameters are sample data. Calls are billed at $0.00188/call, including the service fee.