Skip to content

Facebook Photos Scraper

Try for free

Extract public photos from a Facebook page. Each row includes the photo id, image URL, photo link, and the accessibility caption Facebook publishes.

🖼️ Facebook Photos Scraper

Extract the public photos from any Facebook page or profile and get each photo's image URL, Facebook link, accessibility caption, and size. No login, no cookies, and just $1.00 per 1,000 photos.

✨ Why use Facebook Photos Scraper?

  • 🔓 No login or cookies — reads the public photos tab that Facebook shows to logged-out visitors.
  • 🖼️ Direct image links — full image URL plus the Facebook photo page link for each photo.
  • 📐 Dimensions included — width and height are filled from the public image.
  • 📝 Captions — the accessibility caption Facebook publishes for each photo, in ocrText.
  • 💸 Very low price — a tenth of a cent per photo, and a missing page is not charged.
  • 📦 Export anywhere — JSON, CSV, Excel, or the API.

🎯 Use cases

  • 🗄️ Archiving — keep a record of the photos on a brand or community page.
  • 🔍 Visual research — collect image URLs and captions for a set of pages.
  • 👀 Monitoring — see which photos a page is showing without opening each one.
  • 🧩 Datasets — assemble image URL lists for analysis or tagging.

🚀 How to use

  1. Add one or more public Facebook page or profile URLs to Facebook URLs.
  2. Set Photos per URL.
  3. Click Start and wait for the run to finish.
  4. Open the Output tab and export JSON, CSV, or Excel.

📥 Input

FieldKeyWhat it does
Facebook URLsstartUrlsPublic page or profile URLs, such as https://www.facebook.com/humansofnewyork. A photos tab URL is also accepted.
Photos per URLresultsLimitHow many photos to save per URL. Default 10.
Proxy configurationproxyConfigurationDatacenter by default. Residential if a page only loads from a residential IP.
{
  "startUrls": [
    { "url": "https://www.facebook.com/humansofnewyork" }
  ],
  "resultsLimit": 10,
  "proxyConfiguration": {
    "useScrapelyProxy": true,
    "scrapelyProxyGroups": ["DATACENTER"]
  }
}

📤 Output

One dataset row per photo.

FieldDescription
imageDirect URL of the image file.
urlFacebook photo page link.
idFacebook photo item id.
ocrTextAccessibility caption, such as "May be an image of child and text".
width, heightImage size in pixels.
dataTypeAlways photo.
facebookUrl, inputUrlThe page the photo came from.
facebookId, pageAdLibraryCollection id and page details from Facebook.
{
  "facebookUrl": "https://www.facebook.com/humansofnewyork",
  "id": "YXBwX2l0ZW06MTAwMDUwNDI5OTUyNDIwOjIzMDUyNzI3MzI6NTo6MTY3NDYzMTQ2NzU2MTE2OQ==",
  "image": "https://scontent-iad3-1.xx.fbcdn.net/v/t39.99422-6/846467687_1626254438940479_40...",
  "url": "https://www.facebook.com/photo.php?fbid=1674631467561169&set=pb.100050429952420...",
  "dataType": "photo",
  "ocrText": "May be an image of child and text",
  "width": 2048,
  "height": 1365,
  "inputUrl": "https://www.facebook.com/humansofnewyork"
}

(Trimmed: image and photo links are shortened here and the row also carries facebookId and pageAdLibrary.) A page that does not exist, or whose photos need a login, returns one row with error set to not_available. Missing pages are not charged.

💰 Pricing

You pay $0.001 per photo saved, which is $1.00 per 1,000 photos. Platform usage (compute and proxy) is billed on top.

Worked example: 10 photos cost 10 × $0.001 = $0.01 in events plus about $0.002 of platform usage, around $0.012 in total.

❓ FAQ

Is it legal to scrape Facebook photos?

The actor only reads what is publicly visible without logging in. You are responsible for respecting copyright, privacy law, and Facebook's terms when you use the images.

Do I need a login or a proxy?

No login or cookies. Datacenter proxy is built in and used by default.

Can I scrape albums, tagged photos, or a single photo URL?

Not reliably. Album, tagged-photo, and single-photo URLs that redirect to a login page come back as an error row. Use the page or profile URL.

How many photos can I get?

As many as you set per URL, limited by how many photos the page shows publicly.

What if a field is empty?

The caption or size can be missing for some photos. Those fields are then null or left out.

Can I schedule it or use the API?

Yes, from the console or through the API.

⚠️ Limits

  • Public pages and profiles only.
  • Albums, tagged photos, and single-photo URLs that need a login are not supported.
  • A public page with zero photos returns an empty dataset.
  • Image URLs on Facebook's CDN can expire, so download the files if you need to keep them.
  • A 10-photo run takes about 6 seconds including startup.
  • Facebook can change its pages at any time, which may cause occasional gaps.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.