# Facebook Photos API

Get the photo grid of a public Facebook page or profile. Each record carries the photo id, Facebook AI-generated alt text (accessibility_caption), creation time, image URI and pixel dimensions. One request returns one grid page (measured 8 photos). The next photo is a single documented step, not a cursor.

- **Documentation:** [https://scrappa.co/docs/facebook-api/facebook_photos](https://scrappa.co/docs/facebook-api/facebook_photos)
- **API group:** Facebook API
- **Endpoint:** `GET https://scrappa.co/api/facebook/photos`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `handle` | string | Yes | Facebook page or profile handle, without the @ or the facebook.com prefix (e.g. nasa). |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/facebook/photos?handle=nasa"
```

## Example response

```json
{
    "success": true,
    "photos": [
        {
            "id": "1644708703691166",
            "accessibility_caption": "A rocket launching at sunrise over the Kennedy Space Center",
            "created_time": 1790872565,
            "permalink_url": "https://www.facebook.com/photo/?fbid=1644708703691166",
            "image": {
                "uri": "https://...",
                "width": 2048,
                "height": 1365
            }
        }
    ],
    "photos_count": 1,
    "meta": {
        "classification": "ok",
        "billable": true,
        "endpoint_family": "facebook_photos",
        "duration_ms": 6100
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter is missing or malformed, for example a handle with characters Facebook does not allow or a non-numeric id. |
| 404 | Not Found | The page, profile, group, event, photo, reel, post or listing does not exist, is not public, or was served by Facebook without the requested record. This is the truthful answer, not a temporary fault: it is never billed and retrying the same permalink will not change it. |
| 503 | Records Not Read | Facebook returned records for this request that the parser could not read. The origin status is 502 and it is reported here as 503 because Cloudflare replaces 502 and 504 bodies with its own page. This request is never billed: the customer received no data. |
| 503 | Temporarily Unavailable | The upstream service is temporarily unavailable. Please retry shortly. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
