Meta Ad LibraryMeta AdsAdvertising

Search the Meta ad library by keyword

meta-ad-library.meta-ads.library.search

Search publicly running Facebook and Instagram ads by keyword

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.searchPreview
  • Uses platform quota
  • Synchronous response
  • Reads public data

Parameters

give it either search_terms or search_page_ids — a call with neither returns an error, not the whole library. ad_snapshot_url is the human-viewable render of the creative and needs the access token appended to load. Results are ads Meta has KEPT: commercial ads leave the library some time after they stop running, so this is a live-ish view, not an archive

ParameterTypeRequiredDescriptionExample
Query parameters
afterstringOptionalpaging.cursors.after from the previous response
limitintegerOptionalpage size; 25 by default, a few hundred is the practical ceiling before Meta starts timing out25
fieldsstringRequiredcomma-separated; nothing but id comes back by defaultid,page_id,page_name,ad_creative_bodies,ad_creative_link_titles,ad_creative_link_captions,ad_snapshot_url,ad_delivery_start_time,ad_delivery_stop_time,publisher_platforms,languages,estimated_audience_size
ad_typestringOptionalALL (default) | POLITICAL_AND_ISSUE_ADS | HOUSING_ADS | EMPLOYMENT_ADS | FINANCIAL_PRODUCTS_AND_SERVICES_ADSALL
languagesarrayOptionalISO 639-1 codes (plus CMN, YUE)["en"]
media_typestringOptionalALL | IMAGE | MEME | VIDEO | NONEVIDEO
search_typestringOptionalKEYWORD_UNORDERED (default, all words in any order) | KEYWORD_EXACT_PHRASEKEYWORD_UNORDERED
search_termsstringOptionalmax 100 characters; matched against the ad's text. Required in practice unless you filter by search_page_ids insteadproject management software
ad_active_statusstringOptionalACTIVE (default) | INACTIVE | ALL — ALL is what you want for creative research, since a competitor's best-performing ad may have finishedALL
publisher_platformsarrayOptionalFACEBOOK | INSTAGRAM | AUDIENCE_NETWORK | MESSENGER | WHATSAPP | OCULUS | THREADS["INSTAGRAM"]
ad_delivery_date_maxstringOptionalYYYY-MM-DD
ad_delivery_date_minstringOptionalYYYY-MM-DD; ads that were delivering on or after this date2026-06-01
ad_reached_countriesarrayRequiredREQUIRED on every ads_archive call. JSON array of ISO country codes, URL-encoded — ["US"] — or ALL["US"]
estimated_audience_size_minintegerOptionalone of the fixed buckets 100 | 1000 | 5000 | 10000 | 50000 | 100000 | 500000 | 1000000
  • Query parameters
  • afterstringOptional

    paging.cursors.after from the previous response

  • limitintegerOptional

    page size; 25 by default, a few hundred is the practical ceiling before Meta starts timing out

    Example: 25

  • fieldsstringRequired

    comma-separated; nothing but id comes back by default

    Example: id,page_id,page_name,ad_creative_bodies,ad_creative_link_titles,ad_creative_link_captions,ad_snapshot_url,ad_delivery_start_time,ad_delivery_stop_time,publisher_platforms,languages,estimated_audience_size

  • ad_typestringOptional

    ALL (default) | POLITICAL_AND_ISSUE_ADS | HOUSING_ADS | EMPLOYMENT_ADS | FINANCIAL_PRODUCTS_AND_SERVICES_ADS

    Example: ALL

  • languagesarrayOptional

    ISO 639-1 codes (plus CMN, YUE)

    Example: ["en"]

  • media_typestringOptional

    ALL | IMAGE | MEME | VIDEO | NONE

    Example: VIDEO

  • search_typestringOptional

    KEYWORD_UNORDERED (default, all words in any order) | KEYWORD_EXACT_PHRASE

    Example: KEYWORD_UNORDERED

  • search_termsstringOptional

    max 100 characters; matched against the ad's text. Required in practice unless you filter by search_page_ids instead

    Example: project management software

  • ad_active_statusstringOptional

    ACTIVE (default) | INACTIVE | ALL — ALL is what you want for creative research, since a competitor's best-performing ad may have finished

    Example: ALL

  • publisher_platformsarrayOptional

    FACEBOOK | INSTAGRAM | AUDIENCE_NETWORK | MESSENGER | WHATSAPP | OCULUS | THREADS

    Example: ["INSTAGRAM"]

  • ad_delivery_date_maxstringOptional

    YYYY-MM-DD

  • ad_delivery_date_minstringOptional

    YYYY-MM-DD; ads that were delivering on or after this date

    Example: 2026-06-01

  • ad_reached_countriesarrayRequired

    REQUIRED on every ads_archive call. JSON array of ISO country codes, URL-encoded — ["US"] — or ALL

    Example: ["US"]

  • estimated_audience_size_minintegerOptional

    one of the fixed buckets 100 | 1000 | 5000 | 10000 | 50000 | 100000 | 500000 | 1000000

Code samples

Replace $TOOLSWITCH_KEY with the key you created in the console.

Preview
curl -X GET 'https://toolswitch.dev/v1/tools/meta-ad-library.meta-ads.library.search' \
  -H "X-Toolswitch-Key: $TOOLSWITCH_KEY"

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.