Instagram Reels Scraper avatar

Instagram Reels Scraper

Pricing

from $2.93 / 1,000 results

Go to Apify Store
Instagram Reels Scraper

Instagram Reels Scraper

Collect public Instagram Reels, posts, IGTV-style media, and carousels from one username. Download post media and return 62-field records with storage URLs and structured metadata.

Pricing

from $2.93 / 1,000 results

Rating

5.0

(2)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

4

Bookmarked

49

Total users

1

Monthly active users

10 days ago

Last modified

Share

Instagram Reels Scraper is an instagram profile media scraper that turns one public account into 64-field post records with downloaded images, videos, covers, avatars, and audio artwork. Use it to collect Reels, feed images, and image, video, or mixed carousels in one consistent Dataset without supplying an Instagram login.

Apify Users Apify Runs $0.0039 per result 64 fields API + MCP ready

  • One-account timeline input: provide a username, @handle, or complete Instagram profile URL.
  • 64 documented fields: each saved row uses one contract across Reels, feed images, and carousels.
  • Durable run assets: post media, covers, owner avatars, and available audio artwork are downloaded before publication.
  • Returned-row billing: a Result event is charged only when a post is saved to the default Dataset.

The smallest useful run requests one post and costs at most $0.0139 on the FREE tier: $0.01 for Actor Start plus $0.0039 for one returned Result.

Why Choose Instagram Reels Scraper

  • One row per public post joins post identity, owner, caption, engagement, media, audio, location, and relationship signals without separate format-specific tables.
  • Stored media delivery replaces expiring source media links with Actor storage URLs for every required image or video before the row is published.
  • Format-aware normalization distinguishes Reels, feed images, and image, video, or mixed carousels while preserving Instagram's product and numeric media types.
  • Rare public context keeps tagged-user coordinates, coauthors, sponsors, original-content attribution, wearable capture attribution, and content notices when Instagram exposes them.
  • Bounded partial-run behavior keeps usable posts when another candidate or media file is unavailable and never publishes half-resolved media rows.

This Actor starts from one known account. It is not creator discovery, hashtag search, Explore trend discovery, private-content access, a comments archive, or a tool for downloading a single post URL.

Quick Start Guide

1. Configure

Open the Input tab and keep the prefilled instagram account for the first run. A bare username, @instagram, or https://www.instagram.com/instagram/ resolves to the same account.

2. Run

Set max_results to 1, start the Actor, and wait for a terminal status. The limit controls successfully published rows; an unavailable candidate does not consume the requested output slot.

3. Collect

Open the default Dataset and inspect post_url, post_type, media_items, and the Actor storage URLs. Export JSON, CSV, Excel, XML, or another Apify Dataset format after confirming the record fits the workflow.

Input Parameters

Instagram Reels Scraper has two required inputs, used identically by Console, API, Task, Schedule, and MCP runs.

ParameterTypeRequiredDescriptionExample
usernamestringYesOne Instagram username, @handle, or profile URL. Post routes, foreign hosts, ports, spaces, and unsupported characters are rejected.instagram
max_resultsintegerYesPositive ceiling on successfully published Dataset rows. Source exhaustion or unavailable media can return fewer.1
{
"username": "instagram",
"max_results": 1
}

The profile identity changes both the profile-resolution request and the paginated feed request. max_results stops collection after that many rows have passed formatting, media download, storage upload, and Dataset publication.

Output Data Schema

One Dataset row represents one public Instagram post with 64 top-level fields; nested arrays remain ordered and missing source values stay null or empty.

