# Instagram Reels Scraper — No Login Required (`sones/instagram-reels-scraper-lowcost`) Actor

Scrape public Instagram Reels, captions, engagement metrics, comments, media, and timestamped AI transcripts without cookies or login.

- **URL**: https://apify.com/sones/instagram-reels-scraper-lowcost.md
- **Developed by:** [Samy](https://apify.com/sones) (community)
- **Categories:** Social media, Videos
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 saved reels

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

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## Instagram Reels Scraper — No Login Required

Turn public Instagram Reels into structured, ready-to-use business data—without
Instagram accounts, cookies, or manual collection.

Collect captions, engagement metrics, creator details, media links, recent
comments, and AI transcripts from up to 1,000 public profiles in one run.

**No login. No Instagram credentials. No manual copy-pasting.**

### Why teams use this Actor

- **Research competitors at scale** — compare publishing activity, formats,
  captions, topics, and engagement across brands.
- **Discover creators and partnerships** — identify owners, collaborators,
  tagged accounts, music, and paid-partnership indicators.
- **Monitor content trends** — collect hashtags, mentions, audio metadata,
  publishing dates, views, plays, likes, and comments.
- **Build searchable content libraries** — store videos or audio and add
  timestamped, speaker-labelled transcripts.
- **Automate recurring analysis** — use `newerThan` to collect only recently
  published Reels.

### What you receive

Every Reel result can include:

- caption, hashtags, mentions, shortcode, and canonical Reel URL
- publication date, duration, dimensions, cover image, and media URLs
- likes, comments, plays, Instagram plays, and views when available
- creator name, username, verification status, and profile image
- collaborators, tagged users, location, music, and original-audio details
- paid-partnership and pinned-content indicators
- optional recent comments, stored media, and AI transcription
- optional raw source data for advanced analysis

Unavailable Instagram metrics remain `null`, never a misleading zero.

### Start in minutes

Add usernames, `@usernames`, or complete profile URLs. You can mix all three:

```json
{
  "accounts": [
    "instagram",
    "@natgeo",
    "https://www.instagram.com/nike/"
  ],
  "resultsLimit": 20
}
```

For recurring monitoring, collect only Reels published after a chosen date:

```json
{
  "accounts": ["natgeo", "nike"],
  "resultsLimit": 0,
  "newerThan": "2026-01-01"
}
```

Set `resultsLimit` per profile, or use `0` to continue until Instagram exposes
no more results or the date cutoff is reached.

### Choose the data you need

#### Recent comments

Add the recent comments visible on the public Reel page. This is useful for
sentiment samples, audience-language research, and identifying recurring
questions. Instagram does not expose the complete comment history while logged
out, so this represents a recent preview rather than every comment.

#### Video and audio storage

Store Reel videos or audio-only tracks with your run. Choose storage when you
need durable media for review, archiving, transcription, or downstream
processing. Direct Instagram media links are signed and expire.

#### High-quality AI transcription

Create clean transcripts with:

- automatic language detection
- punctuation and readable text formatting
- speaker-labelled, timestamped segments
- word-level timestamps in milliseconds and readable `HH:MM:SS.mmm` format

Transcription is available to paid Apify users and is billed only after a
completed transcript is saved. Missing audio, provider errors, timeouts, and
failed transcription jobs are not billed.

### Simple, predictable pricing

The Actor uses pay-per-event pricing. You pay for delivered results and the
enrichments you explicitly enable—not for failed requests, retries, or internal
network fallback.

| Delivered item | Bronze price |
| --- | ---: |
| Saved Reel | $0.0013 |
| Recent-comments result | $0.0012 |
| Stored video, per started MiB | $0.007 |
| Stored audio, per started MiB | $0.004 |
| Transcript, per started 15 seconds | $0.003 |

Examples at Bronze pricing:

- 100 core Reels: approximately **$0.13**
- 1,000 core Reels: approximately **$1.30**
- one 60-second transcript: approximately **$0.012**

A small $0.00005 Actor-start event applies once per run. Prices decrease
automatically for higher Apify tiers. Apify shows the exact applicable event
prices before you start a run.

### Designed for dependable recurring collection

The Actor automatically handles temporary access problems and continues
processing healthy profiles when an individual account is unavailable. A
single failed profile does not discard successful results from the rest of your
list.

You do not need to tune performance settings. Recovery and network fallback are
included in the result price.

### Export and use the data anywhere

Results are available in the Apify dataset and through the API, ready for:

- spreadsheets and business-intelligence dashboards
- competitor and campaign reporting
- creator databases and outreach workflows
- data warehouses and internal APIs
- AI classification, summarization, and semantic search
- scheduled monitoring and downstream automations

Core Reels, comments, stored media, and transcripts are returned as clear,
separate records, making them easy to filter and connect in downstream
workflows.

### Frequently asked questions

#### Do I need an Instagram account?

No. The Actor works with public Instagram profiles and does not accept or
require Instagram credentials.

#### Can I scrape a profile URL instead of a username?

Yes. You can use a username, an `@username`, or a full Instagram profile URL in
the same input list.

#### Can I collect only new Reels?

Yes. Set `newerThan` to a date or timestamp to skip older content. This is ideal
for scheduled monitoring.

#### Does it return every comment?

No. It returns the recent comments available on the public Reel page. Instagram
does not expose the complete comment history while logged out.

#### Are videos and transcripts included automatically?

They are optional so you stay in control of cost. Enable video storage, audio
storage, recent comments, or transcription only when you need them.

#### What happens when Instagram does not expose a metric?

The field is returned as `null`. Missing values are never presented as fake
zeroes.

### Important limitations

- Public Instagram profiles only
- No access to private profiles or login-protected content
- Historical depth varies by profile and Instagram availability
- Recent comments are a preview, not the complete comment history
- Shares and saves may be unavailable while logged out
- Direct Instagram media URLs expire unless storage is enabled
- Instagram's public interfaces can change, which may temporarily affect
  individual profiles or fields

### Responsible use

This Actor accesses publicly available profile data only and does not bypass
authentication. You are responsible for using the results in accordance with
applicable laws, privacy requirements, and the terms that apply to your use
case.

# Actor input Schema

## `accounts` (type: `array`):

Public usernames, @usernames, or full Instagram profile URLs. You can mix all three formats; duplicates are removed automatically.

## `resultsLimit` (type: `integer`):

Maximum Reels saved for each profile. Use 0 to follow cursors until Instagram exposes no more results.

## `newerThan` (type: `string`):

Optional ISO date/time or YYYY-MM-DD cutoff. Pagination stops after reaching older Reels.

## `includeRawData` (type: `boolean`):

Attach the permissively parsed source media object to each Reel result. Useful when Instagram adds fields before this Actor maps them.

## `includeRecentComments` (type: `boolean`):

Fetch the recent comments embedded in the logged-out Reel page. This is not the complete comment history. Each successful page triggers `comments-page`.

## `downloadVideo` (type: `boolean`):

Download signed MP4 files into the run key-value store. Charged per started MiB as `video-mib`.

## `downloadAudio` (type: `boolean`):

Download the smaller audio-only MP4 track. Charged per started MiB as `audio-mib`.

## `transcriptionMode` (type: `string`):

Generate a high-quality transcript with automatic language detection, speaker-labelled segments, and word-level timestamps. Each successful job triggers `transcription-15-seconds` per started 15 seconds.

## `proxyMode` (type: `string`):

Automatic starts with the lowest-cost route and applies internal fallbacks only when needed. Proxy fallback is included in result pricing.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy group and country used only when the selected strategy reaches its Apify route.

## Actor input object example

```json
{
  "accounts": [
    "natgeo",
    "@nike",
    "https://www.instagram.com/instagram/"
  ],
  "resultsLimit": 10,
  "newerThan": "2026-01-01",
  "includeRawData": false,
  "includeRecentComments": false,
  "downloadVideo": false,
  "downloadAudio": false,
  "transcriptionMode": "disabled",
  "proxyMode": "automatic",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "accounts": [
        "instagram"
    ],
    "resultsLimit": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("sones/instagram-reels-scraper-lowcost").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 = {
    "accounts": ["instagram"],
    "resultsLimit": 10,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("sones/instagram-reels-scraper-lowcost").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 '{
  "accounts": [
    "instagram"
  ],
  "resultsLimit": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call sones/instagram-reels-scraper-lowcost --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/eOPtbq4fMd7vrkv81/builds/6x7fJhXDxWp3K2z6Z/openapi.json
