Facebook

12 endpoints.

GET /v1/facebook/group

Facebook Group Info

Fetches the public information shown on a Facebook group's About page, including its description, privacy and visibility, member and activity counts, categories, administrators and moderators when Facebook exposes them, group history, and rules. Provide either url or group_id.

Parameters

NameInTypeDescription
urlquerystringThe Facebook group URL. Group sub-page URLs such as /about work too.
group_idquerystringThe numeric Facebook group ID. Provide this instead of url if you already have it.

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/group" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/group", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/group",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "id": "366190054572553",
  "url": "https://www.facebook.com/groups/366190054572553",
  "name": "Python Programming",
  "description": "Let's share our knowledge on Python Programming",
  "privacy": {
    "label": "Public",
    "description": "Anyone can see who's in the group and what they post."
  },
  "visibility": {
    "label": "Visible",
    "description": "Anyone can find this group."
  },
  "categories": [
    {
      "id": "242504017103922",
      "name": "Software & tech"
    }
  ],
  "created_at": "2020-10-14T15:45:03.000Z",
  "history_summary": "Group created on October 14, 2020. Name last changed on October 16, 2020.",
  "member_count": 710386,
  "member_count_text": "710,386 total members",
  "administrator_count": 3,
  "moderator_count": 0,
  "administrators": [
    {
      "id": "pfbid029b9bjf9rZfL4v9EHdxt1uxng857G4UqwpZjbCHySg88UYWu2XL5ivSixWhXBnZMnl",
      "name": "Nusrat Jahan",
      "url": "https://www.facebook.com/people/Nusrat-Jahan/pfbid029b9bjf9rZfL4v9EHdxt1uxng857G4UqwpZjbCHySg88UYWu2XL5ivSixWhXBnZMnl/",
      "profile_picture_url": "https://scontent.xx.fbcdn.net/example.jpg"
    }
  ],
  "moderators": [],
  "activity": {
    "posts_last_day": 16,
    "posts_last_month": 512,
    "new_members_text": "No new members in the last week"
  },
  "rules": [
    {
      "id": "366191957905696",
      "title": "Be Kind and Courteous",
      "description": "We're all in this together to create a welcoming environment. Let's treat everyone with respect."
    }
  ],
  "about_info": [
    {
      "type": "XFBPrivacyGroupsAboutInfoItem",
      "label": "Public",
      "description": "Anyone can see who's in the group and what they post."
    }
  ]
}

GET /v1/facebook/group_posts

Facebook Group Posts

Fetches posts from a public Facebook group, limited to 3 posts per page due to API limitations. Each post includes id, text, url, reactionCount, commentCount, publishTime, videoDetails, and topComments. Results are chronological by default. Supports TOP_POSTS, RECENT_ACTIVITY, CHRONOLOGICAL, and CHRONOLOGICAL_LISTINGS with cursor-based pagination. posts[].is_paid_partnership is a nullable boolean: true when Facebook supplies a paid-partnership label or an explicit paid branded-content relationship; null when unknown or no disclosure is supplied. It currently never returns false: a missing disclosure does not establish that a post has no sponsorship. shared_post_id and shared_post_url identify the immediate post being shared when Facebook exposes it; both are nullable strings and are null when the reference is unavailable. Null does not prove the post is not a share. Existing id, post_id, and url values remain unchanged. The original is not automatically fetched, and these fields add no additional upstream requests. Call /v1/facebook/post with shared_post_url separately to retrieve the original's available media.

Parameters

