Facebook Profile & Page Photos Scraper avatar

Facebook Profile & Page Photos Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Facebook Profile & Page Photos Scraper

Facebook Profile & Page Photos Scraper

Collect publicly accessible Facebook photos with high accuracy. Extract content image URLs, album photos, post images, and metadata. Ideal for researchers, brands, and engineers who need organized, large-volume visual data without manual downloading.

Pricing

$19.99/month + usage

Rating

5.0

(1)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

3

Monthly active users

12 days ago

Last modified

Share

πŸ“Έ Facebook Photos Scraper

Scrape publicly available photos from Facebook profiles and pages and get genuine, structured metadata for every image β€” no fabricated fields.

The scraper works in two stages, without login: it discovers photo IDs from the target's public photos page, then fetches each photo's viewer detail response and parses it as JSON. Because the detail response is parsed as real JSON (not screen-scraped with regex), every field below comes straight from Facebook's own data.

What you get per photo

FieldDescription
fbid / idThe real, reproducible Facebook photo id (stable across runs).
urlDirect photo.php?fbid=... link.
imageUrl, imageWidth, imageHeightThe largest image variant with its real pixel dimensions.
imageHdFull-resolution image URL (largest candidate, requested at scale 2).
thumbnailUrlSmallest image variant.
imageVariantsAll image variants (url + width + height), largest first.
accessibilityCaptionFacebook's native alt text (e.g. "May be an image of ..."). null if none.
captionThe photo's caption / message text. null if none.
createdTime, createdTimeISOUpload time (epoch + ISO 8601).
ownerId, ownerName, ownerUrlThe photo owner (page / profile).
albumId, albumTitleThe album the photo belongs to, when present.
reactionCount, commentCount, shareCountEngagement counts.
topReactionsPer-type reaction breakdown when Facebook exposes it (else null).
locationGeotag {name, latitude, longitude} when the photo is geotagged (else null).
scrapedAtISO timestamp of the scrape.
mediaStorageUrlPresent only when downloadMedia is on β€” link to the stored image file.

Honestly null (login-gated)

taggedUsers and comments (comment bodies / authors) require a logged-in Facebook session, so on anonymous runs they are emitted as null, never faked. The run summary (RUN_SUMMARY in the key-value store) reports real coverage fractions for the nullable fields.

Input

OptionDescription
startUrlsPublic profile/page references (URLs or handles).
modeown (uploads/timeline β€” default), tagged (photos of), album (a /media/set/ URL), albums.
maxPhotosMax photos per target (1–10000, default 20).
newerThan / olderThanDate filters on the real created time (absolute YYYY-MM-DD or relative like 2 weeks).
downloadMediaDownload full-res image bytes to the key-value store during the run.
minPhotos, concurrentPhotosAdvanced performance controls.
proxyConfigurationProxy; defaults to Apify residential (Facebook blocks datacenter IPs for logged-out scraping).

Example input

{
"startUrls": ["nasa"],
"mode": "own",
"maxPhotos": 20,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Example output row

{
"fbid": "1404942597655241",
"id": "1404942597655241",
"url": "https://www.facebook.com/photo.php?fbid=1404942597655241",
"imageUrl": "https://scontent.xx.fbcdn.net/v/t39.30808-6/...n.jpg",
"imageWidth": 2048,
"imageHeight": 1365,
"imageHd": "https://scontent.xx.fbcdn.net/v/t39.30808-6/...n.jpg",
"thumbnailUrl": "https://scontent.xx.fbcdn.net/v/t39.30808-6/...s320x320.jpg",
"accessibilityCaption": "May be an image of 2 people",
"caption": "…",
"createdTime": 1764165912,
"createdTimeISO": "2025-11-26T14:05:12+00:00",
"ownerName": "NASA",
"reactionCount": 1234,
"commentCount": 56,
"shareCount": 78,
"topReactions": [{ "type": "Like", "count": 900 }],
"location": null,
"scrapedAt": "2026-07-02T00:00:00+00:00"
}

Reliability & compliance

  • Facebook serves a login wall to logged-out datacenter/guest IPs. If all targets hit a login wall the run fails with an explicit status message instead of returning an empty dataset. Use residential proxy (the default).
  • Only publicly accessible photos are scraped. Respect Facebook's Terms of Service, copyright, and applicable law.

Billing

Pay-per-event: row_result (one per photo) and media_download (one per stored image when downloadMedia is on). Configure these in Console β†’ Publication β†’ Monetization.