# Save Facebook Photo Captions for Later Comparison

**Use case:** 

Save current photo captions, alt text and source identifiers so editors can compare Facebook photo wording across separately captured exports. Run the task again when you need another snapshot and compare records by ID in your own tools. The Actor does not retrieve an edit history or schedule repeat runs.

## Input

```json
{
  "inputList": [
    "https://www.facebook.com/photo/?fbid=1100421822647027"
  ]
}
```

## Output

```json
{
  "input": {
    "label": "Input",
    "format": "string"
  },
  "status": {
    "label": "Status",
    "format": "string"
  },
  "id": {
    "label": "ID",
    "format": "string"
  },
  "url": {
    "label": "URL",
    "format": "string"
  },
  "type": {
    "label": "Type",
    "format": "string"
  },
  "image_url": {
    "label": "Image URL",
    "format": "string"
  },
  "thumbnail_url": {
    "label": "Thumbnail URL",
    "format": "string"
  },
  "alt_text": {
    "label": "Alt Text",
    "format": "string"
  },
  "width": {
    "label": "Width",
    "format": "integer"
  },
  "height": {
    "label": "Height",
    "format": "integer"
  },
  "timestamp": {
    "label": "Timestamp",
    "format": "integer"
  },
  "published_at": {
    "label": "Published At",
    "format": "string"
  },
  "owner.id": {
    "label": "Owner / ID",
    "format": "text"
  },
  "owner.page_id": {
    "label": "Owner / Page ID",
    "format": "text"
  },
  "owner.username": {
    "label": "Owner / Username",
    "format": "text"
  },
  "owner.name": {
    "label": "Owner / Name",
    "format": "text"
  },
  "owner.url": {
    "label": "Owner / URL",
    "format": "link"
  },
  "owner.profile_picture_url": {
    "label": "Owner / Profile Picture URL",
    "format": "image"
  },
  "owner.is_verified": {
    "label": "Owner / Is Verified",
    "format": "boolean"
  },
  "caption": {
    "label": "Caption",
    "format": "string"
  },
  "post_id": {
    "label": "Post ID",
    "format": "string"
  },
  "post_url": {
    "label": "Post URL",
    "format": "string"
  },
  "album_id": {
    "label": "Album ID",
    "format": "string"
  },
  "album_type": {
    "label": "Album Type",
    "format": "string"
  },
  "reactions_count": {
    "label": "Reactions Count",
    "format": "integer"
  },
  "comments_count": {
    "label": "Comments Count",
    "format": "integer"
  },
  "shares_count": {
    "label": "Shares Count",
    "format": "integer"
  },
  "reactions.id": {
    "label": "Reactions / ID",
    "format": "array"
  },
  "reactions.type": {
    "label": "Reactions / Type",
    "format": "array"
  },
  "reactions.count": {
    "label": "Reactions / Count",
    "format": "array"
  },
  "tags.id": {
    "label": "Tags / ID",
    "format": "array"
  },
  "tags.page_id": {
    "label": "Tags / Page ID",
    "format": "array"
  },
  "tags.username": {
    "label": "Tags / Username",
    "format": "array"
  },
  "tags.name": {
    "label": "Tags / Name",
    "format": "array"
  },
  "tags.url": {
    "label": "Tags / URL",
    "format": "array"
  },
  "tags.profile_picture_url": {
    "label": "Tags / Profile Picture URL",
    "format": "array"
  },
  "tags.is_verified": {
    "label": "Tags / Is Verified",
    "format": "array"
  },
  "tags.x": {
    "label": "Tags / X",
    "format": "array"
  },
  "tags.y": {
    "label": "Tags / Y",
    "format": "array"
  },
  "product_tags.id": {
    "label": "Product Tags / ID",
    "format": "array"
  },
  "product_tags.name": {
    "label": "Product Tags / Name",
    "format": "array"
  },
  "product_tags.url": {
    "label": "Product Tags / URL",
    "format": "array"
  },
  "previous_photo.id": {
    "label": "Previous Photo / ID",
    "format": "text"
  },
  "previous_photo.type": {
    "label": "Previous Photo / Type",
    "format": "text"
  },
  "previous_photo.url": {
    "label": "Previous Photo / URL",
    "format": "link"
  },
  "next_photo.id": {
    "label": "Next Photo / ID",
    "format": "text"
  },
  "next_photo.type": {
    "label": "Next Photo / Type",
    "format": "text"
  },
  "next_photo.url": {
    "label": "Next Photo / URL",
    "format": "link"
  },
  "post.id": {
    "label": "Post / ID",
    "format": "text"
  },
  "post.story_id": {
    "label": "Post / Story ID",
    "format": "text"
  },
  "post.url": {
    "label": "Post / URL",
    "format": "link"
  },
  "post.type": {
    "label": "Post / Type",
    "format": "text"
  },
  "post.message": {
    "label": "Post / Message",
    "format": "text"
  },
  "post.timestamp": {
    "label": "Post / Timestamp",
    "format": "number"
  },
  "post.published_at": {
    "label": "Post / Published At",
    "format": "date"
  },
  "post.reactions_count": {
    "label": "Post / Reactions Count",
    "format": "number"
  },
  "post.comments_count": {
    "label": "Post / Comments Count",
    "format": "number"
  },
  "post.shares_count": {
    "label": "Post / Shares Count",
    "format": "number"
  },
  "post.views_count": {
    "label": "Post / Views Count",
    "format": "number"
  },
  "post.image_url": {
    "label": "Post / Image URL",
    "format": "image"
  },
  "post.thumbnail_url": {
    "label": "Post / Thumbnail URL",
    "format": "image"
  },
  "post.video_url": {
    "label": "Post / Video URL",
    "format": "link"
  },
  "post.feedback_id": {
    "label": "Post / Feedback ID",
    "format": "text"
  },
  "post.is_sponsored": {
    "label": "Post / Is Sponsored",
    "format": "boolean"
  },
  "post.is_pinned": {
    "label": "Post / Is Pinned",
    "format": "boolean"
  },
  "post.author.id": {
    "label": "Post / Author / ID",
    "format": "text"
  },
  "post.author.page_id": {
    "label": "Post / Author / Page ID",
    "format": "text"
  },
  "post.author.username": {
    "label": "Post / Author / Username",
    "format": "text"
  },
  "post.author.name": {
    "label": "Post / Author / Name",
    "format": "text"
  },
  "post.author.url": {
    "label": "Post / Author / URL",
    "format": "link"
  },
  "post.author.profile_picture_url": {
    "label": "Post / Author / Profile Picture URL",
    "format": "image"
  },
  "post.author.is_verified": {
    "label": "Post / Author / Is Verified",
    "format": "boolean"
  },
  "post.reactions.id": {
    "label": "Post / Reactions / ID",
    "format": "array"
  },
  "post.reactions.type": {
    "label": "Post / Reactions / Type",
    "format": "array"
  },
  "post.reactions.count": {
    "label": "Post / Reactions / Count",
    "format": "array"
  },
  "post.media.id": {
    "label": "Post / Media / ID",
    "format": "array"
  },
  "post.media.type": {
    "label": "Post / Media / Type",
    "format": "array"
  },
  "post.media.url": {
    "label": "Post / Media / URL",
    "format": "array"
  },
  "post.media.image_url": {
    "label": "Post / Media / Image URL",
    "format": "array"
  },
  "post.media.thumbnail_url": {
    "label": "Post / Media / Thumbnail URL",
    "format": "array"
  },
  "post.media.video_url_hd": {
    "label": "Post / Media / Video URL HD",
    "format": "array"
  },
  "post.media.video_url_sd": {
    "label": "Post / Media / Video URL SD",
    "format": "array"
  },
  "post.media.dash_manifest_url": {
    "label": "Post / Media / Dash Manifest URL",
    "format": "array"
  },
  "post.media.dash_manifest": {
    "label": "Post / Media / Dash Manifest",
    "format": "array"
  },
  "post.media.duration_ms": {
    "label": "Post / Media / Duration Ms",
    "format": "array"
  },
  "post.media.width": {
    "label": "Post / Media / Width",
    "format": "array"
  },
  "post.media.height": {
    "label": "Post / Media / Height",
    "format": "array"
  },
  "post.media.alt_text": {
    "label": "Post / Media / Alt Text",
    "format": "array"
  },
  "post.media.captions_url": {
    "label": "Post / Media / Captions URL",
    "format": "array"
  }
}
```

## About this Actor

This example demonstrates how to use [Facebook Photo Details Scraper – Captions & Tags](https://apify.com/scrapingmonkey/facebook-photo-details-scraper.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/scrapingmonkey/facebook-photo-details-scraper.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

This Task's input is already configured above. Use it as-is rather than inventing a new one.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/scrapingmonkey/facebook-photo-details-scraper.md

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).