NameInTypeDescription
urlquerystringThe URL of the group
group_idquerystringThe ID of the group
sort_byquerystringHow to sort the posts. Defaults to CHRONOLOGICAL.
one of: TOP_POSTS, RECENT_ACTIVITY, CHRONOLOGICAL, CHRONOLOGICAL_LISTINGS
next_cursorquerystringThe cursor to paginate to the next page

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/group_posts" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/group_posts", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/group_posts",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "posts": [
    {
      "id": "1286289372828481",
      "shared_post_id": null,
      "shared_post_url": null,
      "is_paid_partnership": null,
      "text": null,
      "url": "https://www.facebook.com/groups/742354120555345/permalink/1286289372828481/",
      "permalink": "https://www.facebook.com/sofiyati.942655/videos/996458202287759/?idorvanity=742354120555345",
      "author": {
        "typename": "User",
        "name": "Sofiyati",
        "short_name": "Sofiyati",
        "id": "61552766652796"
      },
      "reaction_count": 198,
      "comment_count": 100,
      "video_view_count": null,
      "publish_time": 1748639389,
      "video_details": {
        "sd_url": "https://video-sea1-1.xx.fbcdn.net/o1/v/t2/f2/m69/AQO0_B24bEmILx4bmOfr_cQA5BgXwF9DMHJYAkUfQJAmuMGLV9PAc9-TrNen27lHJjr45pVm0ufFCcTJBCeFIr_s.mp4?strext=1&_nc_ca...",
        "hd_url": "https://video-sea1-1.xx.fbcdn.net/o1/v/t2/f2/m69/AQM3UoTI5n6N2jVgKeUXSMPnqwAEQFHNGM9dejk3EV-MyBXNUcHlWtvYgUU2cD672EkWw5UAYZ3jJLXQiFdOvQh7.mp4?strext=1&_nc_ca...",
        "thumbnail_url": "https://scontent-sea1-1.xx.fbcdn.net/v/t15.5256-10/502130835_1399930867890626_4491393707187246303_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=100&ccb=1-7&_nc_sid=..."
      },
      "top_comments": [
        {
          "id": "Y29tbWVudDoxMjg2Mjg5MzcyODI4NDgxXzEyODY1MTY1MjYxMzkwOTk=",
          "text": "I can find thousands of videos with the same exact trend. And we all know what I’m referring to 🤭",
          "publish_time": 1748666375,
          "author": {
            "id": "pfbid0haqAQZCvs4cTVyfGwxCGPidvLYRNhFiboXkCH45LmPLAF1oQ7kJxaVig19KT8nZvl",
            "name": "Trent Slushy",
            "gender": "MALE",
            "url": null
          }
        }
      ]
    }
  ],
  "next_cursor": "AQHRBjJCelNvdGRjH8s2j-...."
}

GET /v1/facebook/post

Post

Retrieves a single public Facebook post or reel by URL. Use one request per reel, passing its returned /reel/ URL from /v1/facebook/profile/reels, to retrieve available like_count, reaction_counts, comment_count, share_count, and a more precise view_count when Facebook exposes it. This endpoint accepts a single URL, not a batch; exact views are not guaranteed. Returns post_id, like_count, comment_count, share_count, view_count, description, creation_time, and author details, including the author handle when Facebook exposes a vanity profile URL. For some reels, Facebook does not expose the same view count on the individual post page that it shows on the profile Reels grid. This value can be null or lower than the public Reels badge. If you need the public Reel badge count, call /v1/facebook/profile/reels with the author URL and match the reel by post_id. For video posts, includes video sd_url, hd_url, thumbnail, and length_in_second. Optionally fetches comments and transcript via get_comments and get_transcript parameters. is_paid_partnership is a nullable boolean: true when Facebook supplies a paid-partnership label or an explicit paid branded-content relationship; null when unknown or no disclosure is supplied. It currently never returns false: a missing disclosure does not establish that a post has no sponsorship. shared_post_id and shared_post_url identify the immediate post being shared when Facebook exposes it; both are nullable strings and are null when the reference is unavailable. Null does not prove the post is not a share. Existing id, post_id, and url values remain unchanged. The original is not automatically fetched, and these fields add no additional upstream requests. Call /v1/facebook/post with shared_post_url separately to retrieve the original's available media. Transcription 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 AI fee. By default, successful AI transcription of videos up to 120 seconds (two minutes, inclusive) costs a flat 1 credit per request. Over 120 seconds, videos cannot be AI-transcribed by default. Set allow_long_transcription=true to opt into paid AI with no fixed duration cap: ALL successful AI transcriptions in this mode cost 10 credits per started minute, including short videos: 10 * ceil(duration_seconds / 60). For example, 177 seconds costs 30 credits and an opted-in 60 seconds costs 10 credits. Empty AI results and errors cost 0 credits for AI transcription. On detail routes, successful paid-mode AI costs are in addition to the existing base endpoint cost; media-download pricing is unchanged. Returned native captions leave the base endpoint price unchanged. Empty AI results and errors incur no AI fee; the base scrape fee still applies when the detail scrape succeeds. These routes remain synchronous. Allow at least 30 seconds on your client. Paid long transcription can exceed resource limits or timeouts, so successful transcription of long videos is not guaranteed.

Parameters