GroupFieldsMeaning
Identityplatform, post_id, shortcode, post_url, post_type, product_type, media_typeStable post identity and normalized/source classifications
Ownerowner_id, owner_username, owner_name, owner_url, owner_verified, owner_avatarPublic owner context and downloaded avatar
Captioncaption, caption_edited, caption_lang, alt_text, hashtags, mentions, published_atText, source language, accessibility, extracted references, and publication time
Engagementlike_count, comment_count, play_count, duration, counts_hiddenCollection-time counts and video duration
Media summarywidth, height, cover_url, media_count, image_count, video_count, is_carousel, has_video, has_audioDimensions, stored cover, and post composition
Place and peoplelocation_id, location_name, location_lat, location_lng, location_address, tagged_users, coauthorsOptional public place, tags with coordinates, and collaborators
State and attributioncomments_disabled, is_branded, sponsors, is_pinned, is_downloadable, is_remixable, content_notice, attributions, capture_infoPublic post state, partnerships, notices, and original/capture context
Audioaudio_type, audio_title, artist_name, audio_id, canonical_id, audio_ms, artwork_url, sound_owner, audio_reusable, audio_trending, mashup_countLicensed or original-audio identity and availability
Assets and provenancemedia_items, processor, processed_atOrdered stored assets and Actor processing provenance

Abbreviated example; a real row contains all 64 top-level fields and media_items can contain several carousel parts:

{
"platform": "instagram",
"post_id": "3958568374678234686_25025320",
"shortcode": "DbvqPafyqY-",
"post_url": "https://www.instagram.com/reel/DbvqPafyqY-/",
"post_type": "reel",
"owner_username": "instagram",
"caption": "A public Instagram caption",
"published_at": "2026-07-24T18:43:05+00:00",
"like_count": 333091,
"comment_count": 18435,
"play_count": 61839889,
"cover_url": "https://api.apify.com/v2/key-value-stores/example/records/cover.jpg",
"media_count": 1,
"media_items": [
{
"position": 1,
"media_type": "video",
"media_url": "https://api.apify.com/v2/key-value-stores/example/records/video.mp4",
"width": 720,
"height": 1280,
"has_audio": true
}
],
"processor": "https://apify.com/agentx/instagram-reels-scraper",
"processed_at": "2026-08-12T12:00:00+00:00"
}

Integration Examples

The public Actor ID is jovODBRjNhF52fF9D; the name form agentx/instagram-reels-scraper is also valid in Apify clients.

Actor ID

Use jovODBRjNhF52fF9D when an integration requires the immutable Actor ID, and agentx/instagram-reels-scraper when a human-readable name is preferred.

HTTP

