Facebook Page Transparency Scraper
Pricing
from $1.60 / 1,000 transparency profiles
Facebook Page Transparency Scraper
Export public Facebook Page/Profile transparency and Meta Ad Library creatives by brand or Page ID, with optional unified audits. No Facebook login is required.
Pricing
from $1.60 / 1,000 transparency profiles
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
5
Monthly active users
4 days ago
Last modified
Categories
Share
🔎 Audit Facebook Page transparency and public ads
For brand researchers, agencies, journalists, and compliance teams, Facebook Page Transparency Scraper resolves known public Facebook Pages or Profiles and searches the public Meta Ad Library. It returns structured transparency profiles and ad creative rows with source links, so you can review source-exposed ownership, Page history, management countries, contacts, ad status, copy, media, and other public facts in one dataset.
Use cases
- Export a public transparency profile for a known Page or Profile with Facebook Page Transparency Scraper.
- Review source-exposed owner details and advertising status with Facebook Page Ownership Audit.
- Export previous Page names and available change dates with Facebook Page Name History.
- Compare source-reported Page manager locations with Facebook Page Management Countries.
- Collect public creatives for a brand in a selected country with Meta Ad Library Scraper.
- Retrieve public creatives for one numeric Page ID with Facebook Ads by Page ID.
- Send public ad copy, media, status, advertiser data, and source links downstream with Meta Ad Creative Export.
- Combine a known target's transparency context with its available creatives using Facebook Page Ad Audit.
📦 Facebook transparency profiles and ad creatives
The default dataset can contain two row shapes. A transparencyProfile row is for a resolved Page or public Profile. An adCreative row is for a public Meta Ad Library creative. Missing values are omitted rather than inferred. A resolved entity with transparencyAvailable: false still has a row, while an unresolved or inaccessible target does not produce a placeholder row.
Transparency profile data
- Identity fields include the canonical Facebook URL, entity type, verification, and categories.
- Transparency fields can include creation date, previous Page names, management countries, responsible owner details, and advertising status.
- Public contact, address, business, delegate Page, operating-hours, and audience fields appear when Facebook exposes them.
Ad creative data
- Ad rows include advertiser identity, Page identifiers, active status, dates, country, platforms, format, and the public Ad Library URL.
copycan include body, headline, description, caption, destination and display URLs, and a call to action.- Public media, paid-for-by disclosures, and source-exposed spend or impression ranges appear when available.
- A unified audit can add available
pageTransparencycontext to an ad creative.
🚀 Run a Facebook Page transparency or ad audit
Run steps
- Open the Actor in Apify Console.
- Choose one Target value.
- Enter the matching known targets, brand query, or numeric Page ID.
- For an ad target, choose the country and ad status. Add an optional maximum ad count if you want to stop earlier.
- Start the run, then open the default dataset to inspect or export the rows.
For ad targets, leaving the maximum ad count empty returns all available creatives until the public source is exhausted. Duplicate known targets are resolved once. You can also start runs through the Apify API or schedule repeat audits.
⚙️ Input
Choose one target value. Fields for other target choices are ignored. Use pageTransparency for known Pages or Profiles, adsByBrand for one brand search, adsByPageId for one numeric Page ID, or unifiedAudit to join known targets with available ad context.
For ad and unified targets, country is a two-letter uppercase country code and adStatus is active or all. maxAds is an optional positive whole-number limit. Leave it empty to return all available creatives until the public source is exhausted. The schema has no fixed upper bound for this field. Duplicate known targets are resolved once.
Input fields
| Field | Type | What it does |
|---|---|---|
target | string | Chooses pageTransparency, adsByBrand, adsByPageId, or unifiedAudit. |
brandQuery | string | Searches the public Meta Ad Library for one brand in this run. It applies to adsByBrand. |
pageId | string | Accepts one numeric Facebook Page ID to search its public Meta Ad Library. It applies to adsByPageId. |
targets | array of strings | Accepts Facebook Page or public Profile usernames, supported URLs, or numeric Page IDs. You can mix formats in one run. It applies to pageTransparency and unifiedAudit. |
country | string | Sets the two-letter uppercase country code for Meta Ad Library results, such as US, GB, or DE. It applies to ad and unified targets and is ignored for pageTransparency. |
adStatus | string | Chooses active or all available ads in the selected country. It applies to ad and unified targets. |
maxAds | integer | Sets an optional positive whole-number limit for Ad Library creatives across the run. Leave it empty to return all available creatives until the public source is exhausted. It applies to ad and unified targets. |
Public input example
{"target": "pageTransparency","targets": ["facebook"],"country": "US","adStatus": "active","maxAds": 100}
📤 Output
Each successful dataset row is either a transparency profile or an ad creative. The rowType value identifies the shape. Optional fields are omitted when Facebook or Meta does not expose them.
Dataset link
| Field | Type | What it does |
|---|---|---|
results | string | Opens the default dataset overview of successful transparency profiles and ad creatives. |
Transparency profile fields
| Field | Type | What it does |
|---|---|---|
rowType | string | Identifies this row as transparencyProfile. |
id | string | Gives Facebook's stable Page or public Profile ID. |
name | string | Gives the public Page or Profile name. |
username | string | Gives the public Facebook username when available. |
url | string | Gives the canonical public Facebook URL. |
entityType | string | Says whether the source object is a page or profile. |
verified | boolean | Says whether Facebook marks the Page or Profile as verified. |
categories | array of strings | Lists public categories linked to the Page or Profile. |
transparencyAvailable | boolean | Says whether Facebook exposes transparency details for the resolved entity. |
creationDate | date string | Gives the Page or Profile creation date when available. |
nameHistory | array of objects | Lists previous public Page names and available change dates. |
nameHistory[].name | string | Gives an earlier public Page name. |
nameHistory[].changedAt | date string | Gives the date when that Page name changed, when available. |
managementCountries | array of objects | Lists countries linked to Page management. |
managementCountries[].country | string | Gives a country or region linked to Page management. |
managementCountries[].managerCount | integer | Gives the manager count for that country when available. |
owner | object | Holds public responsible-owner details when available. |
owner.name | string | Gives the public responsible-owner name. |
owner.country | string | Gives the responsible owner's country when available. |
adStatus | object | Holds current public advertising status and its Ad Library link. |
adStatus.runningAds | boolean | Says whether Facebook shows current ads for the Page. |
adStatus.adLibraryUrl | string | Gives the public Meta Ad Library URL for the Page's ads. |
contacts | object | Holds public contact details shown by Facebook. |
contacts.websites | array of strings | Lists public website URLs shown by Facebook. |
contacts.emails | array of strings | Lists public email addresses shown by Facebook. |
contacts.phones | array of strings | Lists public phone numbers shown by Facebook. |
contacts.address | object | Holds public address details when available. |
contacts.address.street | string | Gives the public street address. |
contacts.address.city | string | Gives the public city. |
contacts.address.region | string | Gives the public state, province, or region. |
contacts.address.postalCode | string | Gives the public postal code. |
contacts.address.country | string | Gives the public country. |
contacts.address.latitude | number | Gives the public latitude. |
contacts.address.longitude | number | Gives the public longitude. |
business | object | Holds public business and delegate Page details. |
business.businessAccount | boolean | Says whether Facebook marks this as an active business Page. |
business.delegatePage | object | Holds the Page linked to this profile when Facebook provides one. |
business.delegatePage.id | string | Gives the delegate Page's Facebook ID. |
business.delegatePage.name | string | Gives the delegate Page's public name. |
business.delegatePage.url | string | Gives the delegate Page's public Facebook URL. |
business.hours | array of objects | Lists public operating hours or current business status. |
business.hours[].day | string | Gives the day or status label for one hours entry. |
business.hours[].hours | string | Gives the hours or status text shown by Facebook. |
audience | object | Holds public audience and social counts. |
audience.followers | integer | Gives the public follower count. |
audience.likes | integer | Gives the public like count. |
audience.checkIns | integer | Gives the public check-in count. |
audience.talkingAbout | integer | Gives the public count of people talking about the Page. |
Transparency profile example
This complete row is from a successful current-beta Page transparency run.
{"rowType": "transparencyProfile","id": "100064487329582","name": "Starbucks","username": "Starbucks","url": "https://www.facebook.com/Starbucks","entityType": "page","verified": true,"categories": ["Food & beverage company"],"transparencyAvailable": true,"creationDate": "2008-03-11","managementCountries": [{"country": "United States","managerCount": 54},{"country": "Philippines","managerCount": 26},{"country": "Canada","managerCount": 6},{"country": "Romania","managerCount": 2},{"country": "United Kingdom","managerCount": 2},{"country": "Bosnia and Herzegovina","managerCount": 1}],"owner": {"name": "STARBUCKS CORPORATION","country": "United States of America"},"adStatus": {"runningAds": true,"adLibraryUrl": "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=ALL&view_all_page_id=22092443056"},"contacts": {"websites": ["http://www.starbucks.com/"]},"business": {"businessAccount": false,"delegatePage": {"id": "22092443056","name": "Starbucks","url": "https://www.facebook.com/Starbucks"}},"audience": {"followers": 34000000,"likes": 34140098,"talkingAbout": 166159,"checkIns": 1869486}}
Ad creative fields
| Field | Type | What it does |
|---|---|---|
rowType | string | Identifies this row as adCreative. |
id | string | Gives Meta Ad Library's stable creative ID. |
advertiser | object | Holds public advertiser details for the creative. |
advertiser.pageId | string | Gives the advertiser Facebook Page ID when available. |
advertiser.name | string | Gives the public advertiser name. |
advertiser.pageUrl | string | Gives the advertiser's public Facebook Page URL. |
advertiser.verified | boolean | Says whether Facebook marks the advertiser Page as verified. |
advertiser.categories | array of strings | Lists public categories linked to the advertiser Page. |
active | boolean | Says whether the creative is active in the selected country. |
startedAt | date-time string | Gives the ad start time when provided. |
endedAt | date-time string | Gives the ad end time when provided. |
country | string | Gives the two-letter Ad Library country context. |
platforms | array of strings | Lists publisher platforms where the creative appears. |
copy | object | Holds public text and links from the creative. |
copy.body | string | Gives the main creative text. |
copy.headline | string | Gives the creative headline. |
copy.description | string | Gives the creative description. |
copy.caption | string | Gives the display caption. |
copy.callToAction | string | Gives the call to action. |
copy.destinationUrl | string | Gives the public URL opened by the creative. |
copy.displayUrl | string | Gives the display URL shown in the creative. |
format | string | Gives the source-reported format, such as image, video, carousel, or text. |
media | array of objects | Lists public image and video media linked to the creative. |
media[].type | string | Says whether the media item is an image or video. |
media[].url | string | Gives the public media URL. |
media[].thumbnailUrl | string | Gives the public video thumbnail URL when available. |
spend | object | Holds the source-reported spend range when available. |
spend.lower | number | Gives the lower spend value. |
spend.upper | number | Gives the upper spend value. |
spend.currency | string | Gives the three-letter currency code. |
impressions | object | Holds the source-reported impression range when available. |
impressions.lower | integer | Gives the lower impression value. |
disclaimer | string | Gives the public paid-for-by or advertiser disclaimer. |
pageTransparency | object | Holds available transparency context joined to the creative in a unified audit. |
pageTransparency.available | boolean | Says whether public transparency details were available for the advertiser Page. |
pageTransparency.creationDate | date string | Gives the advertiser Page creation date when provided. |
pageTransparency.managementCountries | array of objects | Lists countries linked to management of the advertiser Page. |
pageTransparency.managementCountries[].country | string | Gives a country or region linked to Page management. |
pageTransparency.managementCountries[].managerCount | integer | Gives the manager count for that country when available. |
pageTransparency.ownerName | string | Gives the public responsible-owner name when available. |
pageTransparency.ownerCountry | string | Gives the responsible owner's country when available. |
adLibraryUrl | string | Gives the public Meta Ad Library URL for the creative. |
Ad creative example
This complete row is from a successful current-beta brand search run.
{"rowType": "adCreative","id": "317161109571794","advertiser": {"pageId": "108824017345866","name": "Meta","pageUrl": "https://www.facebook.com/Meta/","categories": ["Internet Company"],"verified": true},"active": false,"startedAt": "2020-09-22T07:00:00.000Z","endedAt": "2020-10-05T07:00:00.000Z","country": "US","platforms": ["facebook"],"copy": {"body": "The Voting Information Center—one-tap voting registration information from election experts and authorities in one place.","headline": "Voting Information Center","description": "Get prepared for this election","caption": "fb.com/votinginfocenter","callToAction": "Learn more","destinationUrl": "http://facebook.com/votinginformationcenter","displayUrl": "fb.com/votinginfocenter"},"format": "video","media": [{"type": "video","url": "https://video-arn2-1.xx.fbcdn.net/o1/v/t2/f2/m412/AQNN757NtitUcJnpv0ODeMH6fXo-yFM-X90P2W82Zsrc70oOzST9lrKgscKf21SHBUtZ9pdKMclY8s32B0eRJ7o.mp4?_nc_cat=106&_nc_sid=ef5aa3&_nc_ht=video-arn2-1.xx.fbcdn.net&_nc_ohc=terVRdWumIsQ7kNvwHNqjo8&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5WSV9VU0VDQVNFX1BST0RVQ1RfVFlQRS4uQzMuMzQwLmFzaWNfaHExX3NkX3Byb2dyZXNzaXZlIiwieHB2X2Fzc2V0X2lkIjo4MzE0MTAwMzMxNDk2MzYsImFzc2V0X2FnZV9kYXlzIjoyNzUsInZpX3VzZWNhc2VfaWQiOjEwNjgwLCJkdXJhdGlvbl9zIjoxNSwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&_nc_gid=PM33OX21bR4BWyNfnhqReQ&_nc_ss=73289&_nc_zt=28&oh=00_AQIhynFDqJ6kyQ3b71TsHQ5T06LF9davwaRUxtm6HnsiSA&oe=6A99FDC8","thumbnailUrl": "https://scontent-arn2-1.xx.fbcdn.net/v/t39.35426-6/120065387_2711663819108220_8472417301728012411_n.jpg?_nc_cat=105&ccb=1-7&_nc_sid=c53f8f&_nc_ohc=gvJupt4tX4sQ7kNvwEfcSbb&_nc_oc=AdqwSg6V9U7JitVp9b6q8MXtpp6V8ftzLgSoG9XVgLigvbWg4QDYaA1DxoOIF7p_Ras&_nc_zt=14&_nc_ht=scontent-arn2-1.xx&_nc_gid=PM33OX21bR4BWyNfnhqReQ&_nc_ss=73289&oh=00_AQKwsrPDSeXmsbYOuc2_9D8LPp3Nw_rrn4mRrrcI4k1vaw&oe=6A99E78A"}],"spend": {"lower": 1,"currency": "USD"},"impressions": {"lower": 1000001},"disclaimer": "Facebook, Inc.","adLibraryUrl": "https://www.facebook.com/ads/library/?id=317161109571794"}
Results are available from the default dataset in Apify Console and through dataset API endpoints. Export them as JSON, CSV, or Excel for analysis.
💳 Pricing
This Actor uses pay-per-event pricing. One event covers each successfully returned public Facebook Page or Profile transparency profile. Another event covers each successfully returned Meta Ad Library creative. Empty, unresolved, unavailable, duplicate, and otherwise unsuccessful work is not a successful output event. Check the Pricing tab for current event prices before starting a run.
🔌 Integrations
Connect your workflow
Use the Apify API to start runs or read dataset rows. Use Apify schedules for repeat audits and webhooks when runs finish. Export rows as JSON, CSV, or Excel for spreadsheets, databases, dashboards, or other automation tools.
❓ FAQ
Why did a resolved Page have transparencyAvailable: false?
Facebook resolved the Page or Profile but did not expose transparency details at collection time. The row still contains the identity fields that Facebook returned. This is different from an unresolved, inaccessible, private, restricted, removed, or login-only target, which does not produce a placeholder row.
Why did my target produce no row?
The target may be unresolved, inaccessible, private, restricted, removed, or login-only. The Actor does not create a placeholder row when the public source does not return a usable target.
Should I search ads by brand or Page ID?
Use a brand search when you want source matches for a name. Use a numeric Page ID when you already know the advertiser Page and want to avoid name ambiguity. Each run supports one ad search configuration.
What is the difference between active and all ads?
active requests creatives currently active in the selected country. all requests all creatives Meta makes available for that search and country, including inactive ones.
What does unifiedAudit add?
It uses known Page or Profile targets and can join available transparency context to matching public ad creatives. It can also return the resolved profile row. The country, ad status, and maxAds settings apply to the ad part of the run.
Does maxAds apply to every target?
No. It is the maximum number of Ad Library creatives across the run, not a separate allowance for every target. If you leave it empty, the Actor returns all available creatives until the public source is exhausted.
What happens when I submit the same known target twice?
The first eligible occurrence is saved. Later duplicate values are ignored. The saved row represents the first match and does not combine later submitted values.
Are ownership, spend, and impression values always available?
No. Facebook and Meta expose different fields by Page, ad, country, and time. The Actor returns source-exposed values and omits unavailable ones instead of estimating them.
Do I need Facebook credentials or a Meta API key?
No. The Actor accesses public data and does not require your Facebook login, cookies, or Meta API key. It cannot access private, restricted, removed, or login-only content.
Does this Actor collect posts, comments, reviews, or events?
No. It is limited to public Page/Profile context and public Facebook and Instagram Ad Library surfaces.
📝 Changelog
1.0: Transparency profiles and Meta Ad Library research
- Add Page and Profile transparency, brand and Page ID Ad Library searches, and unified Page ad audits with structured results.
v0.1
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Facebook Business Page Lead Scraper finds public Pages by keyword or enriches Page URLs before a transparency check.
- Google Ads Scraper collects public Google Ads Transparency Center creatives for cross-source ad research.
- Facebook User Posts Scraper collects public Page and Profile timeline posts with text, media, timestamps, and engagement.
- Facebook Reviews Scraper collects public Page recommendations with reviewer details, comments, replies, and media.
- Facebook Media Downloader resolves known public Facebook video, reel, and photo URLs into direct media links.
Made with ❤️ by Maxime Dupré