NameInTypeDescription
url requiredquerystringThe URL of the post to get
allow_long_transcriptionquerybooleanPaid 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 mode. By default, successful AI transcription of videos up to 120 seconds (two minutes, inclusive) costs a flat 1 credit per request. Over 120 seconds, videos cannot be AI-transcribed by default. Set allow_long_transcription=true to opt into paid AI with no fixed duration cap: ALL successful AI transcriptions in this mode cost 10 credits per started minute, including short videos: 10 * ceil(duration_seconds / 60). For example, 177 seconds costs 30 credits and an opted-in 60 seconds costs 10 credits. Empty AI results and errors cost 0 credits for AI transcription. This flag does not force AI and does not enable transcription or AI fallback by itself. Keep get_transcript=true or use_ai_as_fallback=true where required by the endpoint. Returned native captions still cost 1 credit on dedicated transcript routes, even for long videos with this flag; on detail routes they leave the base price unchanged. These routes remain synchronous. Allow at least 30 seconds on your client. Paid long transcription can exceed resource limits or timeouts, so successful transcription of long videos is not guaranteed.
get_transcriptquerybooleanTranscription 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 AI fee. By default, successful AI transcription of videos up to 120 seconds (two minutes, inclusive) costs a flat 1 credit per request. Over 120 seconds, videos cannot be AI-transcribed by default. Set allow_long_transcription=true to opt into paid AI with no fixed duration cap: ALL successful AI transcriptions in this mode cost 10 credits per started minute, including short videos: 10 * ceil(duration_seconds / 60). For example, 177 seconds costs 30 credits and an opted-in 60 seconds costs 10 credits. Empty AI results and errors cost 0 credits for AI transcription. On detail routes, successful paid-mode AI costs are in addition to the existing base endpoint cost; media-download pricing is unchanged. Returned native captions leave the base endpoint price unchanged. Empty AI results and errors incur no AI fee; the base scrape fee still applies when the detail scrape succeeds. These routes remain synchronous. Allow at least 30 seconds on your client. Paid long transcription can exceed resource limits or timeouts, so successful transcription of long videos is not guaranteed.
cache_max_agequerystringIf 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). Otherwise, scrape a live result (1 credit; default short AI is included; allow_long_transcription=true adds 10 credits per started minute to the existing base cost). See the Caching page for details.
one of: 1d, 3d, 7d, 14d, 30d

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/post?url=https://www.facebook.com/reel/1535656380759655" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/post?url=https://www.facebook.com/reel/1535656380759655", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/post?url=https://www.facebook.com/reel/1535656380759655",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "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": {
    "id": "100000076236457",
    "name": "Matt West",
    "handle": "matt.west.184",
    "is_verified": true,
    "url": "https://www.facebook.com/matt.west.184",
    "image": "https://scontent-fml1-1.xx.fbcdn.net/v/t39.30808-1/485744182_9938984382780671_4072259528431711152_n.jpg?stp=cp0_dst-jpg_s40x40_tt6&_nc_cat=1&ccb=1-7&_nc_sid=..."
  },
  "music": {
    "id": "1506592770696336",
    "type": "CUSTOM_AUDIO",
    "track_title": "Matt West · Original audio",
    "music_album_art": "https://scontent-fml1-1.xx.fbcdn.net/v/t39.30808-1/485744182_9938984382780671_4072259528431711152_n.jpg?stp=cp0_dst-jpg_s64x64_tt6&_nc_cat=1&ccb=1-7&_nc_sid=..."
  }
}

GET /v1/facebook/post_comment_replies

Comment Replies

Get the replies to a comment with cursor-based pagination. Each reply includes an attachments array for image, GIF, video and sticker media that Facebook returns, with type, id, url, preview_url, width and height. Text-only replies have an empty attachments array. Missing attachment values are null, and media URLs can expire.

Parameters

NameInTypeDescription
feedback_id requiredquerystringThe *feedback_id* of the comment. Be careful, this is not the comment id. You can get the feedback_id from the /v1/facebook/post/comments endpoint.
expansion_token requiredquerystringThe expansion_token of the comment. You can get the expansion_token from the /v1/facebook/post/comments endpoint.
next_cursorquerystringThe cursor to paginate to the next page

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/post_comment_replies?feedback_id=ZmVlZGJhY2s6MzM3MzYxMzI5OTQ4Nzc1NV8xOTI5NTk0OTE3Njg3MTcz&expansion_token=MjoxNzc4NjM1MDM3OgF_JaMa3kMP9RIWC...." \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/post_comment_replies?feedback_id=ZmVlZGJhY2s6MzM3MzYxMzI5OTQ4Nzc1NV8xOTI5NTk0OTE3Njg3MTcz&expansion_token=MjoxNzc4NjM1MDM3OgF_JaMa3kMP9RIWC....", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/post_comment_replies?feedback_id=ZmVlZGJhY2s6MzM3MzYxMzI5OTQ4Nzc1NV8xOTI5NTk0OTE3Njg3MTcz&expansion_token=MjoxNzc4NjM1MDM3OgF_JaMa3kMP9RIWC....",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "replies": [
    {
      "id": "Y29tbWVudDozMzczNjEzMjk5NDg3NzU1XzEyNzc0OTgwMjczODU4MzQ=",
      "text": "Terry Quillan you must never had my famous sea turtle stew before",
      "created_at": "2026-05-11T01:07:09.000Z",
      "reply_count": 17,
      "reaction_count": 95,
      "reactions": {
        "thankful": 0,
        "like": 55,
        "love": 3,
        "care": 0,
        "haha": 35,
        "wow": 0,
        "sad": 1,
        "anger": 1,
        "pride": 0,
        "confused": 0
      },
      "author": {
        "id": "pfbid0urrhNfcV4eymBCwKXEk6tiCcCqEMFwkb9djy8EhnN9kipDcuhUzKLkN8qB8pt2gQl",
        "name": "Raymond Hall",
        "gender": "MALE",
        "profile_picture": "https://scontent-lax3-1.xx.fbcdn.net/v/t39.30808-1/519542238_10229874106618644_5856796376173922928_n.jpg?stp=cp0_dst-jpg_s64x64_tt6&_nc_cat=104&ccb=1-7&_nc_s..."
      },
      "feedback_id": "ZmVlZGJhY2s6MzM3MzYxMzI5OTQ4Nzc1NV8xMjc3NDk4MDI3Mzg1ODM0",
      "expansion_token": "MjoxNzc4NjM1MTIyOgF_1OrfwDkyxtMMlHVBMm_TzxlQ3yIAasPCWiOEh3uS5u2PAKQRSyqegVe-MsCSe1vnidBZ956FCNcsZjt-j0A69PCfGlR9brDaJDC-5J8nzZ7KF82vHzG3pFWQ5_1NzSXSkt9iwXJdr..."
    }
  ],
  "next_cursor": "MToxNzc4NjM1MTIyOgF_w6rc3oH0....",
  "has_next_page": true
}

