How to scrape Facebook Profile Videos with PHP
Videos and reels from a profile or Page with view counts. This tutorial gets it with a short PHP program and the Facebook Profile Videos API. Each successful call costs 1 credit; errors and not-found answers are free.
1. Get an API key
Sign in to get a key and 100 free credits, no card. Then put the key in an environment variable so it stays out of your code:
export SCRAPEIO_API_KEY="your_key_here"2. Set up PHP
PHP 8 with the curl extension3. Write the code
Save this as scrape.php. Replace PASTE_URL_HERE with a real url.
<?php
$params = ["url" => "PASTE_URL_HERE"];
function call(array $params): array {
$ch = curl_init("https://scrapeio.com/v1/facebook/profile/reels?" . http_build_query($params));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["x-api-key: " . getenv("SCRAPEIO_API_KEY")],
]);
$body = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($code !== 200) throw new Exception("HTTP $code");
return json_decode($body, true)["data"];
}
$items = [];
while (true) {
$data = call($params);
$items = array_merge($items, $data["items"] ?? []);
if (empty($data["has_more"]) || empty($data["cursor"]) || count($items) >= 100) break;
$params["cursor"] = $data["cursor"];
}
echo count($items) . " items\n";
print_r(array_slice($items, 0, 3));The loop follows data.cursor until data.has_more is false, and stops at 100 items. Each page is one call, so it costs 1 credit.
4. Run it
php scrape.phpThe response has the same envelope on every endpoint: success, cached, credits_used, credits_remaining and data. Shared fields such as handle, followers, plays, likes and created_at have the same names on every platform.
Parameters
| Name | Type | Description |
|---|---|---|
url (required) | string | Facebook profile or Page URL, profile.php?id= URL, numeric id, or Page name. |
cursor | string | Cursor from the previous page's data.cursor. |
Errors and what you pay
| Status | Meaning | Charged |
|---|---|---|
200 | Success | Yes, unless cached |
400 | A parameter is missing or wrong | No |
401 | The key is missing or invalid | No |
402 | Not enough credits | No |
403 | The account or post is private | No |
404 | Not found on the platform | No |
429 | More than 300 requests a minute | No |
502 | Every source is down; retry shortly | No |
Same endpoint in other languages
Python · Node.js · JavaScript · TypeScript · Go · Rust · Java · C# · Ruby · Kotlin · Swift · R
Prefer no code?
Connect the MCP server to Claude Code, Cursor or Codex and ask in plain English. The agent uses the facebook_profile_videos tool for you.
100 free credits, no card. Credits never expire.
Get API keyMore Facebook tutorials in PHP
- How to scrape Facebook Profile with PHP
- How to scrape Facebook Profile Posts with PHP
- How to scrape Facebook Post with PHP
- How to scrape Facebook Comments with PHP
- How to scrape Facebook Comment Replies with PHP
- How to scrape Facebook Profile Photos with PHP
- How to scrape Facebook Group with PHP
- How to scrape Facebook Group Posts with PHP
- How to scrape Facebook Post Transcript with PHP
- How to scrape Facebook Profile Events with PHP
- How to scrape Facebook Search Videos with PHP