Facebook Page Scraper
Pricing
$1.50 / 1,000 page scrapeds
Facebook Page Scraper
Scrape any public Facebook Page into one clean row: name, category, intro, follower and like counts, profile and cover images, both Page identifiers, and the newest public post with its reactions, comments and shares. Optional website, email and phone. No account or login needed.
Pricing
$1.50 / 1,000 page scrapeds
Rating
0.0
(0)
Developer
Hamza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
Turn a list of Facebook Pages into a clean, structured table: the Page's name, category, intro text, follower and like counts, its profile and cover imagery, its two Facebook identifiers, and — if you want it — its most recent public post with the reactions, comments and shares already attached. Give it a Page link, a handle or a Page id and it gives you back one tidy row per Page. No Facebook account, no login and no personal details are involved.
What you can do with it
- Build a competitor board. Track the follower and like counts of every brand in your category and watch them move week over week.
- Enrich a list you already have. Feed in the Facebook links from a CRM export or a directory scrape and get back category, audience size, bio and imagery for each one.
- Check what a brand posted last. The newest public post arrives with its text, publish time, media and engagement counts, so a scheduled run doubles as a light-touch content monitor.
- Verify that a handle still belongs to who you think it does. Facebook reassigns vanity URLs, so every row reports the identity that actually came back and flags it when it does not match what you asked for.
- Grab logos and cover art at scale for a pitch deck, a comparison page or a directory listing.
- Pull contact details too, by switching on the contact option — the website, email and phone number a Page publishes in its intro block.
What you get
One row per Page. An abridged real example:
{"pageId": "54971236771","profileId": "100044561550831","vanity": "NASA","canonicalUrl": "https://www.facebook.com/NASA/","name": "NASA - National Aeronautics and Space Administration","category": "Government organization","intro": "Explore the universe and discover our home planet.","followers": 28000000,"followersAreApproximate": true,"followersText": "28M","likes": 28660417,"talkingAboutCount": 87820,"profilePictureUrl": "<direct image link>","coverPhotoUrl": "<direct image link>","latestPost": {"postId": "1591339195694784","url": "https://www.facebook.com/reel/1596135602179420/","publishedAt": "2026-07-31T21:00:25.000Z","text": "The sky is full of excitement this month! You can look forward to seeing: ...","reactions": 2371,"reactionsBreakdown": { "like": 1974, "love": 349, "care": 29, "wow": 14, "haha": 2, "angry": 2, "sad": 1 },"comments": 92,"shares": 293,"mediaType": "Video","mediaUrl": "<direct media link>","isSponsored": false},"identityMatchesRequest": true,"requestedInput": "https://www.facebook.com/NASA/","availability": "OK","sourceUrl": "https://www.facebook.com/NASA/","scrapedAt": "2026-08-01T09:14:02.318Z"}
Input reference
| Setting | Type | Default | What it does |
|---|---|---|---|
| Facebook Pages | list of text | one example Page | The Pages to scrape, one per line. A Page link, a handle with or without the @, or a Page's numeric id. Anything that is not a Page — a group, a post, a marketplace listing, a personal profile link — is skipped and noted in the log. |
| Include the latest post | yes / no | yes | Adds the Page's newest public post, with its text, publish time, media and engagement counts. |
| Include contact details | yes / no | no | Also returns the website, email and phone number the Page publishes. Slightly slower, because a second, lighter version of each Page is read. |
| Browse from | choice | United States | Which country to browse from. Facebook tailors some Pages by region. |
| Pages at a time | number 1–8 | 4 | How many Pages to work on simultaneously. Four is the sweet spot; higher settings do not finish sooner. |
Output fields
| Field | Description |
|---|---|
pageId | The Page's own numeric identifier. |
profileId | The Page's profile identifier. This is a different number in a different namespace — both are given, never merged. |
vanity | The handle Facebook actually resolved to. |
canonicalUrl | The Facebook address the Page resolved to. |
name | The Page name. |
category | The category the Page publishes, e.g. "Government organization". |
intro | The Page's intro / bio text. |
followers | Follower count. Read followersAreApproximate before treating it as exact. |
followersAreApproximate | true when Facebook published the figure rounded. |
followersText | The figure exactly as Facebook shows it, e.g. 28M. |
likes | Exact like count, where Facebook publishes one. |
talkingAboutCount | People talking about this Page, where published. |
profilePictureUrl | Direct link to the profile image. |
coverPhotoUrl | Direct link to the cover image. |
latestPost | The newest public post: postId, url, publishedAt, text, reactions, reactionsBreakdown, comments, shares, mediaType, mediaUrl, isSponsored. |
website, email, phone | Present only when the contact option is switched on, and only where the Page publishes them. |
identityMatchesRequest | false when the handle you supplied resolved to a different one. null when you supplied an id, so there was nothing to compare. |
requestedInput | The exact line you supplied, so results are easy to join back to your list. |
availability | OK on every returned row. A Page that is not publicly viewable, and a Page that could not be read at all, are reported separately in the run log instead — never as a row, and never charged for. |
sourceUrl | The Facebook address that was read. |
scrapedAt | When the row was produced, in ISO 8601. |
Pricing
You pay $0.0015 for each Page returned — that is $1.50 per 1,000 Pages, whether or not you switch on the latest post and the contact details.
- 100 Pages → $0.15
- 1,000 Pages → $1.50
- 10,000 Pages → $15.00
Pages that turn out not to be publicly viewable, and Pages that could not be read at all, produce no row and cost you nothing. You are only charged for a Page you actually get data for.
Limits & what this actor cannot do
- Only the most recent public post. Facebook shows visitors who are not logged in just the newest post on a Page, so a full post history cannot be collected. This actor returns one post per Page and never claims otherwise.
- Some Pages are not publicly viewable at all. They are set so their content is visible only to logged-in visitors, or the handle no longer exists. Those are reported as unavailable in the run log — never returned as an empty row, and never charged for. Expect a noticeable share of any large, unvetted list to land here.
- Occasionally Facebook turns an attempt away instead of answering. The actor tries again automatically, and if Facebook still will not answer for that Page, the run reports it as unreadable and counts it separately from the unavailable ones. That is deliberate: nothing was learned about the Page either way, so calling it "not publicly viewable" would state a fact that is not in evidence. Unreadable Pages are never charged for, and re-running just those inputs usually clears them.
- Follower counts are published rounded for large Pages. Facebook shows
"28M" rather than an exact figure, so the row carries
followersAreApproximateand the exact number is given only where Facebook publishes one. - No verification badge is reported. Facebook's public signal for it is unreliable — it reads "not verified" for several household-name Pages that are verified in reality — so shipping it would be worse than leaving it out.
- No Page creation date. It is not published to visitors who are not logged in on any surface this actor reads.
- Engagement is a snapshot. Reaction, comment and share counts change from
minute to minute; the numbers are correct as of
scrapedAtand will drift afterwards. - Vanity URLs get reassigned. A handle that once belonged to one brand can
now resolve to a completely different profile, with a perfectly healthy-looking
result. Every row reports the identity that actually came back, and
identityMatchesRequestflags the difference so it is visible rather than silent. - There is no keyword search. Facebook publishes no public directory of Pages, so you supply the Pages you want; this actor cannot find them by topic, category or city.
- Speed depends on the size of the job and on Facebook's own response times. No fixed throughput is promised.
- Use the data lawfully. Facebook's terms prohibit automated access, and much of this data is personal data. You are responsible for using what you collect in line with the source site's terms and with applicable privacy law.
FAQ
Do I need a Facebook account? No. Nothing about this actor involves an account.
Does it need my login or personal details? No. It never asks for them and there is nowhere to enter them.
Can I schedule it? Yes. Schedule it daily or weekly and each run appends a fresh dated row per Page, which makes follower growth and posting activity easy to chart over time.
Is the data complete? It is exactly what the Page publishes to the public, and no more. Pages that are not publicly viewable produce no row. Follower counts are rounded for large Pages. Only the newest post is available. Everything a Page does not publish comes back blank rather than guessed at.
Why are there two different id fields?
Because Facebook genuinely has two. pageId and profileId are different
numbers in different namespaces and both legitimately identify the same Page.
Both are given so you can match against whichever one your other data uses.
What happens when a handle points at the wrong brand now?
You still get the row, but identityMatchesRequest is false and vanity,
name and canonicalUrl show you what actually came back, so you can drop or
review it.
Can it find Pages for me by keyword or city? No. Facebook has no public Page directory to search, so the Pages have to come from you — for example from a maps, directory or search scraper that already returns Facebook links.


