~ / endpoints / Profile API

Facebook Profile Scraper API

Our Facebook profile scraper turns a public profile username or URL into structured JSON: the numeric id, the name, the about text, category, and profile image. Public-figure profiles served with an Open Graph block resolve logged-out, so a username like zuck returns a clean object in one request.

Get a free API keyAll Facebook endpoints
1,000
free requests / mo
2.6s
median response
JSON
structured output
US
residential exit

Quickstart

cURL
curl "https://api.facebookscraperapi.com/api/v1/facebook/profile?username=zuck&api_key=$API_KEY"
Python
import requests

BASE = "https://api.facebookscraperapi.com"
API_KEY = "YOUR_API_KEY"

# Pass a username (zuck) or a full facebook.com/<username> URL.
data = requests.get(
    f"{BASE}/api/v1/facebook/profile",
    params={"username": "zuck", "api_key": API_KEY},
    timeout=30,
).json()

print(data["id"], data["name"])
print(data["about"])
print(data["profile_image"])
print("source:", data["data_source"])

Response

200 OK
{
  "id": "4",
  "username": "zuck",
  "url": "https://www.facebook.com/zuck/",
  "name": "Mark Zuckerberg",
  "category": null,
  "about": "Mark Zuckerberg. 121,483,067 likes \u00b7 1,883,118 talking about this. Bringing the world closer together.",
  "profile_image": "https://scontent.fdac11-1.fna.fbcdn.net/v/t39.30808-1/632598281_10117314650513371_3238643608998008744_n.jpg",
  "thumbnail": "https://scontent.fdac11-1.fna.fbcdn.net/v/t39.30808-1/632598281_10117314650513371_3238643608998008744_n.jpg",
  "is_verified": null,
  "source": "facebook",
  "data_source": "opengraph"
}
FieldTypeDescription
idstringThe profile's numeric id, from the embedded entity or the app deep-link. For zuck this is 4.
usernamestringThe profile vanity resolved from the input or the canonical URL.
urlstringThe canonical profile URL.
namestringThe profile's display name.
categorystringThe category for public-figure or business profiles when exposed, otherwise null.
aboutstringThe about or description text from the Open Graph block. For public figures it includes the likes and talking-about line.
profile_imagestringURL of the profile picture. Also returned as thumbnail.
is_verifiedbooleanVerification flag when the embedded entity exposes it, otherwise null.

Why it is hard

Personal Facebook profiles are the most gated surface on the site: logged out, most return a bare app shell with no data, and the official Graph API cannot read a person's profile without that person's own login and granted permission. Public-figure and business profiles are the exception, because they still ship an Open Graph block a logged-out visitor can read.

Use it for

>

Public-figure enrichment

Resolve public-figure and business profile usernames into id, name, about text, and profile image for a clean contact or creator record.
>

Identity resolution

Turn a Facebook profile URL into a stable numeric id and canonical URL, so you can key records on the id even when a vanity changes.
>

Profile image capture

Pull the profile_image URL to display or archive a public figure's current avatar alongside your own data.
>

Creator catalogs

Build a searchable list of public-figure profiles with name, category, and about text pulled from the pages that render logged-out.

How it compares

Our APIDIY (requests / headless)Facebook Graph API
Read a public-figure profile logged-outYes, when the og block rendersPossible but you fight the shell and wallNo, needs the person's own login and consent
SetupAPI key onlyResidential proxies, headless browser, parsersMeta app plus user-granted permissions
Numeric id resolutionReturnedYou parse it yourselfAvailable with granted permission
Anti-bot and proxiesBuilt in, US residentialYou build and maintain itNot applicable
Personal profilesHonest diagnostic when walledUsually a bare shellOnly with that user's consent
OutputFlat, validated JSONWhatever you parseNested JSON you map yourself

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

What is a Facebook profile scraper?

A Facebook profile scraper reads a public profile's visible data and returns it in a structured format. Our Facebook profile scraper API takes a username or profile URL and returns the numeric id, name, about text, category, and profile image as JSON. It works best on public-figure and business profiles, which ship an Open Graph block a logged-out visitor can read.

Can I scrape any Facebook profile?

Public-figure and business profiles that render an Open Graph block logged-out, like zuck, resolve cleanly. Personal profiles are the most gated surface on Facebook: logged out they usually return a bare app shell with no data, so the endpoint reports a clear diagnostic rather than inventing fields. We never fabricate a profile from a wall. For public-figure Pages specifically, the page endpoint returns richer counts.

What is the difference between the profile and page endpoints?

The profile endpoint returns a single profile object (id, name, about, category, image) and is scoped to profiles at facebook.com/. The page endpoint targets Pages and additionally returns like, follower, and talking-about counts, decomposed into a Page row plus about facets. For a public figure that runs a Page, the page endpoint gives you the engagement numbers; the profile endpoint gives you the compact identity object.

Do I need a Facebook API key or granted permission?

No. You authenticate with a single facebookscraperapi key. The official Graph API cannot read a person's profile without that person logging in and granting your app permission, which is not workable for third-party data. Our endpoint reads the public Open Graph data a logged-out visitor sees on profiles that expose it, with no app review or consent flow.

How is the numeric profile id resolved?

We take it from the embedded page entity when present, and otherwise parse it from the app deep-link tags (the fb:// URL in the al:android:url or al:ios:url meta). That is how the sample resolves zuck to id 4. The numeric id is stable even when a profile changes its vanity username, so it is the safer key for your records.

How fast is the Facebook profile scraper API?

Median end-to-end response is about 2.6 seconds, including US residential routing, anti-bot handling, and parsing. You are billed only for successful requests, and the free tier includes 1,000 requests so you can test which profiles resolve before paying.

Get profile api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints