Facebook Pages Scraper - Page Name and Likes
Pricing
from $0.10 / 1,000 facebook pages
Facebook Pages Scraper - Page Name and Likes
Scrape public Facebook Pages, up to ten a run. One row per Page: name, handle, canonical link, the public description, the like or follower count, the talking-about count, the verified badge and the picture. No login needed. $0.004 per run plus $0.10 per 1,000 Pages.
Pricing
from $0.10 / 1,000 facebook pages
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
3
Monthly active users
3 days ago
Last modified
Categories
Share
Give it up to ten Facebook Page links and get each Page's public profile in one row: the name, the handle, the canonical link, the public description, the like or follower count, the talking-about count, the verified badge and the Page picture.
It is deliberately small. Ten Pages per run, one row each, nothing about posts or reviews, and a run fee on top of the per-Page price. If you want what a Page has been posting, the siblings in the table further down do that instead.
| Input | Up to 10 public Page links, in the https://www.facebook.com/<handle> form |
| Output | One row per Page: name, handle, link, description, like or follower count, talking-about count, verified badge, picture |
| Ceiling | 10 Pages per run |
| Account needed | None |
| Price | $0.10 per 1,000 Pages, plus $0.004 for each run with a valid link on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 8,000 Pages, read ten to a run |
🔍 What Facebook Pages Scraper does
It reads the public description Facebook publishes for a Page and turns it into typed fields. The
counts in that line are pulled out as numbers, so 28,723,157 followers arrives as 28723157
rather than as text you have to clean.
Give it the full link, https://www.facebook.com/NASA. That handle form is the only one it reads.
A link without https:// is refused with a BAD_INPUT row. A profile.php?id= or /p/ link is
worse: only the first part of the path is used, so it reads the wrong page and the run fee still
applies.
Links after the tenth in one run are ignored rather than queued, so keep each run to ten and split a longer list across runs.
📋 What data you get from each Facebook Page
| What you get | Field |
|---|---|
| The Page's name and handle | name, handle |
| Facebook's link for it, and the one you gave | pageUrl, requestedUrl |
| The public description line | description |
| The like or follower count, and the talking-about count | likesCount, talkingAboutCount |
| The verified badge | isVerified |
| The Page picture and its alt text | imageUrl, imageAlt |
▶️ How to scrape Facebook Pages
- Open Facebook Pages Scraper and click Try for free.
- Paste your Pages into Public Facebook Page URLs, one per line, up to ten.
- Click Start.
- Download the dataset as JSON, CSV or Excel, or pull it from the Apify API.
Run it with empty input and you get one labelled sample row, which is not charged, so you can see the shape before you spend anything.
💰 How much does it cost to scrape Facebook Pages?
$0.10 per 1,000 Pages, plus $0.004 for each run that accepts at least one valid Page link on the Free plan. Paid plans pay a little less on both prices. On the free plan, the $5 Apify gives you each month covers about 8,000 Pages if every run reads ten.
Said plainly: the run fee applies once a run has a valid link to work with, whether or not Facebook serves the Page. Sample rows and diagnostic rows are never charged, and a run with nothing but unusable links carries no run fee either.
Because of the ten-Page cap, the run fee is the larger part of a small run. That is worth knowing before you schedule this hourly on two Pages.
📥 What you give it
{"pageUrls": ["https://www.facebook.com/NASA"]}
| Field | Default | What it is |
|---|---|---|
pageUrls | [] | Public Page links, one per line, in the https://www.facebook.com/<handle> form. Up to 10 per run. |
proxyConfiguration | empty | Leave it empty, or add servers of your own. |
📤 What you get back
A real row from a run on 3 October 2026, with the description and the picture link cut short. Two
fixed labels, source and transport, are left out; they are the same on every real row.
{"ok": true,"recordType": "page","name": "NASA - National Aeronautics and Space Administration","handle": "NASA","pageUrl": "https://www.facebook.com/NASA/","description": "NASA - National Aeronautics and Space Administration. 28,723,157 followers · 97,759 talking about this. Explore the universe and discover our home planet. ...","likesCount": 28723157,"talkingAboutCount": 97759,"imageUrl": "https://lookaside.fbsbx.com/...","imageAlt": "NASA - National Aeronautics and Space Administration","category": null,"isVerified": true,"requestedUrl": "https://www.facebook.com/NASA/"}
| Field | How to read it |
|---|---|
name, handle | The Page's display name and its handle. The handle is the stable key. |
pageUrl, requestedUrl | Facebook's canonical link for the Page, and the link you asked for, so rows join back onto your list. |
description | The public description line, with the counts in their original wording. |
likesCount | The count from that line: likes where the Page publishes likes, followers where it publishes followers instead, as NASA does now. description tells you which. null when there is neither. |
talkingAboutCount | The talking-about count as a number. null when the Page does not publish it. |
imageUrl, imageAlt | The Page picture and its alt text. |
isVerified | true on a verified Page. On everything else it is null, not false, so test for truthiness rather than for false. |
category | Always null. Facebook stopped publishing it here, and an empty field is better than a guess. |
source, transport | Fixed labels, the same on every real row. |
🧾 Reading the output
Three kinds of row can land in your dataset, and this actor marks them differently from its
siblings: no row carries a charged flag.
| Row | How to spot it | Billed |
|---|---|---|
| A Page | ok: true and recordType: "page" | yes |
| The sample row | _sample: true with a _notice | no |
| A diagnostic | ok: false, _uncharged: true and a code | no |
Filter on recordType == "page" and you have your data. The sample row says "page" too, but it
only ever appears on a run with empty input, on its own.
code | What happened |
|---|---|
BAD_INPUT | That link could not be read as a Page link. |
NOT_FOUND | No public Page at that link. |
NO_RESULTS | The Page came back with no public description to read. |
NOT_SERVED | This request was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED. |
RATE_LIMITED | Facebook asked for a slower pace. Re-run. |
TARGET_ERROR | Facebook answered with something the run could not read. |
NETWORK | Facebook could not be reached. |
TIME_LIMIT | The run got close to its time limit and stopped on its own. The Pages delivered before that are complete and charged. Give the run more time, or send fewer Pages. The run ends as failed only when this stopped it before any Page came back. |
If you set a maximum cost on the run, it stops there, and the run's status message says how many Pages were delivered.
💡 What people use it for
- Checking the follower size of a shortlist of Pages before deciding who to approach.
- Snapshotting the counts on a schedule to watch which Pages are growing.
- Confirming a Page is the verified one before adding it to a campaign brief.
- Filling in the name, handle and picture for Pages you only have links for.
From a shortlist to what the busiest Pages are posting, in three steps:
- Run this on up to ten Pages.
- Sort on
talkingAboutCountand copy thepageUrlof the Pages worth a closer look. - Paste them into Facebook Posts Scraper as
startUrlsfor their recent posts.
🚧 What it does not do
- Ten Pages per run. Links beyond the tenth are ignored, not queued.
- No posts, reviews, events or contact details. This is the Page's own public profile and nothing else. The siblings below cover the rest.
- Likes and followers share one field.
likesCountholds whichever the Page publishes. categoryis always empty. Facebook does not publish it on this surface.- Only the plain handle link form works.
profile.php?id=,/p/links and links withouthttps://are not resolved. isVerifiedistrueornull, neverfalse. An unverified Page simply has no badge to report.- Counts are a snapshot at read time, and Facebook publishes them rounded on some Pages.
- Public Pages only. Personal profiles, groups and anything behind a login are out of scope.
- It is not an official Facebook tool. Dami's Studio is independent and is not affiliated with or endorsed by Facebook or Meta, or by any other company named on this page.
🧭 Which Facebook scraper do you need?
| If you want | Use |
|---|---|
| A Page's name, handle, likes and badge, ten at a time | This one |
| Its website, e-mail, phone and address, 200 Pages a run | Facebook Page Contact Info Scraper |
| What it has been posting | Facebook Posts Scraper |
| Its reels | Facebook Reels Scraper |
| The reviews and recommendations on it | Facebook Reviews Scraper |
| The comments under one of its posts | Facebook Comments Scraper |
| The ads it is running | Meta Ad Library Scraper |
❓ Questions people ask
Do I need a Facebook account to scrape a Page?
No. You need no Facebook account of your own.
Why only ten Pages a run?
That is the cap this actor is built around. For a long list, run it in batches.
Why is likesCount a follower count on some Pages?
Because that Page publishes followers rather than likes, and the field holds whichever it shows.
description keeps the original wording. null means the Page publishes neither; nothing here
estimates one.
Why did a profile.php link return the wrong Page?
Only the handle form is read. Open the Page in a browser and copy the address bar once it settles
on facebook.com/<handle>.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has ready-made
code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/facebook-pages-scraper. Either way the
run happens on your Apify account at the same price.
Is scraping Facebook legal?
This reads public Page information only. Results can still contain personal data, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Paste the Page link you used and the run ID, and the log is enough for us to see what happened.


