# Facebook Photos Scraper (`alpha-scraper/facebook-photos-scraper`) Actor

Facebook Photos Scraper extracts public photos and metadata from Facebook Pages and Profiles. Collect photo IDs, image URLs, thumbnails, captions, dimensions, and photo links using usernames or URLs. Ideal for research, content analysis, monitoring, and social media intelligence.

- **URL**: https://apify.com/alpha-scraper/facebook-photos-scraper.md
- **Developed by:** [Alpha Scraper](https://apify.com/alpha-scraper) (community)
- **Categories:** Social media, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

***

## 📸 Facebook Photos Scraper

Extract public Facebook photos, image URLs, thumbnails, captions, and photo metadata from Facebook Pages and Profiles.

The **Facebook Photos Scraper** is an Apify Actor that helps you collect publicly available photo data from Facebook at scale. Simply provide one or more Facebook usernames or profile/page URLs, and the Actor will return structured photo information ready for analysis, automation, reporting, CRM enrichment, content research, and business intelligence workflows.

Whether you're tracking competitors, researching influencers, monitoring brands, or building large image datasets, this Actor provides a simple and reliable way to gather Facebook photo data.

***

### 🚀 What Can This Actor Extract?

For every public Facebook photo, the Actor can collect:

- 🆔 Photo ID
- 📷 Full-size image URL
- 🖼️ Thumbnail image URL
- 📝 Photo caption
- 👤 Source profile URL
- 📐 Image dimensions
- 🔗 Photo URL
- 📊 Structured photo metadata

***

### ✅ Why Use Facebook Photos Scraper?

#### Fast Setup

No complicated configuration required. Simply enter usernames or URLs and start scraping.

#### Flexible Input

Supports both Facebook usernames and Facebook profile/page URLs.

#### Structured Data

Receive clean JSON output that can be exported to CSV, Excel, JSON, XML, RSS, or integrated into your workflows.

#### Scalable Collection

Collect photos from multiple Facebook profiles and pages within a single run.

#### Duplicate Prevention

Duplicate photo records are automatically filtered during collection.

#### Reliable Collection

Built-in retry handling helps improve stability during large scraping jobs.

***

## 🎯 Common Use Cases

### Competitor Research

Analyze how competitors use visual content across Facebook.

### Influencer Analysis

Collect image content from creators, athletes, celebrities, and public figures.

### Brand Monitoring

Track public photos published by brands and organizations.

### Social Media Research

Study visual communication trends and content strategies.

### CRM Enrichment

Add image-related profile information to customer or lead databases.

### Academic Research

Build structured datasets for social media and communication studies.

### Business Intelligence

Gather publicly available visual content for reporting and analysis.

***

## 📥 Input

The Actor accepts the following input fields:

| Field           | Type    | Description                                     |
| --------------- | ------- | ----------------------------------------------- |
| `username`      | Array   | One or more Facebook usernames                  |
| `facebook_urls` | Array   | One or more Facebook profile or page URLs       |
| `photos_count`  | Integer | Maximum number of photos to collect per profile |

***

### Username Examples

```text id="1g4z2a"
Cristiano
IamSRK
nike
NationalGeographic
```

***

### Facebook URL Examples

#### Profile URL

```text id="7wd4p2"
https://www.facebook.com/Cristiano
https://www.facebook.com/IamSRK
```

#### People URL

```text id="q8m9y1"
https://www.facebook.com/people/Page-Name/123456789/
```

***

### Example Input

```json id="u6h2j9"
{
  "username": [
    "Cristiano",
    "nike"
  ],
  "facebook_urls": [
    {
      "url": "https://www.facebook.com/IamSRK"
    }
  ],
  "photos_count": 100
}
```

***

## 📤 Output

The Actor returns one dataset item for each collected Facebook photo.

### Output Fields

| Field           | Description                 |
| --------------- | --------------------------- |
| `number`        | Sequential record number    |
| `photo_id`      | Unique Facebook photo ID    |
| `photo_type`    | Type of photo               |
| `profile_url`   | Source Facebook profile URL |
| `type`          | Record type                 |
| `url`           | Facebook photo URL          |
| `image_url`     | Full-size image URL         |
| `image_width`   | Full image width            |
| `image_height`  | Full image height           |
| `thumbnail_url` | Thumbnail image URL         |
| `caption`       | Photo caption               |
| `photo_details` | Additional photo metadata   |

***

### Example Output

```json id="j9n5x3"
{
  "photo_type": "own_photos",
  "profile_url": "https://www.facebook.com/Cristiano",
  "number": 1,
  "photo_id": "123456789012345",
  "type": "Photo",
  "url": "https://www.facebook.com/photo/?fbid=123456789012345",
  "image_url": "https://example-cdn.com/full-image.jpg",
  "image_width": 2048,
  "image_height": 1365,
  "thumbnail_url": "https://example-cdn.com/thumbnail-image.jpg",
  "caption": "Celebrating after the match",
  "photo_details": {
    "images": {
      "full": {
        "url": "https://example-cdn.com/full-image.jpg",
        "width": 2048,
        "height": 1365
      },
      "thumbnail": {
        "url": "https://example-cdn.com/thumbnail-image.jpg"
      }
    },
    "caption": "Celebrating after the match"
  }
}
```

***

## 📊 Output Categories

### Basic Information

| Field      |
| ---------- |
| number     |
| photo\_id   |
| photo\_type |
| type       |

***

### Profile Information

| Field       |
| ----------- |
| profile\_url |

***

### Photo URLs

| Field         |
| ------------- |
| url           |
| image\_url     |
| thumbnail\_url |

***

### Image Metadata

| Field        |
| ------------ |
| image\_width  |
| image\_height |

***

### Caption Data

| Field   |
| ------- |
| caption |

***

## ⚡ Performance & Reliability

The Actor includes several features designed to improve data collection quality:

#### Automatic Deduplication

Duplicate photo IDs are filtered from the dataset.

#### Retry Handling

Failed requests are retried automatically.

#### Multi-Profile Processing

Scrape multiple profiles and pages within a single run.

#### Structured Output

Clean and consistent output suitable for automation and analytics.

#### Scalable Collection

Supports collecting large numbers of photos from public Facebook sources.

***

## 💰 Pricing

This Actor uses Apify's usage-based pricing model.

Costs may vary depending on:

- Number of profiles processed
- Number of photos collected
- Runtime usage
- Overall scraping volume

Please refer to the Actor pricing section for current pricing information.

***

## ❓ Frequently Asked Questions

### Can I scrape Facebook Pages?

Yes. Public Facebook Pages are supported.

### Can I scrape Facebook Profiles?

Yes. Public Facebook Profiles are supported.

### Can I use usernames instead of URLs?

Yes. Usernames are automatically converted into Facebook profile URLs.

### Can I scrape multiple profiles at once?

Yes. Multiple usernames and URLs can be provided in a single run.

### Does the Actor return image URLs?

Yes. Full-size image URLs are included when available.

### Does the Actor return thumbnail URLs?

Yes. Thumbnail image URLs are included.

### Are captions included?

Yes. Captions are returned when available.

### Is duplicate data removed?

Yes. Duplicate photo IDs are filtered automatically.

### Can I export the data?

Yes. Apify datasets support exporting to JSON, CSV, Excel, XML, RSS, and more.

### Is the data structured?

Yes. Every photo is returned as a structured dataset item.

***

## 🔒 Privacy & Compliance

This Actor is intended for collecting **publicly available Facebook data only**.

Users are responsible for ensuring compliance with:

- Applicable laws and regulations
- Facebook Terms of Service
- Internal company policies
- Privacy and data protection requirements

The Actor is not intended to access private, restricted, or protected content.

Always collect and use data responsibly.

***

## ⭐ Facebook Photos Scraper

Collect public Facebook photos, image URLs, thumbnails, captions, and metadata from Facebook Pages and Profiles with a simple, scalable, and reliable workflow.

Perfect for marketers, researchers, analysts, agencies, developers, and businesses that need structured Facebook photo data.

***

# Actor input Schema

## `username` (type: `array`):

Enter one or more usernames (e.g., Cristiano, IamSRK, nike). Each will be auto-converted to a full profile URL.

## `facebook_urls` (type: `array`):

One or more Facebook URLs. Supported formats:
• Username: Cristiano
• Profile URL: https://www.facebook.com/Cristiano
• People URL: https://www.facebook.com/people/Page-Name/123456789/

## `photos_count` (type: `integer`):

How many photos to scrape per tab per profile (1–10,000). Own photos are always scraped.

## Actor input object example

```json
{
  "username": [
    "Cristiano"
  ],
  "facebook_urls": [
    {
      "url": "https://www.facebook.com/IamSRK"
    }
  ],
  "photos_count": 80
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "username": [
        "Cristiano"
    ],
    "facebook_urls": [
        {
            "url": "https://www.facebook.com/IamSRK"
        }
    ],
    "photos_count": 80
};

// Run the Actor and wait for it to finish
const run = await client.actor("alpha-scraper/facebook-photos-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "username": ["Cristiano"],
    "facebook_urls": [{ "url": "https://www.facebook.com/IamSRK" }],
    "photos_count": 80,
}

# Run the Actor and wait for it to finish
run = client.actor("alpha-scraper/facebook-photos-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "username": [
    "Cristiano"
  ],
  "facebook_urls": [
    {
      "url": "https://www.facebook.com/IamSRK"
    }
  ],
  "photos_count": 80
}' |
apify call alpha-scraper/facebook-photos-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alpha-scraper/facebook-photos-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ejj2ZIGw5CHxk9lEq/builds/3jnpTrcKlRr1r9AYp/openapi.json