GET /v1/facebook/post_comments

Comments

Fetches comments from a Facebook post or reel with cursor-based pagination. Each comment includes id, text, created_at, reply_count, reaction_count, and author details with name and profile_picture. The attachments array contains image, GIF, video and sticker media when Facebook returns them, with type, id, url, preview_url, width and height. Text-only comments have an empty attachments array. Missing attachment values are null, and media URLs can expire. Passing a feedback_id instead of a url significantly speeds up the request.

Parameters

NameInTypeDescription
urlquerystringFacebook post URL (or reel URL)
feedback_idquerystringUsing feedback_id (instead of url) will *really* speed up the request. You can get the feedback_id when you make a request to /v1/facebook/post.
next_cursorquerystringCursor to get more comments. Get 'cursor' from previous response.

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/post_comments" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/post_comments", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/post_comments",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "comments": [
    {
      "id": "Y29tbWVudDoxMjA2OTAzNjAxNDgzOTYwXzc3OTIzNDI4MTE0NjkzNQ==",
      "text": "Do 1/2 mini Oreos and 1/2 peanut butter ritz Bitz, otherwise the same recipe. It’s the BEST",
      "created_at": "2025-09-01T01:10:40.000Z",
      "reply_count": 1,
      "reaction_count": 95,
      "reactions": {
        "thankful": 0,
        "like": 79,
        "love": 4,
        "care": 0,
        "haha": 1,
        "wow": 11,
        "sad": 0,
        "anger": 0,
        "pride": 0,
        "confused": 0
      },
      "author": {
        "id": "pfbid02SdzVLPYTHY2eGMdrwFrLw54sVZdguAGnLUj4RPL3HxFtG2D4PBBjptiMEwpB21Ehl",
        "name": "Robin Bergsagel",
        "gender": "FEMALE",
        "short_name": "Robin"
      }
    }
  ],
  "next_cursor": "MToxNzc2NDYxMjMwOgF......",
  "has_next_page": true
}

GET /v1/facebook/post_captions

Transcript

Returns the transcript text for a Facebook video post or reel. Existing transcripts or native captions are used first and cost 1 credit only when returned. Otherwise the public video is transcribed using AI. No transcript costs 0 credits. By default, successful AI transcription of videos up to 120 seconds (two minutes, inclusive) costs a flat 1 credit per request. Over 120 seconds, videos cannot be AI-transcribed by default. Set allow_long_transcription=true to opt into paid AI with no fixed duration cap: ALL successful AI transcriptions in this mode cost 10 credits per started minute, including short videos: 10 * ceil(duration_seconds / 60). For example, 177 seconds costs 30 credits and an opted-in 60 seconds costs 10 credits. Empty AI results and errors cost 0 credits for AI transcription. These routes remain synchronous. Allow at least 30 seconds on your client. Paid long transcription can exceed resource limits or timeouts, so successful transcription of long videos is not guaranteed.

Parameters

