For AI

Endpoints by data type

Advertiser ads API

2 endpoints on 2 platforms return advertiser ads as the same Ad object. The ads one advertiser has in a public ad library, a page at a time: format, copy, creative, landing page, and when each was first and last shown. A call costs $0.004, each endpoint at its own price; a failed call is free.

Advertiser ads · on each platform

PlatformEndpointPathA pagePrice
Meta Ad LibraryMeta advertiser adsGET /v1/meta/advertisers/ads/list30$0.004 per call · about 30 ads per page
Google Ads TransparencyGoogle advertiser adsGET /v1/google/advertisers/ads/list40$0.004 per call · about 40 ads per page

$0.004 a call, each endpoint at its own price. A call that fails costs nothing.

The object it returns: Ad

Every endpoint above returns these fields with the same names and types. A field a platform does not show comes back null and is named in meta.unavailable.

FieldTypeMeaning
idstringAd ID in the library.
urlstringLink to the ad in the library.
advertiserAdvertiserRefWho runs the ad.
titlestring | nullHeadline, where the ad has one.
textstringAd copy as plain text; empty when the ad has none.
formatstring | nullCreative format; dynamic means the platform assembles it per viewer (catalog ads).
imagesstring[] | nullImage URLs of the creative.
videosstring[] | nullVideo URLs of the creative.
landing_urlstring | nullWhere the ad leads.
ctastring | nullCall-to-action button text.
platformsstring[] | nullWhere it is delivered, e.g. facebook, instagram.
activeboolean | nullWhether the ad is still running.
first_shown_atstring | nullFirst time or day shown, ISO 8601 in UTC.
last_shown_atstring | nullLast time or day shown, ISO 8601 in UTC.
reachstring | nullPeople reached, as the library publishes it: a bracket such as 1K-10K, or a count (the EU reach of a Meta ad); null where none is published.
extobjectPlatform-specific extras. Only returned with view=full.

The same call on two platforms

Same parameters, same paging, same response shape. Only the path changes.

cURL
# Meta Ad Library
curl -G "https://api.okdata.online/v1/meta/advertisers/ads/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'id=30147264485'

# Google Ads Transparency
curl -G "https://api.okdata.online/v1/google/advertisers/ads/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'id=AR17172796163137470465'

What people use it for

  • See every ad a competitor runs before you plan your own campaign.
  • Check every week which new creatives a brand has started.
  • Count how many ads a brand runs on each placement.

Questions

What do I need to identify the advertiser?
Google takes the advertiser ID or the brand’s website domain; Meta takes the Facebook page ID or the brand’s name. Each endpoint page lists its parameters.
Can I tell running ads from stopped ones?
Each ad carries its first and last shown dates, and active where the library says it. Compare last_shown_at with today to separate the two.
How do I spot new ads?
Store the ad ids from each check. Any id you have not seen before is new. A check costs one call per page you read.

Connect once, then just ask.

Every new key comes with $0.10 to try it. One sentence connects your agent.

Start free
Connect your AI

Paste this into your agent

Read https://okdata.online/agents.md and set up okdata for me; my key is in the OKDATA_API_KEY environment variable.

Claude Code, Cursor, Codex and other agents that can open a link set themselves up from it.

MCP serverhttps://api.okdata.online/mcp