Scrape the Meta ad library by Page or search URL

From Apify, through Joshu Data Bodega.

Price
$0.0055 per call$5.50 per 1,000 calls

No calls measured in the last 30 days.

Prices include the router's 10% markup and are paid from the usage wallet. Checked on November 11, 2026.

Inputs

  • timeoutinteger, optional

    treg's key requires 1-90 so the run and its rows arrive before any wait gives up (a larger pull needs your own key). seconds before the synchronous run is cut off. This route blocks until the actor finishes and Apify closes the connection at 300s regardless — use the async pair below for anything large

  • maxItemsinteger, optional

    optional row cap; pay-per-event actors that take the row count from their own input ignore it, so maxTotalChargeUsd is the spend limit

  • onlyTotalboolean, optional

    true returns just the ad COUNT instead of the ads — one cheap result row when all you need is how much a competitor is running

  • startUrlsarray, required

    [{"url": "…"}] — either a Facebook Page URL or a full Meta Ad Library search URL (facebook.com/ads/library/?q=…&country=US)

  • activeStatusstring, optional

    "active" | "inactive" | "" for both

  • resultsLimitinteger, optional

    max ads PER URL; unlimited if omitted, which is how runs get expensive

  • isDetailsPerAdboolean, optional

    true adds Instagram data, spend info and EU reach/targeting per ad — richer than Meta's own API, and slower

  • includeAboutPageboolean, optional

    true adds the advertiser's address, admin country and page history

  • onlyAdsNewerThanstring, optional

    YYYY-MM-DD or a relative phrase like "2 months"

  • onlyAdsOlderThanstring, optional

  • maxTotalChargeUsdnumber, optional

    the spend cap Apify enforces on every event this run bills, in dollars. treg's key requires it, above 0 and at most 1, and holds it for the call

  • enrichWithEcommerceDataboolean: false, optional

    true follows landing pages for product names and prices and bills an extra ecommerce-enrichment event per ad; treg's key requires false, your own key may enable it

Call it

Router call with a router API key
curl https://hello.joshu.me/api/router/call \
  -H "Authorization: Bearer $JOSHU_ROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "apify.meta-ads.library.search",
    "params": {
      "timeout": 90,
      "maxItems": 1,
      "onlyTotal": true,
      "startUrls": [
        {
          "url": "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=project+management"
        }
      ],
      "activeStatus": "active",
      "resultsLimit": 1,
      "isDetailsPerAd": false,
      "maxTotalChargeUsd": 0.05,
      "enrichWithEcommerceData": false
    }
  }'