NameInTypeDescription
url requiredquerystringFacebook post URL
allow_long_transcriptionquerybooleanPaid 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 mode. By default, successful AI transcription of videos up to 120 seconds (two minutes, inclusive) costs a flat 1 credit per request. Over 120 seconds, videos cannot be AI-transcribed by default. Set allow_long_transcription=true to opt into paid AI with no fixed duration cap: ALL successful AI transcriptions in this mode cost 10 credits per started minute, including short videos: 10 * ceil(duration_seconds / 60). For example, 177 seconds costs 30 credits and an opted-in 60 seconds costs 10 credits. Empty AI results and errors cost 0 credits for AI transcription. This flag does not force AI and does not enable transcription or AI fallback by itself. Keep get_transcript=true or use_ai_as_fallback=true where required by the endpoint. Returned native captions still cost 1 credit on dedicated transcript routes, even for long videos with this flag; on detail routes they leave the base price unchanged. These routes remain synchronous. Allow at least 30 seconds on your client. Paid long transcription can exceed resource limits or timeouts, so successful transcription of long videos is not guaranteed.
cache_max_agequerystringIf 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). Otherwise, scrape a live result (Returned native captions cost 1 credit, even for long videos with the paid flag. By default, successful AI up to 120 seconds costs a flat 1 credit per request; over 120 seconds requires allow_long_transcription=true, which bills ALL successful AI at 10 credits per started minute, including short videos; empty AI results and errors cost 0 credits; no transcript: 0 credits). See the Caching page for details.
one of: 1d, 3d, 7d, 14d, 30d

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/post_captions?url=example" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/post_captions?url=example", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/post_captions?url=example",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "transcript": "We're fishing\nbite x2\nBest bait\non this pole\nsomething else\nThere's a chance\ncan get a\nmythic pistol\nYou have to\nall game\nstill won't\nNuh uh\nliterally\nthe sp..."
}

GET /v1/facebook/user

Profile

Retrieves public Facebook page details including category, address, email, phone, website, services, priceRange, rating, likeCount, talkingAboutCount, and followerCount. talkingAboutCount is nullable and only returned when Facebook exposes it publicly. Also returns adLibrary status with the page's ad activity and pageId. Optionally includes businessHours when get_business_hours is set to true. Contact fields come from the submitted public profile. To request removal of your own information from Scrapall results, email Telegram @rajoulzsannax123 with the profile URL. If Facebook shows an 18+ content gate, the response is still 200 with account_status: "age-restricted" and isPrivate: true. If Facebook shows a private content gate, the response is still 200 with account_status: "private" and isPrivate: true. If the page is not found, the response is 404 with accountDoesNotExist: true and isPrivate: false. Set include_gated_profile=true to also return limited public fields (such as id, name, category, likeCount, profilePicSmall, and links) when a profile is gated or age-restricted. This option only affects gated/age-restricted profiles — public profiles still return the normal full response.

Parameters

NameInTypeDescription
url requiredquerystringFacebook profile URL
get_business_hoursquerystringGet the business's hours
include_gated_profilequerystringWhen true, returns limited public fields for gated or age-restricted profiles. Ignored for normal public profiles — those still return the full response.
cache_max_agequerystringIf 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). Otherwise, scrape a live result (1 credit). See the Caching page for details.
one of: 1d, 3d, 7d, 14d, 30d

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/user?url=https://www.facebook.com/mantraindianfolsom" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/user?url=https://www.facebook.com/mantraindianfolsom", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/user?url=https://www.facebook.com/mantraindianfolsom",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "ad_library": {
    "ad_status": "This Page is currently running ads.",
    "page_id": "104359362513119"
  },
  "creation_date": "November 25, 2022",
  "business_hours": [
    {
      "monday": {
        "open": null,
        "close": null,
        "intervals": [],
        "full_text": "CLOSED"
      }
    }
  ],
  "id": "100088017857524",
  "is_private": false,
  "name": "Mantraindian",
  "url": "https://www.facebook.com/mantraindianfolsom",
  "gender": "UNKNOWN",
  "cover_photo": {
    "focus": {
      "x": 0.5,
      "y": 0
    },
    "photo": {
      "id": "204402652503662",
      "image": {
        "uri": "https://scontent.fist7-1.fna.fbcdn.net/v/t39.30808-6/477575273_596577106619546_7712360987777031655_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=111&ccb=1-7&_nc_sid...",
        "width": 960,
        "height": 365
      },
      "viewer_image": {
        "height": 780,
        "width": 2050
      },
      "blurred_image": {
        "uri": "https://scontent.fist7-1.fna.fbcdn.net/v/t39.30808-6/477575273_596577106619546_7712360987777031655_n.jpg?stp=dst-jpg_fb50_s320x320_tt6&_nc_cat=111&ccb=1-7&_n...",
        "width": 320,
        "height": 122
      },
      "url": "https://www.facebook.com/photo/?fbid=204402652503662&set=a.113593838251211"
    }
  },
  "is_business_page_active": false,
  "profile_photo": {
    "url": "https://www.facebook.com/photo/?fbid=152234581053803&set=a.107432348867360",
    "viewer_image": {
      "height": 2000,
      "width": 2000
    },
    "id": "152234581053803"
  },
  "profile_pic_large": "https://scontent.fist20-2.fna.fbcdn.net/v/t39.30808-1/331711173_3408886226056104_241444658713195527_n.jpg?stp=dst-jpg_s200x200_tt6&_nc_cat=110&ccb=1-7&_nc_si...",
  "profile_pic_medium": "https://scontent.fist20-2.fna.fbcdn.net/v/t39.30808-1/331711173_3408886226056104_241444658713195527_n.jpg?stp=dst-jpg_s148x148_tt6&_nc_cat=110&ccb=1-7&_nc_si...",
  "profile_pic_small": "https://scontent.fist20-2.fna.fbcdn.net/v/t39.30808-1/331711173_3408886226056104_241444658713195527_n.jpg?stp=dst-jpg_s100x100_tt6&_nc_cat=110&ccb=1-7&_nc_si...",
  "page_intro": "Indian Vegan & Vegetarian Restaurant",
  "category": "Restaurant",
  "address": "1870 Prairie City Rd, Suite 500, Folsom, CA, United States, California",
  "email": "[email protected]",
  "links": [],
  "phone": "+1 916-999-1749",
  "website": "https://www.mantraindian.com/",
  "services": "Delivery · Takeaway · Dine in…",
  "price_range": "$$",
  "rating": "Not yet rated (1 review)",
  "rating_count": null,
  "...": "3 more fields"
}

