Advertiser ads API
2 endpoints on 2 platforms return the same Ad object. The ads one advertiser has run. Every call costs $0.0020; a failed call is free.
Advertiser ads on each platform
One row per endpoint: what it is called, how much comes back in a call, and what a call costs.
The Ad object
Every endpoint above returns these fields, with the same names and types.
idtextID; pass it unchanged to the ad's get endpointurllinkThe ad's page in the platform's ad libraryformattextFormat of the creative; other is a format of the platform's owntitletextHeadlinetexttextBody textlanding_urllinkWhere a click on the ad leadsadvertiser.idtextAdvertiser IDadvertiser.nametextAdvertiser's nameadvertiser.urllinkThe advertiser's page on the platformadvertiser.avatar_urllinkThe advertiser's picture or logoimageslist of linkAddresses of the ad's imagesvideoslist of linkAddresses of the ad's videos; they expirefirst_shown_attimeWhen the ad was first shownlast_shown_attimeWhen the ad was last shown; for an ad still running, when the platform last saw itWhich platform fills which field
A field an endpoint cannot give is listed in meta.unavailable on every answer, so a gap is never a surprise.
The same call on two platforms
Same parameter names, same paging, same answer. Only the path changes.
# Meta Ad Library curl -G "https://api.dataxapi.com/v1/meta/advertisers/ads/list" \ --data-urlencode "id=182162001806727" \ -H "Authorization: Bearer $DATAXAPI_API_KEY" # Google Ads: one word changes curl -G "https://api.dataxapi.com/v1/google/advertisers/ads/list" \ --data-urlencode "id=AR16735076323512287233" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
// Meta Ad Library import { DataXAPI } from "@dataxapi/sdk"; const dx = new DataXAPI(); // reads DATAXAPI_API_KEY const result = await dx.meta.advertisers.ads.list({ id: "182162001806727" }); console.log(result.data.items); // Google Ads: one word changes const other = await dx.google.advertisers.ads.list({ id: "AR16735076323512287233" }); console.log(other.data.items);
# Meta Ad Library from dataxapi import DataXAPI dx = DataXAPI() # reads DATAXAPI_API_KEY result = dx.meta.advertisers.ads.list(id="182162001806727") print(result["data"]["items"]) # Google Ads: one word changes other = dx.google.advertisers.ads.list(id="AR16735076323512287233") print(other["data"]["items"])
# Meta Ad Library dataxapi call meta.advertisers.ads.list id=182162001806727 # Google Ads: one word changes dataxapi call google.advertisers.ads.list id=AR16735076323512287233
{
"code": "ok",
"request_id": "e668eb1d-037c-4aa8-a619-d97577b4018d",
"data": {
"items": [
{
"id": "1366273623732556",
"url": "https://www.facebook.com/ads/library/?id=1366273623732556",
"format": "image",
"title": "Weekend hiking essentials, 20% off this week only",
"text": "Weekend hiking essentials, 20% off this week only",
"landing_url": "https://www.northside-roasters.com/new?utm_source=meta",
"advertiser": {
"id": "163608278941038",
"name": "Northside Coffee",
"url": "https://www.facebook.com/profile.php?id=163608278941038",
"avatar_url": "https://scontent.xx.fbcdn.net/v/t39.30808-1/442435085_118101354893229_n.jpg"
},
"images": [
"https://scontent.xx.fbcdn.net/v/t39.35426-6/457089164_132879709605097_n.jpg",
"https://scontent.xx.fbcdn.net/v/t39.35426-6/495655475_123700917496493_n.jpg",
// … 4 more
],
"first_shown_at": "2025-04-07T07:00:00.000Z",
"last_shown_at": "2026-10-12T07:00:00.000Z"
},
// … 29 more
]
},
"page": {
"next_cursor": "c1.TODjSo-a2u-2vYIvOrK_MLKKlXvkiTJkQul7_7Fg",
"cursor_expires_at": "2026-10-12T22:44:28.000Z",
"has_more": true,
"returned": 30
},
"warnings": [],
"meta": {
"capability": "meta.advertisers.ads.list",
"result_status": "complete",
"fetched_at": "2026-10-12T21:44:28.000Z",
"cached": false,
"replayed": false,
"unavailable": {},
"billing": {
"amount": "0.002",
"currency": "USD",
"balance_after": "9.998"
}
}
}Meta advertiser's ads: From a response recorded 2026-10-12 21:44 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.
What comes back
The objects these endpoints answer with: one set of fields each, the same on every platform.
Questions about the Advertiser ads API
Short answers. Each endpoint's page has its own limits and examples.
Meta advertiser's ads API →How much does it cost?
$0.0020 a call on Meta Ad Library, Google Ads. You are charged when data comes back; a failed call costs nothing. No subscription, no monthly minimum.
How do I get every page?
Pass page.next_cursor back as cursor until page.has_more is false. Each page is one call at the same price.
Does every platform fill every field?
No. 6 of the 14 fields are missing on at least one platform; the table on this page says which. A field an endpoint cannot give is named in meta.unavailable on every answer, never filled with a guess.
Do I need an account on the platform?
No. One DataXAPI key reads all 2 platforms. No platform account and no cookie.
Other data types
The same idea everywhere: one action, every platform that has it.
Start with one key.
207 endpoints on 21 platforms, from $0.0003 a call. Errors and timeouts are not charged.