Apify actor · whoareyouanas/meta-ad-library-single-ad-lookup
Facebook Ad Library Scraper – Single Ad Lookup
Look up one known Facebook or Instagram ad using its Meta Ad Library ID or URL. Retrieve available creative details and an explicit lookup result for audits and follow-up research.
Documentation checked 2026-10-29 · deployed build 1.2.1 · run through your Apify account
01 / Overview
Match the actor to the job.
Known-ad lookup
Start with a Library ID rather than discovering an advertiser's whole inventory.
Creative context
Collect available copy, advertiser, CTA, landing page, images, videos, dates, and platforms.
Explicit outcomes
Review lookupStatus, status, and error fields before interpreting whether an ad is active.
02 / Input
Start with a clear, bounded input.
adId is required and accepts a numeric Library ID or supported Meta Ad Library URL. Page IDs, Facebook post IDs, and Ads Manager campaign IDs are different identifiers. One ad is looked up per run.
{
"adId": "1191898553123641",
"country": "ALL"
}Replace example targets and credential placeholders before running. These are documentation examples, not a promise of currently available source results.
| Field | Type / required | Default | Purpose |
|---|---|---|---|
| adId | stringRequired | Not specified | Paste one numeric Library ID or an HTTPS Facebook Ad Library link containing ?id=. Search URLs and advertiser Page URLs are not supported. |
| country | string | "ALL" | ISO 3166-1 alpha-2 country code. Defaults to 'ALL' to search all regions. |
03 / Output
Know what each returned row represents.
- The output view includes lookupStatus, status, adLibraryUrl, active, and error alongside creative fields.
- Unavailable or unknown status must stay distinct from an explicit inactive result. Missing creative fields do not by themselves establish removal.
{
"adId": "1191898553123641",
"libraryID": "1191898553123641",
"brand": "Example Brand",
"body": "Explore our new collection.",
"linkTitle": "Shop the Collection",
"linkUrl": "https://example.com/shop",
"ctaText": "Shop Now",
"ctaUrl": "https://example.com/shop",
"images": [
{
"url": "https://example.com/creative.jpg"
}
],
"videos": [],
"format": "image",
"platforms": [
"Facebook",
"Instagram"
],
"totalPlatforms": 2,
"startDate": "2026-08-01T00:00:00.000Z",
"endDate": "",
"active": true,
"scrapedAt": "2026-09-10T12:00:00.000Z"
}Example values illustrate the published contract. Available fields and populated values depend on the source, mode, and result status.
Fields in the documented output view
lookupStatus
lookupStatus
status
status
adLibraryUrl
adLibraryUrl
adId
Ad ID
brand
Advertiser
body
Ad copy
linkTitle
Headline
images
Images
videos
Videos
linkUrl
Landing page URL
ctaText
CTA
ctaUrl
CTA URL
platforms
Platforms
startDate
Start Date
endDate
End Date
active
Active flag (check errors)
error
Lookup error
libraryID
Library ID
format
Format
scrapedAt
Scraped At
country
country
extractionMethod
extractionMethod
Output views select columns. They do not necessarily filter record types or exhaust the full JSON payload. Use structured JSON when you need nested arrays or objects.
Dataset links and run artifacts (4)
- Ad lookup results
- Structured ad details and any lookup error records saved to the default dataset.
- Run artifacts
- Files stored in the default key-value store, including debug records when fallback extraction fails.
- Single lookup result
- JSON record including explicit lookup outcome and activity status.
- Download CSV
- Available through the actor's Output tab for your run.
04 / Pricing
Understand the billable unit.
These are the active public event prices checked on 2026-10-29, in USD. They describe each event, not a universal flat price for a run. Confirm your current Apify plan and run budget before starting.
| Billable event | Rate (USD) | When it applies |
|---|---|---|
result apify-default-dataset-item | $0.006 / event | Single result in the default dataset. $6.00 per 1,000 of this event. Other events and separate services are additional. |
Actor Start apify-actor-start | $0.00005 / event | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). Start units depend on allocated memory: one event per GB, with at least one event. |
- Budget for the configured dataset result event and memory-based actor start event.
- Inspect the returned lookup result and run charge details; an unavailable ad should not be treated as a successful creative capture.
A result limit and a spending cap are different controls. Account charges, applicable taxes, and separately billed providers or proxies must be considered where relevant. A cap setting is not a minimum invoice charge.
05 / API & automation
Use the same input from your workflow.
Test a small run in Apify Console, inspect its records and charges, then save a task or call the actor from your own application. Keep your Apify token in an environment variable. Source-specific credentials, if required, are separate from the Apify API token.
# Save the input example as input.json and set APIFY_TOKEN.
# This request starts an asynchronous, potentially billable run.
curl --request POST \
'https://api.apify.com/v2/acts/whoareyouanas~meta-ad-library-single-ad-lookup/runs' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data @input.jsonThe response identifies the run. Wait for it to finish, inspect its status, and use its default dataset and key-value store to retrieve results. A successful run can still contain partial or failed records; check the output contract above before continuing downstream.
Coverage & interpretation
Check the result before relying on it.
- This is a focused lookup, not a broad advertiser or keyword search.
- Country visibility and public-source availability can affect what is returned.
Questions
Before you build an integration.
What do I need to provide?
adId is required and accepts a numeric Library ID or supported Meta Ad Library URL. Page IDs, Facebook post IDs, and Ads Manager campaign IDs are different identifiers. One ad is looked up per run.
What should I check in the output?
- The output view includes lookupStatus, status, adLibraryUrl, active, and error alongside creative fields.
- Unavailable or unknown status must stay distinct from an explicit inactive result. Missing creative fields do not by themselves establish removal.
How do I budget the run?
- Budget for the configured dataset result event and memory-based actor start event.
- Inspect the returned lookup result and run charge details; an unavailable ad should not be treated as a successful creative capture.
Keep exploring
Practical guides for the next step.
Is That Meta Ad Still Running? Check an Ad Library ID
Look up a saved Facebook or Instagram ad, distinguish inactive ads from failed lookups, and build a status history you can trust.
Read the guideTop 5 Facebook Scrapers in 2026
Compare the best Facebook scrapers for Meta ads, Facebook groups, public pages, and single-ad status checks. Use the right tool for the data you actually need.
Read the guideTop 7 Web Scrapers for Competitor Research in 2026
Compare the best web scrapers for competitor ad research, social listening, lead generation, and market research across Meta, Google, TikTok, Reddit, websites, and Facebook Groups.
Read the guide