GET /v1/facebook/user_events

Profile Events

Get the events of a public Facebook page

Parameters

NameInTypeDescription
url requiredquerystringThe URL of the public Facebook page
next_cursorquerystringThe cursor to paginate to get more events

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_events?url=https://www.facebook.com/brickyardoldtown" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/user_events?url=https://www.facebook.com/brickyardoldtown", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_events?url=https://www.facebook.com/brickyardoldtown",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "events": [
    {
      "id": "1596643298218453",
      "typename": "Event",
      "name": "Harrison Steele at Brickyard",
      "is_canceled": false,
      "event_creator": {
        "typename": "User",
        "is_entity": "User",
        "url": "https://www.facebook.com/brickyardoldtown",
        "name": "Brickyard",
        "id": "100066639371774"
      },
      "event_place": {
        "typename": "FreeformPlace",
        "contextual_name": "Brickyard",
        "location": {
          "reverse_geocode": {
            "city": "Wichita"
          }
        },
        "is_node": "FreeformPlace",
        "id": "1594193222711146"
      },
      "day_time_sentence": "Thu, May 7 at 6:00 PM CDT",
      "url": "https://www.facebook.com/events/1596643298218453/",
      "gif_cover_photo": null,
      "cover_video": null,
      "is_entity": "Event",
      "event_kind": "PUBLIC_TYPE",
      "is_happening_now": false,
      "is_online_or_detected_online": false,
      "is_past": false,
      "start_timestamp": 1778194800
    }
  ],
  "next_cursor": "eyJpZCI6IllYQ.....",
  "has_next_page": true,
  "total_count": 22
}

GET /v1/facebook/user_photos

Profile Photos

Fetches photos from a public Facebook page with pagination support. Each photo includes photo_id, accessibility_caption, viewer_image with uri, height, and width, plus a thumbnail and direct url. Pagination requires passing both next_page_id and cursor from the previous response.

Parameters

NameInTypeDescription
url requiredquerystringFacebook page URL
next_page_idquerystringTo paginate through to the next page
next_cursorquerystringTo paginate through to the next page

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_photos?url=https://www.facebook.com/Spurs" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/user_photos?url=https://www.facebook.com/Spurs", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_photos?url=https://www.facebook.com/Spurs",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "photos": [
    {
      "id": "YXBwX2l0ZW06MTAwMDQ0NjM0NDUwMjA4OjIzMDUyNzI3MzI6NTo6MTQyODEwNjQwMjAyMDQ5NQ==",
      "photo_id": "1428106402020495",
      "accessibility_caption": "May be an image of basketball and text",
      "immersive_photo_encodings": [],
      "viewer_image": {
        "uri": "https://scontent-sea5-1.xx.fbcdn.net/v/t51.82787-15/622604539_18555344569004556_8789920462640292891_n.jpg?_nc_cat=105&ccb=1-7&_nc_sid=127cfc&_nc_ohc=YhJA3Uo9...",
        "height": 1800,
        "width": 1440
      },
      "photo_cix_screen": null,
      "thumbnail": "https://scontent-sea5-1.xx.fbcdn.net/v/t51.82787-15/622604539_18555344569004556_8789920462640292891_n.jpg?stp=c0.119.1440.1440a_dst-jpg_s206x206_tt6&_nc_cat=...",
      "url": "https://www.facebook.com/photo.php?fbid=1428106402020495&set=pb.100044634450208.-2207520000&type=3"
    }
  ],
  "next_cursor": "AQHSRM68MZ-AJKGSgRb0....",
  "next_page_id": "YXBwX2NvbGxlY3Rpb24...."
}