curl -X POST "https://api.apify.com/v2/acts/jovODBRjNhF52fF9D/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username":"instagram","max_results":1}'

Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("jovODBRjNhF52fF9D").call(
run_input={"username": "instagram", "max_results": 1}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["post_url"], item["post_type"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('jovODBRjNhF52fF9D').call({
username: 'instagram',
max_results: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]?.post_url, items[0]?.post_type);

Make.com and n8n

Send {"username":"instagram","max_results":1} to the Actor run endpoint, wait for completion, then read the run's default Dataset. Store post_id downstream as the deduplication key for scheduled snapshots.

MCP

Add jovODBRjNhF52fF9D to the Actor allowlist of the Apify MCP server, then ask the connected client to run it with username=instagram and max_results=1. Keep the Apify token in the MCP server environment rather than the prompt.

Pricing

Instagram Reels Scraper costs $0.0039 per Result on the FREE tier plus the one-time $0.01 Actor Start event.

EventFREE priceCharged when
Actor Start$0.01The run starts; memory scaling follows Apify's event rules
Result$0.0039One complete post row is saved to the default Dataset
Returned postsMaximum FREE-tier event total
1$0.0139
10$0.0490
100$0.4000

Unavailable candidates and failed media transfers do not produce a Result event. Apify plan credits and future pricing changes can affect the amount billed; set a maximum total charge when a hard run-level ceiling matters.

Use Cases

  • Creative-format analysis: compare post_type, dimensions, duration, audio reuse, captions, and engagement across one account's recent timeline.
  • Brand content monitoring: schedule one-result or small recurring runs, join on post_id, and retain collection-time engagement snapshots.
  • Media archiving: collect Actor storage URLs for images, videos, covers, avatars, and artwork during the run instead of keeping expiring source CDN links.
  • Partnership review: inspect is_branded, sponsors, coauthors, tagged users, and content notices as source-provided signals.
  • Data and AI pipelines: export 64-field rows for tabular analysis, media indexing, RAG metadata, or downstream classification while keeping source and processing timestamps separate.

Alternatives

Use Instagram Creator Scraper when the unit is a profile rather than a post. Use Instagram Trending Scraper when the starting point is Explore content rather than a known account. Use Instagram Video Transcript when the goal is speech-to-text for one known video.

For account-owned, permissioned integrations, compare this workflow with Meta's official Instagram API documentation. Manual review remains simpler for a single visual inspection, and a custom Actor is appropriate when a different input or Dataset contract is mandatory.

Limits and Troubleshooting

  • Only publicly available account timelines are supported; private, removed, or blocked profiles cannot yield public posts.
  • max_results is a ceiling, not a promise. Timeline exhaustion and unavailable candidates can reduce the output.
  • Every required post media item must download and upload successfully before the row is published. Optional avatar or artwork failures become null.
  • Engagement and availability reflect collection time and can change after the run.
  • The Actor does not collect full comments, Stories, private media, follower lists, or hashtag search results.
  • A zero-row run usually means the profile is unavailable, private, empty, or temporarily blocked. Retry a known public account with max_results=1 before increasing volume.

Trust and Reliability

The Dataset contract was verified against 288 fresh raw posts from 13 public accounts and covered first-page and pagination paths, Reels, feed images, and image, video, and mixed carousels. The final 64-field sample set had zero zero-fill fields, zero duplicate columns, and zero malformed or sentinel URL values.

Rows are published only after identity, media structure, downloads, storage writes, and the centralized Dataset push succeed. One candidate failure remains isolated, normalized duplicates are ignored, and printing occurs after a successful push. These mechanics preserve a clear difference between a source candidate and a billed Dataset result.

Source facts are not independent verification. Verification, partnership, reuse, location, engagement, and content-notice fields mean that Instagram exposed the signal at collection time.

Public-data scope: the Actor requests public profile and post information and does not authenticate into private accounts.

User responsibility: review Instagram's terms, privacy obligations, intellectual-property rights, and the lawful basis for storing or processing collected data in the intended jurisdiction.

Media rights: a technically downloadable file is not a license to republish it. Preserve attribution and obtain permissions required for redistribution, model training, advertising, or commercial reuse.

Frequently Asked Questions

How do I download all reels and posts from an instagram profile?

Run Instagram Reels Scraper with the account's username or profile URL and a positive max_results. It returns the newest usable timeline rows until the requested ceiling or the visible feed ends, downloading each row's media into Actor storage.

Can I use a bulk instagram reels scraper by username?

This Actor accepts one username per run, not a list. Create separate Tasks or API calls when multiple accounts are required, and join results downstream by owner_username and post_id.

Does Instagram Reels Scraper collect only Reels?

No. The account timeline can return Reels, feed images, and image, video, or mixed carousels under the same 64-field contract.

Can I pass an @handle or profile URL?

Yes. A bare username, @handle, instagram.com/<username>, and a complete HTTP or HTTPS Instagram profile URL are normalized. Post URLs, routes with extra segments, foreign hosts, explicit ports, and whitespace are rejected.

Are likes, comments, and plays current?

They are snapshots from collection time. Counts can change later, and play_count is null for formats where Instagram does not expose it.

Is there a free Instagram media API?

Apify account credits may cover small tests, but the Actor is pay per event. One returned post has a maximum FREE-tier event total of $0.0139 before any plan-credit treatment.

Can I schedule runs to monitor an Instagram account over time?

Yes. Create an Apify Task, attach a Schedule, request a small result count, and deduplicate snapshots downstream on post_id while retaining processed_at for collection time.

Does a successful run guarantee the requested number of rows?

No. It guarantees only that the run completed; source exhaustion and unavailable posts can produce fewer rows than max_results.

AgentX currently publishes a full catalog of Actors; start with the three closest Instagram and media workflows, then browse every other Actor by category.

Closest to this Actor:

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate

Support and Community

Ask about Instagram post fields, stored media, or scheduled account snapshots in the AgentX community on Telegram; for a reproducible bug, open an Issue with the run ID and the exact non-secret input.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: August 12, 2026