SocialToAIStart freeConsole
POST/v1/call/meta.advertiser_adsPreview

Meta advertiser's ads API

Only on Meta Ad Library.

The Meta advertiser's ads API returns the ads an advertiser (a Facebook page) is running now in the Meta Ad Library, by the page's ID: text, headline, images and videos, landing page, first and last day shown; can be limited to a country and to image or video ads, sorted by impressions or newest first. 30 ads a page. One call costs 2 credits ($0.004 to $0.0067 depending on the pack); failed calls are free. Last tested 2026-10-17.

100 credits on sign-up, no card needed
2 creditsper call
Up to 30 per pageone page per call
2026-10-17last tested
1.0 KBsample response, 1 item

Last updated:

Preview: this interface is not marked stable yet, so its parameters and fields may still change. It is charged like any other call, and a failed call is not charged.

Request and response

curl https://api.socialtoai.com/v1/call/meta.advertiser_ads \  -H "Authorization: Bearer $SOCIALTOAI_KEY" \  -H "Content-Type: application/json" \  -d '{    "id": "182162001806727"  }'
import osimport requestsresponse = requests.post(    "https://api.socialtoai.com/v1/call/meta.advertiser_ads",    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},    json={        "id": "182162001806727",    },)print(response.json())
# Connected over MCP? Ask in plain words.Use the Meta advertiser's ads interface (meta.advertiser_ads) with id: 182162001806727.# Your AI calls the call tool with:{  "id": "182162001806727"}
Change the requestThe code above follows.
sort
type
Sign in to run2 creditsOpens in the Playground with these parameters after you sign in. It never runs by itself.
200 OK1.0 KB2 credits
{  "op": "meta.advertiser_ads",  "platform": "meta",  "status": "ok",  "items": [    {      "platform": "meta",      "id": "…",      "ref": "…",      "approx": [],      "type": "entry",      "entry_type": "ad",      "title": "…",      "url": "https://example.com/…",      "rank": null,      "heat": null,      "fields": {        "format": "image",        "text": "…",        "landing_url": "https://example.com/…",        "advertiser": {          "id": "…",          "name": "…",          "url": "https://example.com/…"        },        "images": ["https://example.com/…", "https://example.com/…"],        "first_shown_at": "2025-04-07T07:00:00.000Z",        "last_shown_at": "2026-10-12T07:00:00.000Z"      }    }  ],  "unavailable": [],  "page": {    "has_more": true,    "cursor": "cur_…",    "cursor_expires_at": "2026-10-12T22:14:28.000Z"  },  "cost_credits": 2}
entry_type
ad
format
image
text
…
landing_url
https://example.com/…
first_shown_at
2025-04-07T07:00:00.000Z
last_shown_at
2026-10-12T07:00:00.000Z

Names and text were removed from the sample; the numbers are as recorded.

Sample data1 of the 30 items recorded

5 parameters.
1 required.

Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.

NameTypeRequiredDefaultDescription
idstringRequired—The advertiser's ID, which is its Facebook page ID, a string of digits; the Meta advertiser search finds it by name
regionstringOptional—Only ads delivered in this country or region, by its two-letter code; all of them when left out
sortstringOptional"popular"By impressions, highest first, or newest first
"popular""latest"
typestringOptional—Only image ads or only video ads; all of them when left out
"image""video"
cursorstringOptional—Pass page.cursor from the last response to get the next page.

Where to get what you send.

id

The advertiser's ID, which is its Facebook page ID, a string of digits; the Meta advertiser search finds it by name (e.g. 182162001806727)

No other interface of the platform returns it: take it from the web page or link as described above.

The fields of each item.
What Meta Ad Library cannot give is marked.

FieldTypeMeaning
items[].titlestringThe entry's title or name.
items[].urlstringA link that opens it; null where the platform's list has none.
items[].rankintegerPosition on a board, from 1.
items[].heatintegerThe platform's heat score.
items[].fields.formatstringThe ad's format: text, image or video. other is a format of the platform's own.
items[].fields.textstringThe ad's body text.
items[].fields.landing_urlstringWhere a click on the ad leads.
items[].fields.advertiser.idstringAdvertiser ID.
items[].fields.advertiser.namestringAdvertiser's name.
items[].fields.advertiser.urlstringThe advertiser's page on the platform.
items[].fields.imagesstring[]Addresses of the ad's images.
items[].fields.first_shown_atstringWhen the ad was first shown.
items[].fields.last_shown_atstringWhen the ad was last shown. For an ad still running, when the platform last saw it.
nullFields Meta Ad Library cannot give

Meta Ad Library gives every field of this call. Where one item lacks a value, that field is null.

Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format

What to expect.

One call returns a page of up to 30 items. When page.has_more is true, send page.cursor back as cursor for the next page; each page costs 2 credits and a cursor works for 30 minutes.
A call that runs and finds nothing is a successful call: status is "empty", items is empty, and it costs 2 credits.
On this call Meta Ad Library cannot tell a post that does not exist from one with no data: both come back as empty, and both are charged.

1 call per second per key, 5 after a purchase; going over is not charged. Rate limits

A failed call costs 0 credits and is never retried on its own. Error codes

Once connected over MCP, these questions use it.

  1. Get the ads an advertiser (a Facebook page) is running now in the Meta Ad Library, by the page's ID: 182162001806727.
    call {"op":"meta.advertiser_ads","id":"182162001806727"}
    2 credits
  2. Get the ads an advertiser (a Facebook page) is running now in the Meta Ad Library, by the page's ID: 182162001806727, with sort set to latest.
    call {"op":"meta.advertiser_ads","id":"182162001806727","sort":"latest"}
    2 credits

The interface of the same name on other platforms.

All platforms and prices
POST/v1/call/meta.advertiser_ads{ "id": "182162001806727" }2 creditsper call
Change the op in the path. The response around the items keeps the same shape.

Questions.
Short answers.

Everything on Meta Ad Library
Do I need a Meta Ad Library account or Meta Ad Library's own API access?
No. You only need a SocialToAI key. The call returns content and account information publicly visible on Meta Ad Library; you never sign in to Meta Ad Library or apply for anything there.
What does “Preview” mean here?
Preview: this interface is not marked stable yet, so its parameters and fields may still change. It is charged like any other call, and a failed call is not charged.

Your AI is one URL away
from all of social media.

100 credits on sign-up, no card needed