GET /v1/facebook/user_posts

Profile Posts

Returns publicly visible Facebook profile posts, limited to 3 posts per page due to API limitations. Each post includes id, text, url, reactionCount, commentCount, publishTime, videoDetails with sdUrl, hdUrl, and thumbnailUrl, plus topComments. Link shares can include link_attachment with url, title, description, source, and image_url; unavailable preview fields are null. Mixed photo/video posts retain their images and story url, with available video media in videoDetails and a video permalink. Accepts either a url or pageId parameter, where pageId is faster. posts[].is_paid_partnership is a nullable boolean: true when Facebook supplies a paid-partnership label or an explicit paid branded-content relationship; null when unknown or no disclosure is supplied. It currently never returns false: a missing disclosure does not establish that a post has no sponsorship.

Parameters

NameInTypeDescription
urlquerystringFacebook profile URL
page_idquerystringFacebook profile page id
next_cursorquerystringTo paginate through the posts

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_posts" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/user_posts", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_posts",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "posts": [
    {
      "id": "1204545088344463",
      "is_paid_partnership": null,
      "text": "I've had such a blast doing the No One Left Behind Challenge this year! Join me this Friday Dec 20 @ 5PM MST to learn about next month's challenge! https://s...",
      "url": "https://www.facebook.com/reel/486651220706068/",
      "permalink": "https://www.facebook.com/reel/486651220706068/",
      "author": {
        "typename": "User",
        "name": "Pace Morby",
        "short_name": "Pace Morby",
        "id": "100063669491743"
      },
      "video_details": {
        "sd_url": "https://video-atl3-2.xx.fbcdn.net/o1/v/t2/f2/m69/AQM-5pP3onM9DT-mhIF1lsU_5QIoHD3ezSh_534fSvquBk1J89JZc5j6cQzDP7ksAp5LQGEiJSVYnPWJVYmbgj42.mp4?strext=1&_nc_ca...",
        "hd_url": "https://video-atl3-1.xx.fbcdn.net/o1/v/t2/f2/m69/AQPpb__shxY1O25oSbb2cYJJZdDS1uvPXNvL_wuUl3A5X4oczA14gCptufMdZIQ44Fa1nPHR7BJne11vQR0-kjxg.mp4?strext=1&_nc_ca...",
        "thumbnail_url": "https://scontent-atl3-1.xx.fbcdn.net/v/t15.5256-10/470601406_1890766051448666_5960639905933280594_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=110&ccb=1-7&_nc_sid=..."
      },
      "reaction_count": 133,
      "comment_count": 12,
      "video_view_count": null,
      "publish_time": 1734553170,
      "top_comments": [
        {
          "id": "Y29tbWVudDoxMjA0NTQ1MDg4MzQ0NDYzXzEzMDU4NDQ3ODM3NjA1ODk=",
          "text": "How can I sign up?",
          "publish_time": 1734569761,
          "author": {
            "id": "pfbid02uDNsa8qhySfhQJ83VUcVD5mmVShgxNrtepNZ2TwCsg22xMN3NhdNBQbxPjj2dyr9l",
            "name": "BeezMo Jenkins",
            "gender": "MALE",
            "url": null
          }
        }
      ]
    }
  ],
  "next_cursor": "Cg8Ob3JnYW5pY19jdXJzb3IJAAABxEFRSFI4N0N6eHZvYWlsRnJ3TlFMQTU4NUtmTzdSR2hQUzJpa25iTHlaMS1zbG1pTjZtTWFtN0JrNjB3UXVyUFFDOUJabC1JbjYwV2lhQmdqdTYzOXZTaHlMTGhIcGZXV..."
}

GET /v1/facebook/user_reels

Profile Reels

Fetches up to 10 reels per request from a public Facebook page. Each reel includes id, post_id, url, view_count, description, creation_time, video_url, thumbnail, play_time_in_ms, and music details. view_count comes from Facebook's public Reels badge (play_count_reduced), converted to a number; abbreviated values such as 27K become 27000, not an exact count. This list does not include like_count, reaction_counts, comment_count, share_count, or an is_pinned flag. Do not infer pinning from the order of returned reels. For available engagement metrics and a more precise view_count when Facebook exposes it, call /v1/facebook/post separately with each reel's returned url. There is no batch detail parameter on this endpoint. The detail view_count can still be null or lower than the public Reels badge. Pagination requires passing both next_page_id and cursor from the previous response. reels[].is_paid_partnership is a nullable boolean: true when Facebook supplies a paid-partnership label or an explicit paid branded-content relationship; null when unknown or no disclosure is supplied. It currently never returns false: a missing disclosure does not establish that a post has no sponsorship.

