

Extract public Reel data in bulk using Instagram URLs, including creator usernames, captions, hashtags, comment counts, like counts, views, play counts, engagement metrics, and more. Supports data export, API access, and third-party integrations.
Scrape Instagram Reels — and optional regular Posts — from any public profile URL into clean, structured records with inclusive UTC date filtering, deduplication, and streaming output.
The scraper returns one record per Reel (or Post). Every successful record carries content_type set to Reels or Posts.
| Category | Fields |
|---|---|
| 🪪 Identity | url, content_type, post_id, shortcode, content_id, product_type |
| 👤 Author & profile | profile_url, user_profile_url, user_posted, is_verified, followers, following, posts_count |
| 📝 Caption | description, hashtags, alt_text, location |
| 📊 Engagement | num_comments, likes, shares, views, video_play_count, top_comments |
| 🎞️ Media | thumbnail, video_url, audio_url, length, photos, videos, photos_number, dimensions_height, dimensions_width, post_content |
| 🏷️ People | tagged_users, coauthor_producers |
| 💼 Sponsorship | is_paid_partnership, partnership_details |
| ⏱️ Timing | date_posted (Unix seconds) |
| ⚠️ Errors | error, error_code (only on terminal failure rows) |
hashtags, photos, videos, tagged_users, coauthor_producers, partnership_details, post_content) always return arrays.top_comments always returns an object (the first preview comment when available).error and error_code.Each task takes one profile URL row with its own options. The url field is an array of rows (requestListSource); exactly one row is processed per task.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | URL | yes | — | Instagram user profile URL, e.g.https://www.instagram.com/nasa/. Post, Reel, Hashtag, and Explore URLs are rejected. |
include_posts | Boolean | no | false | When true, collect regular photo and carousel Posts together with Reels. |
max_results | Integer | no | 100 | Maximum combined number of successful Reel and Post records for this profile. Non-positive or invalid values fall back to the default. |
excluded_post_ids | String / Array | no | "" | Instagram media PKs or shortcodes to exclude, separated by commas or new lines, or supplied as an array. |
start_date | String (date) | no | "" | Inclusive UTC start date. Accepts DD/MM/YYYY, MM-DD-YYYY, YYYY-MM-DD, MM/DD/YYYY, and YYYY/MM/DD. |
end_date | String (date) | no | "" | Inclusive UTC end date. Same formats as start_date. Must be on or after start_date. |
urlThe profile URL of a public Instagram account. Only http:// and https:// URLs on instagram.com or www.instagram.com are accepted, and only single-segment profile paths are allowed — reserved Instagram paths (accounts, direct, explore, p, reel, reels, stories, tv) are rejected.
✅ Recommended:
❌ Not supported (rejected):
include_postsOff by default, so the run collects Reels only. Set to true to also collect regular Posts (photos and carousels). When enabled, Reel and Post candidates are merged newest-first and deduplicated by media ID; the combined successful output never exceeds max_results.
max_resultsCaps the number of successful records returned for the profile. To discover enough candidates, the scraper fetches up to max(max_results * 2, max_results + 24) items from Instagram before resolving and capping. Non-positive or non-integer values silently fall back to 100.
✅ Recommended:
excluded_post_idsSkip media you have already collected, identified by Instagram media PK or shortcode. Accepts a comma- or newline-separated string, or a JSON array. Both PK (numeric) and shortcode (e.g. Cabc123XYZ) forms are matched.
"excluded_post_ids": "3421567890123456789,Cabc123XYZ,Cdef456UVW"
start_date / end_dateOptional inclusive UTC date range. Boundaries cover the entire start and end calendar days in UTC. Both dates are optional and independent; when both are set, start_date must be on or before end_date. When a date filter is active, media without a valid publish timestamp is excluded.
Accepted formats (any of these, for either field):
| Format | Example |
|---|---|
DD/MM/YYYY | 01/07/2026 |
MM-DD-YYYY | 07-01-2026 |
YYYY-MM-DD | 2026-07-01 |
MM/DD/YYYY | 07/01/2026 |
YYYY/MM/DD | 2026/07/01 |
Each row is one Reel or Post. Below is a sample of the columns you get; see the JSON record for the full field set.
content_type | user_posted | shortcode | likes | views | video_url |
|---|---|---|---|---|---|
| Reels | nasa | Cabc123XYZ | 1284000 | 5210000 | https://...mp4 |
| Posts | nasa | Cdef456UVW | 96210 | — | — |
A single successful Reel record looks like this. Every key is a real output column from the schema; values use placeholder identifiers and reserved domains.
A terminal failure row (emitted when the profile cannot be loaded or nothing matches) keeps the same shape but only carries identity and error fields:
Identity & content type — url is the canonical media URL (/reel/<shortcode>/ for Reels, /p/<shortcode>/ for Posts). content_type is Reels or Posts. post_id is the Instagram media PK; shortcode and content_id both hold the shortcode. product_type is the raw Instagram product type (e.g. clips, feed).
Caption & discoverability — description is the caption text; hashtags is extracted from it with #\w+. alt_text is the accessibility caption. location is the location name when one is attached.
Engagement — num_comments, likes, and views are the counts Instagram exposes. video_play_count is the play count. shares is the reshare count when available (string). top_comments holds the first preview comment — comments (text), user_commenting (author), likes, and profile_picture — or an empty object when none is available.
Media assets — thumbnail is the primary image URL. video_url is the primary video URL. audio_url is the Instagram audio page URL when an audio asset is exposed. length is the primary video duration. photos and videos are arrays of asset URLs. post_content is the per-item breakdown for carousels and Posts, each with id, media_type, product_type, image_url/thumbnail_url, video_url, alt_text, and dimensions_height/dimensions_width. photos_number, dimensions_height, and dimensions_width describe the primary media.
People & sponsorship — tagged_users lists tagged accounts (full_name, id, is_verified, profile_pic_url, username). coauthor_producers lists co-author records returned by Instagram. is_paid_partnership flags paid partnerships; partnership_details holds structured sponsor records.
Author profile — profile_url and its alias user_profile_url are the canonical author profile URL. user_posted is the username. is_verified, followers, following, and posts_count describe the author.
Timing & errors — date_posted is the Instagram publish timestamp in Unix seconds. error and error_code are empty on success and populated only on terminal failure rows.
Capture only Reels published within a UTC window. The boundaries include the full start and end days.
Skip media already collected in a previous run by passing its PK or shortcode. Both forms are matched, so you can mix them.
start_date (so very old profiles do not get walked end-to-end). Old pinned media on the first page does not trigger this early stop.include_posts enabled, Reel and Post candidates are merged newest-first and deduplicated by post_id, shortcode, and url; the combined successful output never exceeds max_results.max(max_results * 2, max_results + 24) candidates per source to ensure enough valid records survive resolution and capping.media/<pk>/info API, so a single endpoint gap does not lose a record.403, 408, 425, 429, 500, 502, 503, 504), or malformed-page failures, with linear backoff.Can I pass a single Reel or Post URL?
No. The url field accepts only Instagram profile URLs. Single Reel (/reel/...), single Post (/p/...), hashtag, and explore URLs are rejected.
How many URLs can I process at once?
Each worker task processes exactly one profile URL row. To scrape multiple profiles, submit one task per profile, or schedule repeated runs.
Does max_results cap Reels and Posts separately?
No. max_results is a single combined cap on successful records for the profile. When include_posts is on, Reels and Posts share it after merge and dedup.
Which date formats are accepted?
DD/MM/YYYY, MM-DD-YYYY, YYYY-MM-DD, MM/DD/YYYY, and YYYY/MM/DD. Both fields are optional and independent; if both are set, start_date must be on or before end_date.
What timezone does the date filter use?
UTC. Boundaries include the entire start and end calendar days in UTC.
Does the scraper download videos or images?
It returns the canonical asset URLs (video_url, thumbnail, photos, videos) but does not download the binary files. Use the export URLs in your own download step.
What happens when a profile is private or blocked?
The scraper emits a single terminal row with error and error_code (for example 403 when Instagram blocks the request) instead of partial data.
Can I use this as a REST API?
Yes. CoreClaw exposes the worker over the OpenAPI v2 REST API. Base URL https://openapi.coreclaw.com, all paths under /api/v2, auth Authorization: Bearer <API_KEY>. Typical flow: fetch the input schema → POST /api/v2/workers/coreclaw/instagram-all-reel-scraper/runs with input under input.parameters.custom (optionally set callback_url) → store data.run_slug → GET /api/v2/worker-runs/{runId} for status → GET /api/v2/worker-runs/{runId}/result for results or /result/export for a download. You can also drive it from AI tools via the CoreClaw MCP server.
Which export formats are supported?
CSV, JSON, JSONL, XLSX, XLS, XML, HTML, and RSS — available through the CoreClaw result export.
Where do I find my API key and pricing?
API access and usage are managed on CoreClaw pricing. See the API docs for full reference.
Found a bug, missing field, or want a new feature? Open an issue in the Core-Claw GitHub organization or contact CoreClaw support.
Explore more popular scrapers from our marketplace
by CoreClaw
Extract public Instagram post data via URLs, including user info, engagement and profile details. One-click CSV/JSON export, batch scraping, no coding needed.
by CoreClaw
Instagram Comment Scraper (by Post URL) extracts comments from Instagram posts and Reels. You can use the scraped comment data for sentiment analysis, audience research, content moderation, and building engagement reports.
by CoreClaw
Enter one or more Reel URLs to extract creator details, hashtags, comments, and engagement metrics from public Instagram Reels, with support for media archiving and structured data output.
by CoreClaw
Extract public Instagram profile data by input URLs, including usernames, IDs, bios, locations, website URLs, follower counts, and comment counts. Supports data exporting, API integration, and synchronization with third-party tools.