Facebook Profile Photos API
Changed onPhoto grid from a Facebook Page — full image URL plus accessibilityCaption (alt-text, not a post caption).
Pass a Facebook Page URL or @handle and get photos from the public /photos grid as clean JSON: id, url, image (full-size CDN), width/height (always keyed; null when Facebook omits them), and accessibilityCaption — Facebook's image alt-text, not a user-written post caption. Publish time and likes/comments are usually absent on this surface (platform limit, not a Captapi gap). Facebook does not expose a separate thumbnail on this grid — image is the delivered CDN URL. limit (default 20, max 200) is your cap; the /photos SSR grid is a single batch (often ~8). Every 200 includes limit, totalReturned, retrievableCount (unique Photo nodes in this batch), hasMore, and nextCursor (always null — a missing cursor key is a bug; null is the end). hasMore is always false (the grid has no cursor). truncatedReason=limit when the batch held more photos than limit — raise limit to get them; truncatedReason=photos-grid-batch when the grid bound you — not "the Page only has 8" and not "limit was ignored." Each photo carries mediaUrlsExpireAt for its signed image URL. Flat 2 credits. Pass cache=true for the 24h shared cache.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/facebook/profile-photos
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Facebook profile/page URL, @handle, or page name. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
Max items to return (default 20, max 200). The public /photos grid is a single SSR batch (often ~8) — retrievableCount is that batch, not a promise Facebook will fill limit. Flat 2 credits per call.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
- info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
///to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status
- info