Parameters

NameInTypeDescription
url requiredquerystringFacebook page URL
next_page_idquerystringTo paginate through to the next page
next_cursorquerystringTo paginate through to the next page

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_reels?url=https://www.facebook.com/pacemorby" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/user_reels?url=https://www.facebook.com/pacemorby", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/user_reels?url=https://www.facebook.com/pacemorby",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "reels": [
    {
      "id": "UzpfSTEwMDA2NDAyNzI0Mjg0OTpWSzoxMTE0MjM1OTIwNjY0NDA4",
      "is_paid_partnership": null,
      "post_id": "1203161005161463",
      "creation_time": "2025-09-13T20:51:28.000Z",
      "url": "https://www.facebook.com/reel/1114235920664408",
      "view_count": 900,
      "feedback_id": "ZmVlZGJhY2s6MTIwMzE2MTAwNTE2MTQ2Mw==",
      "description": "#globetheatreregina #GrandOpeningGlobeTheatre #yqrfood",
      "video_id": "1114235920664408",
      "thumbnail": "https://scontent.fsjc1-3.fna.fbcdn.net/v/t15.5256-10/548161090_781902490913426_4425148471361535737_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=104&ccb=1-7&_nc_sid...",
      "play_time_in_ms": 22035,
      "video_url": "https://video.fsjc1-3.fna.fbcdn.net/o1/v/t2/f2/m366/AQOiS3S8KcKF2LNoPO0zOfAI3fDrZ4uUOgoNDGn6c7r8ABcujOm_egeBIp1UGt2C3T7bjmweRUAe6zZv183Qj3dpOTyUglIVsXGSEDb37...",
      "music": {
        "id": "1491450028648565",
        "track_title": "The Copper Kettle Restaurant · Original audio"
      },
      "author": {
        "id": "100064027242849",
        "name": "The Copper Kettle Restaurant",
        "is_verified": false,
        "url": "https://www.facebook.com/copperkettleyqr",
        "image": "https://scontent.fsjc1-3.fna.fbcdn.net/v/t39.30808-1/298528699_436705561807015_4191178501684731329_n.jpg?stp=cp0_dst-jpg_s40x40_tt6&_nc_cat=101&ccb=1-7&_nc_s..."
      }
    }
  ],
  "next_cursor": "AQHSiBn76EsmuU....",
  "next_page_id": "YXBwX2NvbGxlY...."
}

GET /v1/facebook/search_videos

Search Videos

Searches Facebook's native public video search without a logged-in account and returns matching videos and Reels. This is not Google-indexed discovery or general Facebook text/photo-post search. Results follow Facebook's ranking and public availability, so coverage and ordering are not exhaustive or guaranteed. Requests can take several seconds; use a client timeout of at least 30 seconds. Temporary Facebook restrictions or upstream timeouts can return an uncharged error. Pass the returned cursor with the same query for the next page, and stop when cursor is null or has_more is false. Each successful search page costs 1 credit, including searches with no matches. Validation errors and upstream failures are not charged. videos[].is_paid_partnership is a nullable boolean: true when Facebook supplies a paid-partnership label or an explicit paid branded-content relationship; null when unknown or no disclosure is supplied. It currently never returns false: a missing disclosure does not establish that a post has no sponsorship.

Parameters

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

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/facebook/search_videos?query=ai agents" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/facebook/search_videos?query=ai agents", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/facebook/search_videos?query=ai agents",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "query": "dogs",
  "videos": [
    {
      "id": "1972139093484105",
      "is_paid_partnership": null,
      "url": "https://www.facebook.com/reel/1972139093484105/",
      "title": "Extremely strong dogs 🦍",
      "description": "You shouldn't underestimate the strength of your large dogs 🦍#dog #bigdog #dogs #jozodogs #pet",
      "author": {
        "id": "100071029295578",
        "name": "Jozo Dogs",
        "url": "https://www.facebook.com/jozodogs"
      },
      "creation_time": null,
      "publish_time": null,
      "relative_time_text": "Sep 5 · 89K views",
      "duration_ms": null,
      "duration_text": "0:17",
      "thumbnail_url": "https://scontent-lax3-2.xx.fbcdn.net/v/t15.5256-10/797452339_4437994959794452_2679783842489764932_n.jpg?stp=c0.83.206.115a_dst-jpg_p206x206_tt6&_nc_cat=111&c..."
    }
  ],
  "next_cursor": "eyJ...",
  "has_more": true
}