Instagram Reel Scraper
Pricing
from $3.51 / 1,000 results
Instagram Reel 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 $3.51 / 1,000 results
Rating
5.0
(2)
Developer
AgentX
Maintained by CommunityActor stats
3
Bookmarked
45
Total users
8
Monthly active users
a day ago
Last modified
Categories
Share
Instagram Reel Scraper collects public Instagram Reels, feed posts, IGTV-style media, and carousels from one username and returns consistent records for research, monitoring, and data workflows.
- Two required inputs: one bare
usernameandmax_results - Exactly 62 documented top-level fields in every published Dataset row
- Downloads every post image, video, and available cover to the run Key-Value Store
- Captions, hashtags, mentions, engagement snapshots, owner context, media parts, audio, location, and relationship signals
- Pay-per-event pricing from $0.00390 per Result on the FREE tier, plus the Actor Start event
Run a one-result test · View the Actor API
Start with one result. Public availability and nullable fields are source-dependent, while downloaded post media consumes run storage, so the smallest run is the safest way to confirm fit before scaling.
Why Choose This API
Instagram Reel Scraper is designed for workflows that need a normalized account-post Dataset rather than manual profile review. One run accepts one public username, follows the available account timeline, and publishes up to the requested number of successfully resolved posts.
The same 62-field contract covers single images, feed videos, Reels, older IGTV-style records, and image, video, or mixed carousels. This makes exports easier to compare across post formats without treating a Reel, carousel, and feed image as unrelated record types.
Choose this Actor when you need recent public account content with post identity, owner details, caption text, publish time, engagement snapshots, media structure, optional source signals, and processing provenance. Choose manual review for a one-off visual check. Choose a custom integration when you require a different input model, private content, or a bespoke output contract.
Source values remain evidence from the moment of collection, not independent verification. Like, comment, play, and view counts can change. Verification and partnership fields are raw platform signals. Comment samples are not a complete comment archive. Post images, videos, and covers are downloaded into the run Key-Value Store; profile and audio URLs remain source-dependent and can expire.
Quick Start Guide
- Open the Actor and enter a bare Instagram username such as
instagram. - Set
max_resultsto1for the first run. - Start the run, wait for a terminal status, and inspect the default Dataset.
- Confirm the returned fields and source availability before increasing the result limit.
{"username": "instagram","max_results": 1}
If no row is published, check that the account is public and currently available, then review the terminal status and run log. A valid request can still return fewer rows than requested when the visible timeline ends or individual posts are unavailable.
Input Parameters
| Field | Type | Required | Description |
|---|---|---|---|
username | string | Yes | One bare Instagram username, up to 30 characters; letters, numbers, periods, and underscores only |
max_results | integer | Yes | Maximum successfully published Dataset rows, from 1 to 1,000,000 |
Do not submit @instagram, a profile URL, a post URL, a slash, query string, fragment, whitespace, or unsupported characters as username. The Actor rejects those formats instead of guessing the intended account.
max_results is an output ceiling, not a guarantee. The Actor can inspect later candidates after an unavailable post, but account visibility, feed exhaustion, source restrictions, and the platform run limit can still produce fewer rows.
Output Data Schema
Every published row contains 62 top-level fields. Nullable values remain null when Instagram does not expose them, while collection fields such as hashtags or sponsor tags can be empty arrays.
| Group | Representative fields | What the group describes |
|---|---|---|
| Post identity | post_id, shortcode, post_url, post_type, instagram_product_type, instagram_media_type | Stable source identifiers and normalized format |
| Owner | owner_id, owner_username, owner_full_name, owner_is_verified, owner_is_private, owner_profile_pic_url | Publishing account context and raw flags |
| Caption and time | caption, hashtags, mentions, published_at, published_timestamp, caption_created_at | Text, ASCII-letter/digit/underscore hashtags, extracted references, and timestamps |
| Engagement | like_count, comment_count, play_count, view_count, like_and_view_counts_disabled | Processing-time source counts and visibility state |
| Media | cover_url, media_items, media_count, image_count, video_count, is_carousel, has_video, has_audio | Images, videos, carousel parts, dimensions, and audio presence |
| Context | location_*, tagged_users, coauthors, sponsor_tags, top_comments | Optional place, relationship, sponsorship, and comment-sample data |
| Audio | audio_type, audio_title, audio_artist, audio_asset_id, audio_duration_ms, audio_preview_url, audio_is_trending | Optional music or original-audio metadata |
| Provenance | processor, processed_at | Actor identity and UTC processing time |
Abbreviated example:
{"post_id": "3946975519354428264","shortcode": "DbGeVKoSJto","post_url": "https://www.instagram.com/reel/DbGeVKoSJto/","post_type": "reel","owner_username": "instagram","caption": "Example caption","published_at": "2026-07-22T16:04:53+00:00","like_count": 86903,"comment_count": 6083,"cover_url": "https://api.apify.com/v2/key-value-stores/example/records/cover.jpg","media_count": 1,"has_video": true,"media_items": [{"position": 1,"media_type": "video","media_url": "https://api.apify.com/v2/key-value-stores/example/records/video.mp4","has_audio": true}],"processor": "https://apify.com/agentx/instagram-reel-scraper","processed_at": "2026-07-28T12:00:00+00:00"}
The example is intentionally abbreviated; the Dataset schema is the authoritative field list. cover_url and nested media_items URLs point to files downloaded into the run Key-Value Store. owner_profile_pic_url, audio_cover_url, and audio_preview_url remain source URLs and can expire. Stored post media follows the retention and deletion rules of the associated Apify storage; it is not permanent hosting.
Integration Examples
The Actor ID is agentx/instagram-reel-scraper. Keep the Apify token in a secret and use the same one-result scenario across integrations.
HTTP API
curl -X POST "https://api.apify.com/v2/actors/agentx~instagram-reel-scraper/runs?waitForFinish=60" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"username":"instagram","max_results":1}'
The Run Actor endpoint returns a run object. If the status is not terminal after the wait period, poll the run and then read items from its defaultDatasetId. Apify’s current API documentation recommends the Authorization header instead of placing the token in the URL.
Python client
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("agentx/instagram-reel-scraper").call(run_input={"username": "instagram", "max_results": 1})if run is None:raise RuntimeError("Actor run did not start")items = client.dataset(run.default_dataset_id).list_items().items
MCP
The hosted Apify MCP server can expose Store Actors through its authenticated call-actor tool. Enable that tool, select agentx/instagram-reel-scraper, and pass the same two-field input. Actor execution and storage access require authentication.
Pricing & Cost Calculator
The release registers two charged events: Actor Start and Result. A Result is one successfully published row in the default Dataset.
| Tier | Result price |
|---|---|
| FREE | $0.00390 |
| BRONZE | $0.00351 |
| SILVER | $0.00312 |
| GOLD | $0.00293 |
| PLATINUM | $0.00293 |
| DIAMOND | $0.00293 |
Actor Start is $0.01000 per start event. At the default 256 MB memory setting, a smallest useful FREE-tier run that publishes one row is approximately $0.01000 + $0.00390 = $0.01390. One hundred published FREE-tier rows in one run are approximately $0.40000.
Charges follow actual events, not the requested maximum. A run that publishes fewer rows creates fewer Result events. Use Apify’s run-level maximum charge option when a hard spending boundary matters, and reconcile costs against the run’s recorded charged events.
Use Cases & Applications
Account content research
Compare recent post formats, captions, hashtags, mentions, publish times, and available engagement values for one public account. Repeat runs create new snapshots; they do not retroactively update older Dataset rows.
Creative format analysis
Separate feed images, feed videos, Reels, IGTV-style records, and carousel types. Inspect media-part counts, dimensions, covers, tagged accounts, coauthors, and available audio labels before selecting examples for deeper review.
Brand monitoring
Preserve post URLs, owner identity, source timestamps, processing time, and available counts for periodic review. Do not treat count changes as proof of reach quality, paid distribution, causation, or campaign success without additional evidence.
Data and AI workflows
Use the normalized record as input for classification, summarization, search, or analysis. Apply moderation and minimization to captions and comment samples. Do not infer protected traits, identity authenticity, sponsorship validity, or brand safety from isolated names, images, flags, or comments.
FAQ
Does Instagram Reel Scraper collect only Reels?
No. It collects public account posts and normalizes Reels, feed images, feed videos, older IGTV-style records, and image, video, or mixed carousels.
Does max_results guarantee the Dataset size?
No. It is the maximum number of successfully published rows. Public availability, feed exhaustion, removed or restricted posts, source blocking, and the platform run limit can reduce the result count.
Are likes, comments, plays, and views current?
They are snapshots of values exposed when the row is processed. Values can change later, and some counts can be hidden or unavailable.
Are audio, location, comments, and relationship fields always present?
No. These groups are source-dependent. Missing scalar values can be null, and collection fields can be empty.
Does hashtag extraction cover every writing system?
No. The current Dataset extracts hashtags made from ASCII letters, digits, and underscores. Non-Latin hashtag text can remain only in the original caption and may be absent from hashtags.
Can I pass a profile URL, post URL, or @handle?
No. Submit one bare username. URLs, @, slashes, queries, fragments, whitespace, unsupported characters, and names longer than 30 characters are rejected.
Does the Actor download or permanently store media files?
The Actor downloads every post image, video, and available cover before publishing that post, uploads each unique file to the run Key-Value Store, and returns those storage URLs in cover_url and media_items. The files are not permanent: their lifetime follows the associated Apify storage retention and deletion settings.
Are verification, partnership, and sponsor fields independently checked?
No. They are raw source signals. Confirm identity, ownership, sponsorship, and disclosure obligations separately before making consequential decisions.
What should I include in a support request?
Include the Actor name, run ID, Dataset ID, UTC time, non-secret input, requested and returned counts, the affected post ID or shortcode, and the exact missing or unexpected field. Never publish API tokens or infrastructure credentials.
Data Interpretation & Reliability
Every published row follows the documented 62-field Dataset schema. Required identifiers and downloaded post media are available before a post is published, while source-dependent values such as audio, location, comments, and engagement counts can remain null or empty.
Instagram account verification, content ownership, audience quality, engagement quality, comments, locations, sponsorships, music rights, and media rights are outside the Actor’s certification boundary. Review important records against the current source and use independent checks for high-impact decisions.
The Actor does not promise full profile history, permanent media retention, complete comments, uninterrupted source access, or a specific result count. A terminal successful run confirms the run ended; always inspect the Dataset and associated Key-Value Store before accepting downstream completeness.
Legal & Compliance
Review the current Instagram Terms of Use, Meta Privacy Policy, applicable intellectual-property rights, privacy laws, platform rules, and contractual restrictions before collecting or reusing data.
Public visibility does not automatically authorize unrestricted copying, publication, model training, profiling, or outreach. Collect only the fields needed for a documented purpose. Apply access controls, retention limits, deletion procedures, and moderation for captions or comments that can contain personal, offensive, or unstable content.
Do not use this Actor to bypass access controls or collect private content. Media, captions, music, trademarks, profile images, tagged accounts, locations, and user comments can carry third-party rights and privacy obligations.
Related Tools
Related Instagram and social research:
- Instagram Creator Scraper — public creator profile context
- Instagram Trending Scraper — Explore content with Actor-specific trend labels
- Twitter Info Scraper — public account context on another social platform
Optional multi-source enrichment:
- All Video Scraper — video-oriented workflows across supported sources
- All Shopping Scraper — cross-market product research
- All Property Scraper — cross-market property research
Each Actor has its own input, output, pricing, and source limits. Validate identifiers and timestamps before joining records.
Support & Community
Run a one-result test · View the Actor API · Contact AiAgentApi support
For reproducible support, include non-secret evidence only. Never share API tokens, account credentials, infrastructure URLs, or personal data in a public ticket.