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.

Run it in the PlaygroundSee the callSign in to run it; it runs on your own balance.
Platforms2 platforms
Endpoints2 endpointsone on each platform
PriceFrom $0.0020per call. A failed call is free
ReturnsAd30 to 40 a page, with a cursor for the next

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.

PlatformEndpointA pageReturnsPrice
Meta Ad LibraryMeta advertiser's adsGET/v1/meta/advertisers/ads/list30Ad list$0.0020
Google AdsGoogle advertiser's adsGET/v1/google/advertisers/ads/list40Ad list$0.0020
Prices are the prices in force. A call that fails, or whose result is uncertain, costs nothing.Live status →

The Ad object

Every endpoint above returns these fields, with the same names and types.

The object's own page →
idtextID; pass it unchanged to the ad's get endpoint
urllinkThe ad's page in the platform's ad library
formattextFormat of the creative; other is a format of the platform's own
titletextHeadline
texttextBody text
landing_urllinkWhere a click on the ad leads
advertiser.idtextAdvertiser ID
advertiser.nametextAdvertiser's name
advertiser.urllinkThe advertiser's page on the platform
advertiser.avatar_urllinkThe advertiser's picture or logo
imageslist of linkAddresses of the ad's images
videoslist of linkAddresses of the ad's videos; they expire
first_shown_attimeWhen the ad was first shown
last_shown_attimeWhen the ad was last shown; for an ad still running, when the platform last saw it

Which 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.

Platformtitletextlanding_urladvertiser.urladvertiser.avatar_urlvideos
Meta Ad Library
Google Ads

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
200 · application/json · charged $0.0020
{
  "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.

All skills →

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.

Start free