Facebook Posts API: public page posts, reels and photos as JSON

You can read public Facebook page data with a few REST calls: a single post or reel by URL, the recent posts, photos and reels of a page, page details such as category, website and contact fields, or a keyword video search. Every call returns JSON and is billed per successful request. You do not need a Facebook app, a Graph API token or a page admin role.

Buy credits

Use cases

Endpoints and cost

EndpointWhat it returnsCredits/callUSD/call (Freelance plan)
/v1/facebook/postPost1$0.0017
/v1/facebook/post_captionsTranscript1$0.0017
/v1/facebook/user_postsProfile Posts1$0.0017
/v1/facebook/user_photosProfile Photos1$0.0017
/v1/facebook/user_reelsProfile Reels1$0.0017
/v1/facebook/search_videosSearch Videos1$0.0017
/v1/facebook/userProfile1$0.0017

Endpoint details

/v1/facebook/post

Post 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringyesThe URL of the post to get
allow_long_transcriptionbooleannoPaid opt-in, enabled only by the literal query value 'true' (allow_long_transcription=true). Defaults to false when omitted; other values do not enable paid mod
get_transcriptbooleannoTranscription is opt-in via get_transcript=true. Default short AI (up to 120 seconds, inclusive) is included in the existing base endpoint price, with no extra
cache_max_agestringnoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp).

Sample response (trimmed):

{
 "post_id": "25118307061088489",
 "shared_post_id": null,
 "shared_post_url": null,
 "is_paid_partnership": null,
 "like_count": 2095,
 "comment_count": 48,
 "share_count": 133,
 "view_count": 133000,
 "description": "Air Fryer Chocolate Cake \n\n100% f*cks, super simple and comes out gooey in the middle. 🍆 \n\n👨‍🍳 Ingredients:\n✅ 1 large banana – 100 g (3.5 oz)\n✅ 80 g vanilla ...",
 "creation_time": "2025-09-18T06:30:18.000Z",
 "feedback_id": "ZmVlZGJhY2s6MjUxMDIxMDY3OTkzNzUxODI=",
 "url": "https://www.facebook.com/reel/1535656380759655",
 "image_url": null,
 "video": {
  "id": "1535656380759655",
  "sd_url": "https://video-fml1-1.xx.fbcdn.net/o1/v/t2/f2/m69/AQPmP0-_mHv5cFqZShaBXjVeIgFmk-_1-6fll0qvoiw3O_StvDRD1FPZafKE0Mri9p94smEKiXpdPjrMnIk2qesQ.mp4?strext=1&_nc_ca...",
  "hd_url": "https://video-fml1-1.xx.fbcdn.net/o1/v/t2/f2/m69/AQPvY-B_jtS_HwdB--AaOLTiMpw_euZ4QZoJbbh4iBl-faYyL6mYoumXJPqDF8qAnvZk8_SN5QOUds3tDfP0Bfa0.mp4?strext=1&_nc_ca...",
  "height": 1920,
  "width": 1080,
  "length_in_second": 23.36,
  "thumbnail": "https://scontent-fml1-1.xx.fbcdn.net/v/t51.82787-10/549761436_18521992156021539_7633323777597918486_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=103&ccb=1-7&_nc_si...",
  "captions_url": "https://scontent-fml1-1.xx.fbcdn.net/v/t39.2093-6/548496336_1535656704092956_4849526113470105591_n.srt?_nc_cat=105&ccb=1-7&_nc_sid=c211c2&_nc_ohc=IiEVsW2fSK0..."
 },
 "author": 

/v1/facebook/post_captions

Transcript 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringyesFacebook post URL
allow_long_transcriptionbooleannoPaid opt-in, enabled only by the literal query value 'true' (allow_long_transcription=true). Defaults to false when omitted; other values do not enable paid mod
cache_max_agestringnoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp).

/v1/facebook/user_posts

Profile Posts 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringnoFacebook profile URL
page_idstringnoFacebook profile page id
next_cursorstringnoTo paginate through the posts

/v1/facebook/user_photos

Profile Photos 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringyesFacebook page URL
next_page_idstringnoTo paginate through to the next page
next_cursorstringnoTo paginate through to the next page

/v1/facebook/user_reels

Profile Reels 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringyesFacebook page URL
next_page_idstringnoTo paginate through to the next page
next_cursorstringnoTo paginate through to the next page

/v1/facebook/search_videos

Search Videos 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
querystringyesThe keyword or phrase to search for
next_cursorstringnoThe opaque cursor returned by the previous response. Keep the query unchanged when paginating. Stop when cursor is null or has_more is false.

/v1/facebook/user

Profile 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringyesFacebook profile URL
get_business_hoursstringnoGet the business's hours
include_gated_profilestringnoWhen true, returns limited public fields for gated or age-restricted profiles. Ignored for normal public profiles — those still return the full response.
cache_max_agestringnoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp).

Example: curl

curl -H "X-Scapi-Key: $SCAPI_KEY" "https://api.scrapall.bipsport.com/scapi/v1/facebook/post"

Example: Python

import os, requests
r = requests.get("https://api.scrapall.bipsport.com/scapi/v1/facebook/post",
    headers={"X-Scapi-Key": os.environ["SCAPI_KEY"]})
print(r.json())

FAQ

Can I get Facebook page posts without the Graph API?

Yes. The profile posts endpoint takes a page URL or page_id and returns publicly visible posts as JSON. You only need a Scrapall API key, not a Facebook app or a page access token.

How many posts come back per request?

Profile posts are returned 3 per page and you continue with next_cursor. Reels come back up to 10 per request, and photos are paginated with a cursor as well.

Can I get one post or reel by URL?

Yes. The post endpoint takes the public post or reel URL and returns its data. You can ask it to include the transcript with get_transcript, or use the separate transcript endpoint for video posts and reels.

What page details are available?

The profile endpoint returns public page details such as category, address, email, phone, website and services when the page shows them. Business hours can be requested with get_business_hours.

How is it billed?

Each successful call is billed from your credit balance. The exact cost per endpoint is shown in the cost table on this page and comes from the live price list.

How do I pay and get my API key?

Open the Buy page, pick the Freelance plan and pay in USDT on TRC20 or ERC20. The key is shown once, right after the payment is confirmed on-chain.

How many credits does one call use?

The cost table on this page lists credits per call for each endpoint. The Freelance plan is $45 for 27,000 credits per 30 days.

Get an API key and credits

Full reference: all facebook endpoints.