EU ad reach and audience breakdown — Meta ad library
meta-ad-library.meta-ads.library.eu_reachGet the EU reach, audience breakdown and payer of ads delivered in Europe
- Price
- freeAt 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/meta-ad-library.meta-ads.library.eu_reachPreview- Uses platform quota
- Synchronous response
- Reads public data
Parameters
Meta publishes these under the EU Digital Services Act: eu_total_reach is an actual number of accounts reached (not a range), age_country_gender_reach_breakdown splits it by country/age/gender, beneficiary_payers names who paid and who benefits, and target_ages / target_gender / target_locations expose the advertiser's declared targeting — the only place any Meta ad targeting is public. All of it is missing for non-EU delivery, which reads as an empty response field rather than an error
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| Query parameters | ||||
limit | integer | Optional | 25 | |
fields | string | Required | the DSA disclosure set | id,page_name,eu_total_reach,age_country_gender_reach_breakdown,beneficiary_payers,target_ages,target_gender,target_locations,ad_creative_bodies,ad_delivery_start_time |
search_terms | string | Optional | electric car | |
search_page_ids | array | Optional | up to 10 Page ids, to scope to one advertiser | |
ad_active_status | string | Optional | ALL | |
ad_reached_countries | array | Required | EU/EEA member states only — the DSA fields are populated for EU delivery and are absent everywhere else | ["DE","FR"] |
- Query parameters
limitintegerOptionalExample:
25fieldsstringRequiredthe DSA disclosure set
Example:
id,page_name,eu_total_reach,age_country_gender_reach_breakdown,beneficiary_payers,target_ages,target_gender,target_locations,ad_creative_bodies,ad_delivery_start_timesearch_termsstringOptionalExample:
electric carsearch_page_idsarrayOptionalup to 10 Page ids, to scope to one advertiser
ad_active_statusstringOptionalExample:
ALLad_reached_countriesarrayRequiredEU/EEA member states only — the DSA fields are populated for EU delivery and are absent everywhere else
Example:
["DE","FR"]
Code samples
Replace $TOOLSWITCH_KEY with the key you created in the console.
curl -X GET 'https://toolswitch.dev/v1/tools/meta-ad-library.meta-ads.library.eu_reach' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY"import os
import requests
response = requests.request(
"GET",
"https://toolswitch.dev/v1/tools/meta-ad-library.meta-ads.library.eu_reach",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/meta-ad-library.meta-ads.library.eu_reach", {
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 free, including the service fee.