# Instagram Reel Scraper (`futurizerush/instagram-reel-scraper`) Actor

Collect public Instagram Reels from usernames, profile URLs, profile Reels pages, and Reel URLs. Exports captions, creator details, thumbnails, selected metrics, and media details when available. (Beta)

- **URL**: https://apify.com/futurizerush/instagram-reel-scraper.md
- **Developed by:** [Rush](https://apify.com/futurizerush) (community)
- **Categories:** AI, Agents, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Instagram Reel Scraper

Collect public Instagram Reels from usernames, profile URLs, profile Reels pages, and direct Reel URLs. The Actor exports spreadsheet-friendly, analysis-ready rows with captions, creator details, hashtags, mentions, thumbnails, source links, available public engagement fields, and selected video metadata when Instagram exposes them.

[Explore more social media scrapers](https://apify.com/futurizerush?fpr=rush)

### Features

- Collect public Reels from Instagram usernames, profile URLs, profile Reels pages, and direct Reel URLs.
- Export one spreadsheet-friendly row per Reel for dashboards, exports, and automation workflows.
- Include public creator details, captions, hashtags, mentions, thumbnails, engagement fields, and video metadata when available.
- Mark rows as partial when a public lookup completes but important media details are not available.
- Keep private or temporarily unavailable sources out of the dataset and explain them in the run summary.

### What You Can Scrape

- Public Instagram profile URLs, such as `https://www.instagram.com/nasa/`
- Instagram profile Reels pages, such as `https://www.instagram.com/nasa/reels/`
- Usernames, such as `nasa`
- Direct Reel URLs, such as `https://www.instagram.com/reel/DZYvGYIv1nr/` or `https://www.instagram.com/reels/DZYvGYIv1nr/`

Direct Reel URLs are saved with the public details available during the run. If important media details are not available, the Actor saves a partial row with `isPartial: true` and a clear `partialReason`.

### Input

| Field | Type | Description |
|---|---:|---|
| `startUrls` | array | Instagram usernames, profile URLs, profile Reels page URLs, or direct Reel URLs. Range: `1` to `100` inputs. |
| `maxReelsPerProfile` | integer | Maximum number of recent public Reel rows to save for each profile-style input. Default: `30`. Range: `1` to `200`. Direct Reel URLs are saved once each. |

```json
{
  "startUrls": ["nasa", "https://www.instagram.com/nasa/reels/"],
  "maxReelsPerProfile": 10
}
````

### How to Use

1. Add one or more Instagram usernames, profile URLs, profile Reels page URLs, or direct Reel URLs.
2. Choose the maximum number of recent public Reel rows to save for each profile-style input.
3. Start the Actor and download results from the dataset.

### Output

Each dataset row is one Reel result. Output is designed to stay spreadsheet-friendly so it is easy to filter, export, and use in dashboards or automation workflows.

The Apify dataset preview includes 📋 Overview for common fields and 🎬 Media assets for public media URLs and media metadata. Use the All fields toggle in Apify Console, or export the dataset, to review every saved field.

For profile inputs, rows can include Reels owned by the profile or associated with it through public collaboration or tag information.

| Field | Description |
|---|---|
| `inputValue` | Original input value that produced the row. |
| `sourceType` | `profile` or `reel`. |
| `profileUsername`, `profileRelation` | For profile inputs, shows the requested profile and how the Reel is associated with it. |
| `reelId`, `mediaPk`, `shortCode`, `reelUrl`, `postUrl`, `type`, `mediaType`, `productType` | Reel references, public Reel links, and available media labels. |
| `caption`, `captionIsEdited`, `captionCreatedAt`, `captionCreatedAtUnix`, `hashtags`, `mentions` | Public caption text, caption timing, and extracted tags when available. |
| `ownerUsername`, `ownerFullName`, `ownerId`, `ownerProfileUrl`, `ownerProfilePicUrl`, `ownerIsVerified` | Public creator details and profile links when available. |
| `timestamp`, `timestampUnix` | Public publish time when available. |
| `likesCount`, `commentsCount`, `playsCount`, `videoPlayCount` | Public engagement fields when Instagram returns them. `videoPlayCount` is the video-focused play count field when available. |
| `videoDuration`, `videoWidth`, `videoHeight`, `dimensionsWidth`, `dimensionsHeight` | Public video and display dimensions when available. |
| `thumbnailUrl`, `displayUrl`, `imageUrls`, `videoUrl`, `audioUrl` | Public media URLs when available. `displayUrl` is the selected display image and usually matches `thumbnailUrl`. |
| `hasAudio`, `audioType`, `audioTitle`, `audioArtist`, `audioId`, `audioDuration`, `usesOriginalAudio`, `shouldMuteAudio`, `originalLanguage` | Public audio and language information when available. Audio reference fields help group Reels using the same public sound when available. |
| `altText` | Public accessibility text when available. |
| `taggedUsers`, `taggedUserDetails`, `coauthorUsernames`, `coauthorDetails` | Public collaborators and tagged users when available. |
| `isPaidPartnership`, `likeAndViewCountsDisabled`, `commentsDisabled` | Public availability and content indicators when available. |
| `isPartial`, `partialReason` | Whether the row contains only partial public details. |
| `scrapedAt` | UTC time when the row was saved. |

#### Example Output

The example below is illustrative and uses fictional placeholder data.

```json
{
  "inputValue": "examplecreator",
  "sourceType": "profile",
  "profileUsername": "examplecreator",
  "profileRelation": "owner",
  "shortCode": "ABC123example",
  "reelUrl": "https://www.instagram.com/reel/ABC123example/",
  "caption": "New product launch highlights #launch @partner",
  "captionIsEdited": false,
  "captionCreatedAt": "2026-06-01T12:00:03+00:00",
  "captionCreatedAtUnix": 1780315203,
  "hashtags": ["#launch"],
  "mentions": ["@partner"],
  "imageUrls": ["https://example.com/thumbnail.jpg"],
  "taggedUsers": [],
  "taggedUserDetails": [],
  "coauthorUsernames": [],
  "coauthorDetails": [],
  "ownerUsername": "examplecreator",
  "ownerFullName": "Example Creator",
  "timestamp": "2026-06-01T12:00:00+00:00",
  "likesCount": 1200,
  "commentsCount": 48,
  "playsCount": 25000,
  "videoDuration": 18.5,
  "thumbnailUrl": "https://example.com/thumbnail.jpg",
  "videoUrl": "https://example.com/video.mp4",
  "hasAudio": true,
  "audioDuration": 18.5,
  "originalLanguage": "en",
  "isPartial": false,
  "partialReason": null,
  "scrapedAt": "2026-06-14T00:00:00+00:00"
}
```

### Good Use Cases

- Social listening and campaign monitoring
- Creator and competitor content research
- Public Reel discovery for reporting workflows
- Hashtag and mention analysis
- Building datasets for manual review, QA, and trend tracking

### Data Quality Notes

Instagram may hide or omit some public fields depending on the Reel, profile settings, region, or current platform behavior. When a field is not publicly available, the Actor returns `null` or an empty array instead of inventing data.

The Actor does not require an Instagram login, passwords, or private account access. Private or unavailable profiles are skipped with a user-friendly run summary.

After a valid run starts, the run summary shows what was saved, skipped, or could not be completed.

### FAQ

#### Q: Can it scrape private Reels?

No. It collects public data only.

#### Q: Why are some rows marked as partial?

Some public Reel lookups may complete without every media detail, such as a direct video URL. In that case, the Actor saves what is publicly available and marks the row with `isPartial: true`. If a run must stop early, the run summary explains why.

#### Q: Why are some engagement fields empty?

Instagram does not always expose every count for every public Reel. Empty fields mean the value was not publicly available during the run.

#### Q: Does it download video files?

No. It saves public media URLs when Instagram exposes them during the run.

#### Q: Can I use profile URLs and direct Reel URLs together?

Yes. You can mix usernames, profile URLs, profile Reels page URLs, and direct Reel URLs in the same run.

### Disclaimer

This Actor collects publicly available Instagram data. Availability of public fields can change over time. You are responsible for using the exported data in accordance with applicable laws, platform terms, and your own internal policies.

Keywords: Instagram Reel Scraper, Instagram Reels, Instagram scraper, Reels scraper, social media scraping, creator research, hashtag analysis, mention analysis, Apify Actor, public Instagram data, Claude Code, OpenClaw, Gemini, Antigravity, Codex, ChatGPT

# Actor input Schema

## `startUrls` (type: `array`):

Add Instagram usernames, profile URLs, profile /username/reels/ pages, or direct /reel/{code}/ and /reels/{code}/ URLs. Examples: nasa, https://www.instagram.com/nasa/reels/, https://www.instagram.com/reels/DZYvGYIv1nr/

## `maxReelsPerProfile` (type: `integer`):

Only applies to usernames, profile URLs, and profile /username/reels/ page inputs. Choose the maximum number of recent public Reel rows to save for each profile-style input. Direct Reel URLs are saved once each.

## Actor input object example

```json
{
  "startUrls": [
    "nasa"
  ],
  "maxReelsPerProfile": 30
}
```

# Actor output Schema

## `results` (type: `string`):

All saved public Reel results.

# 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 = {
    "startUrls": [
        "nasa"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("futurizerush/instagram-reel-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 = { "startUrls": ["nasa"] }

# Run the Actor and wait for it to finish
run = client.actor("futurizerush/instagram-reel-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    "nasa"
  ]
}' |
apify call futurizerush/instagram-reel-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=futurizerush/instagram-reel-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Reel Scraper",
        "description": "Collect public Instagram Reels from usernames, profile URLs, profile Reels pages, and Reel URLs. Exports captions, creator details, thumbnails, selected metrics, and media details when available. (Beta)",
        "version": "0.0",
        "x-build-id": "gECPAkDEFYzZhfjch"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/futurizerush~instagram-reel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-futurizerush-instagram-reel-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/futurizerush~instagram-reel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-futurizerush-instagram-reel-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/futurizerush~instagram-reel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-futurizerush-instagram-reel-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "🎬 Instagram usernames or URLs",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "Add Instagram usernames, profile URLs, profile /username/reels/ pages, or direct /reel/{code}/ and /reels/{code}/ URLs. Examples: nasa, https://www.instagram.com/nasa/reels/, https://www.instagram.com/reels/DZYvGYIv1nr/",
                        "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 300
                        }
                    },
                    "maxReelsPerProfile": {
                        "title": "📌 Max results per profile",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Only applies to usernames, profile URLs, and profile /username/reels/ page inputs. Choose the maximum number of recent public Reel rows to save for each profile-style input. Direct Reel URLs are saved once each.",
                        "default": 30
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
