Skip to content

Facebook Profile API

Name, category, follower and like counts, description, banner and outbound links for a public Facebook Page. followerCount is as precise as Facebook renders it: exact on a small Page ("498 followers"), rounded on a large one ("28M followers", so ±500,000). raw.followerCountIsApproximate says which you got, and raw.likeCount carries the exact like figure Facebook always prints. Pass extra_fetch=true to also fill createdAt, the date the Page was created, which lives only on the Page transparency tab: it costs 1 extra credit and one large additional fetch, refunded if that fetch cannot be read. Calls cost 1 credit each. A cache hit is free, and a failed or empty response is never charged.

Try it

Prefilled with the request that produced the example below. No key yet? Get a free key.

Request

GET/v1/facebook/profile
ParameterTypeRequiredDescription
urlstringyesPage URL, @handle, slug, or numeric page id
extra_fetchbooleannoWhen true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size.

Also accepts cache_max_age (a hit costs 0 credits) and include_raw (returns the untouched upstream payload under raw).

curl
curl "$API/v1/facebook/profile?url=https%3A%2F%2Fwww.facebook.com%2Fnike&cache_max_age=7d" \
  -H "x-api-key: $KEY"
JavaScript
const query = new URLSearchParams({
  url: 'https://www.facebook.com/nike',
  cache_max_age: '7d',
});

const response = await fetch(`${API}/v1/facebook/profile?${query}`, {
  headers: { 'x-api-key': KEY },
});

const body = await response.json();
if (!body.success) throw new Error(body.error.code);

// 1 credit, 0 on a cache hit
console.log(body.data, body.meta.creditsCharged);
Python
import os, httpx

r = httpx.get(
    f"{os.environ['API']}/v1/facebook/profile",
    params={
        "url": "https://www.facebook.com/nike",
        "cache_max_age": "7d",
    },
    headers={"x-api-key": os.environ["KEY"]},
    timeout=30,
)

body = r.json()
if not body["success"]:
    raise RuntimeError(body["error"]["code"])

print(body["data"], body["meta"]["creditsCharged"])

Example response

Captured on , with raw removed and lists cut to two items. A live call returns current data.

response
{
  "success": true,
  "data": {
    "platform": "facebook",
    "id": "100044541544829",
    "handle": "nike",
    "displayName": "Nike",
    "bio": "Just Do It.",
    "avatarUrl": "https://scontent-atl3-2.xx.fbcdn.net/v/t39.30808-1/284964043_10159903868513445_7696353984967674128_n.jpg?stp=dst-jpg_tt6&cstp=mx400x400&ctp=s400x400&_nc_cat=1&ccb=1-7&_nc_sid=3ab345&_nc_ohc=5yj1Ri1YJE4Q7kNvwEipnj4&_nc_oc=Adrd0Fn82HJG6-fGt_RBANLdnkReWlYx7_aXc7XZEEtSiP_sh-K9daElrfSuxBg5m3o&_nc_zt=24&_nc_ht=scontent-atl3-2.xx&_nc_gid=MsG-_vszFAyvM2CQx5q36g&_nc_ss=70289&oh=00_AQOvdZ53R4vJMi10EJjCsIHMD5HBsSTtVuMUee3r4dHdgQ&oe=6ADE05F0",
    "bannerUrl": "https://scontent-atl3-2.xx.fbcdn.net/v/t39.30808-6/285211224_10159903868008445_5477337468887983165_n.png?stp=dst-png&cstp=mx851x315&ctp=s851x315&_nc_cat=102&ccb=1-7&_nc_sid=cc71e4&_nc_ohc=VBb28fvAkekQ7kNvwE0tjwo&_nc_oc=AdrZD2JjtvV45EiDd9dX0frvNS9e2yz908_HIMRgg-oAWljlvw0e02jEDS3dizsHQ7Y&_nc_zt=23&_nc_ht=scontent-atl3-2.xx&_nc_gid=PGFl_M6ux20YduytfGHCBw&_nc_ss=70289&oh=00_AQMf2w8i-bau-2D049EaHXFdS0WgIV5AX6Oty3dM8FULCg&oe=6ADDE7A2",
    "url": "https://www.facebook.com/nike",
    "verified": true,
    "followerCount": 39499684,
    "followingCount": 24,
    "postCount": null,
    "viewCount": null,
    "isPrivate": false,
    "isBusiness": true,
    "category": "Sportswear Store",
    "location": null,
    "externalLinks": [
      "http://nike.com/"
    ],
    "createdAt": null,
    "fetchedAt": "2026-10-21T01:52:09.627Z"
  },
  "meta": {
    "platform": "facebook",
    "endpoint": "facebook.profile",
    "creditsCharged": 1,
    "cached": false,
    "cacheAgeSeconds": null,
    "durationMs": 1846,
    "requestId": "req_qqru2d2tjr41lo9npmpl"
  }
}

Returns

Returns one Creator.

Cost and behaviour

Credits1 per live request, 0 on a cache hit
Cacheableyes: cache_max_age accepts a cached copy
Batchableyes: usable as a target in POST /v1/jobs/batch
Subscribableyes: as often as every 3600 seconds, firing a webhook only on a change

Other Facebook endpoints