Facebook Page Scraper API
Our Facebook page scraper turns a public Page username, numeric id, or URL into structured JSON: the Page name, like and follower counts, the talking-about count, category, profile image, and the about text. It reads the Open Graph tags and embedded page data a Page serves, then breaks the result into a Page row plus labelled about facets.
Getting Facebook Page data is harder than it looks
Facebook serves logged-out datacenter traffic a generic login wall with identical tags for every URL, so a plain request returns no page-specific data. Meta's official Graph API can read a Page you administer, but reading a Page you do not own needs a Page access token you will never be granted, which puts public competitor and creator Pages out of reach.
Hit the Facebook Page Scraper API with one request
curl "https://api.facebookscraperapi.com/api/v1/facebook/page?page=nasa&api_key=$API_KEY" import requests
BASE = "https://api.facebookscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass the Page username (nasa), a numeric id, or a facebook.com/<page> URL.
data = requests.get(
f"{BASE}/api/v1/facebook/page",
params={"page": "nasa", "api_key": API_KEY},
timeout=30,
).json()
# results[0] is the Page itself; the rest are labelled 'about' facets.
page = data["results"][0]
print(page["name"], "-", page["likes"], "likes")
print(page["talking_about_count"], "talking about this")
print(page["tagline"])
print(page["url"]) Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
page | required | - | The public Page username or numeric id (the path segment in facebook.com/ |
url | optional | - | A full facebook.com/ |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
The Facebook Page Scraper API output schema
{
"query": "nasa",
"page": 1,
"results_count": 8,
"total_results": 8,
"results": [
{
"position": 1,
"id": "100044561550831",
"title": "NASA - National Aeronautics and Space Administration",
"url": "https://www.facebook.com/NASA/",
"type": "page",
"page": "nasa",
"page_id": "100044561550831",
"name": "NASA - National Aeronautics and Space Administration",
"description": "NASA - National Aeronautics and Space Administration. 28,663,333 likes \u00b7 103,822 talking about this. Explore the universe and discover our home planet.",
"tagline": "Explore the universe and discover our home planet. There's space for everybody.",
"image": "https://scontent-lga3-3.xx.fbcdn.net/v/t39.30808-1/243095782_416661036495945_3843362260429099279_n.png",
"thumbnail": "https://scontent-lga3-3.xx.fbcdn.net/v/t39.30808-1/243095782_416661036495945_3843362260429099279_n.png",
"category": null,
"likes": 28663333,
"followers": 28663333,
"talking_about_count": 103822,
"is_verified": null
},
{
"position": 6,
"id": "100044561550831:Talking about",
"title": "Talking about: 103822",
"url": "https://www.facebook.com/NASA/",
"type": "about",
"page": "nasa",
"field": "Talking about",
"value": "103822"
}
]
} | Field | Type | Description |
|---|---|---|
query | string | The page username or id the request was made for. |
results_count | integer | Number of rows returned: the Page row plus any about facets. |
results | array | The rows. results[0] is the Page itself; later rows are labelled about facets. |
page_id | string | The Page's numeric id, from the app deep-link or embedded entity. |
name | string | The Page's display name. |
description | string | The raw Open Graph description, which includes the likes and talking-about line before the tagline. |
tagline | string | The human tagline parsed out of the description, with the likes and talking-about prefix removed. |
likes | integer | The Page like count parsed from the public page. On modern Pages this equals the follower count. |
followers | integer | The follower count. Mirrors likes on modern Pages, where the two figures are the same. |
talking_about_count | integer | The people-talking-about-this count for the Page. |
category | string | The Page category when the embedded entity exposes it, or null. |
image | string | URL of the Page's profile image. Also returned as thumbnail. |
is_verified | boolean | Verification flag when the embedded entity exposes it, otherwise null. |
field / value | string | On about rows, the facet label (Name, About, Category, Likes, Talking about, Image, Profile URL) and its value. |
Build with Facebook data
Competitor page tracking
Creator and brand databases
Audience sizing
Engagement monitoring
Lead enrichment
Brand asset capture
Why teams ship on our Facebook Page Scraper API
We force the request onto a US residential exit, the only tier Facebook serves a real Page document to, and parse the likes, talking-about count, and tagline straight out of the Open Graph and embedded page data. You pass a username or URL and get flat JSON back in about 2.6 seconds, with no Page access token and no admin role required.
Username, id, or URL input
Real counts from the live page
Residential routing built in
Login-wall detection
Row plus facets shape
Validated JSON schema
How the Facebook Page Scraper API compares
| Our API | DIY (requests / headless) | Facebook Graph API | |
|---|---|---|---|
| Read a Page you do not own | Yes, any public Page | Possible but you fight the login wall | No, needs a Page access token you administer |
| Setup | API key only | Residential proxies, headless browser, parsers | Meta app, review, and a Page token |
| Exact like and follower counts | Parsed from the live page | Possible but parser breaks often | Available for Pages you administer |
| Anti-bot and proxies | Built in, US residential | You build and maintain it | Not applicable |
| Talking-about count | Returned | You parse it yourself | Via Page Insights, admin only |
| Output | Flat, validated JSON | Whatever you parse | Nested JSON you map yourself |
Pricing built for scale
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
A Facebook page scraper reads a public Page's visible data and returns it in a structured format. Our Facebook page scraper API takes a Page username, numeric id, or URL and returns the name, like count, follower count, talking-about count, category, profile image, and about text as JSON. The Page comes back as results[0] and its about details as labelled facet rows.
Yes, as long as the Page is public. That is the main gap this endpoint fills: the official Graph API only reads Pages you administer with a Page access token, so competitor and creator Pages are out of reach there. Our API reads what a logged-out visitor on a US residential connection can see and returns it as JSON, with no admin role needed.
Yes. We parse the like count and the talking-about count from the live Page that Facebook serves to a US residential exit. On modern Pages the like count and the follower count are the same number, so we return both fields with that value. The talking-about count is Facebook's rolling engagement figure and is returned as talking_about_count.
A Page is a single object, so to keep one consistent shape across the whole API we return the Page as results[0] with all its fields, then expose its about details (name, category, likes, talking-about, image, profile URL) as separate labelled facet rows. You can read everything from results[0] alone, or iterate the facets if you prefer a flat list of fields.
No. You authenticate with a single facebookscraperapi key passed as the api_key query parameter. There is no Meta developer app to register, no app review, and no Page access token to obtain. The free tier includes 1,000 requests so you can test against real Pages first.
Facebook shows datacenter and logged-out egress a generic login wall whose tags are identical for every URL. We route through US residential proxies to get the real page, but if only the wall is served we return a clear diagnostic rather than a fabricated row built from wall metadata. Personal profiles are more gated than Pages; for those, see the profile endpoint.