Instagram Single Reels Scraper avatar

Instagram Single Reels Scraper

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Instagram Single Reels Scraper

Instagram Single Reels Scraper

Instagram Single Reels Scraper — Extract data from individual Instagram Reels, including captions, views, likes, comments, hashtags, timestamps, usernames, and Reel URLs. Useful for content research, competitor analysis, engagement tracking, and social media insights.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

Social Data API

Social Data API

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

Categories

Share

Instagram Single Reels Scraper extracts the public data of the specific Instagram reels you list, one row per reel. Each row carries the caption, like count, comment count, view count, posting time, highest-quality video link, cover image and original-audio artist. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a social listening pipeline. No Instagram account, login or cookies needed. Start with one competitor reel, then paste your whole watchlist into the same list.


What data can I extract with Instagram Single Reels Scraper?

Using this Instagram Reels API, you will be able to extract the following Instagram reel data:

🔗 Reel URL🔤 Shortcode🆔 Media ID📝 Caption text
❤️ Like count💬 Comment count▶️ View count (when Instagram shows it)📅 Posting time (Unix and ISO)
🎞️ Highest-quality video link📐 Video width and height🖼️ Cover image link🔊 Has audio
🎵 Original-audio flag🎤 Audio artist📍 Location (if tagged)♿ Accessibility caption (if any)
🎬 Media and product type✅ Success flag⚠️ Error reason🔁 Attempts used
🌐 Proxy used⏰ Scrape time💭 Preview comments (if Instagram includes them)

How to use Instagram Single Reels Scraper

Built for analysts, marketers and agencies who already know which reels they care about: one run turns a list of reel links into a clean table, one row per reel.

Copy to your AI assistant:

Instagram Single Reels Scraper is an Apify Actor that returns the public data of specific Instagram reels as structured JSON: caption, like count, comment count, view count, posting time, highest-quality video link, cover image and the original-audio artist. Use it whenever someone needs Instagram reel data without cookies, a login, or a browser - checking how a competitor's reel performs, logging a campaign's reels every week, or grounding an AI answer in a reel's caption. Inputs: urls (string[], one reel per line: full reel or post URL with /reel/, /reels/, /p/ or /tv/ on www.instagram.com, instagram.com or m.instagram.com, with or without https://, or "username/shortcode", or a bare shortcode, no default), proxyConfiguration (object, only the proxy country is used; every request goes through Apify Proxy, no default). Every entry produces exactly one row. Rows with success true are reels and are billed as one row_result event each; rows with success false are error rows with an errorReason such as invalid_input (not a reel link) or graphql_error (temporary platform error, usually a deleted, private or blocked reel) and are not charged. Instagram currently shows logged-out visitors no comment sample, audio type or audio asset ID, so those fields come back empty, and the view count is null when Instagram does not show it.

Instagram Single Reels Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at Apify's MCP server and it can read Instagram reels on its own: it finds this Actor with the server's search, add and call actor tools, then runs it and reads the rows. No glue code, no scraping logic in your prompts.

$claude mcp add --transport http apify "https://mcp.apify.com"

Step by step

  1. Create a free Apify account.
  2. Open Instagram Single Reels Scraper in the Apify Store.
  3. Paste the Instagram reel URLs (or username/shortcode pairs, or shortcodes), one per line.
  4. Click Start (or send your API request).
  5. Download or stream your results in JSON, CSV or Excel.

How to scale Instagram Single Reels Scraper to bulk

Put every reel into the same reel list, one per line: the run works through them in order and writes one row per reel into one dataset, so 300 links give you 300 rows. To scrape Instagram reels on a schedule, for example the same watchlist every Monday, save the input as an Apify task and attach a schedule, or start runs from your own code through the Apify API with different lists. As a bulk Instagram reel scraper it only bills reels it actually returned, so a list with dead links costs nothing extra for them.


✨ Features

Instagram Single Reels Scraper fetches clean, structured reels from Instagram ⚡. Unlike an Instagram reels scraper that crawls a whole profile, it works as an Instagram reel data extractor for the reels you already have links to: competitor checks, campaign reporting, content audits and AI pipelines that need the facts behind a link.

It extracts, per reel:

  • Caption – the full caption text, hashtags and links included
  • Like count and comment count – the numbers Instagram shows at scrape time
  • View count – how many times the reel was viewed, whenever Instagram shows it
  • Video link – the highest-resolution video file, with its width and height
  • Cover image – the largest thumbnail Instagram offers
  • Original audio – whether the reel uses its creator's own sound, and the artist name
  • Posting time – as a Unix timestamp and as an ISO date
  • Location – the tagged place with coordinates, when the creator added one

⚡ Every request goes through Apify Proxy, and a blocked attempt is retried up to three times with a new IP before the reel is reported as failed.


Use cases 💡

  • Social media analyst — compare like and view counts across a competitor's latest reels.
  • Agency account manager — log a client's campaign reels weekly and spot the ones still growing.
  • Content researcher — run it as an Instagram reel caption scraper to study hooks and hashtags.
  • Video editor — pull each Instagram reel video URL and cover image for an approved list.
  • AI engineer — feed captions and counts into a RAG pipeline as grounded context.

Building an AI agent? Connect Instagram Single Reels Scraper over MCP and let it call the actor on its own.


Why choose this actor?

  • Ten different entries, ten rows. A recorded run took 10 entries (full links, a /reels/ link, a /p/ link, an m.instagram.com link, a link without https://, username/shortcode pairs, a bare shortcode, a deleted reel and a plain username) and returned 10 rows in 28.8 seconds: 8 reels and 2 error rows.
  • The numbers behind each reel. A recorded reel came back with 1,805,728 likes, 20,393 comments and 6,731,158 views, plus its 720×1280 video link, cover image and original-audio artist, so the Instagram reel likes count sits next to the views it earned.
  • 32 fields, one stable shape. Every row, success or failure, has the same 32 keys, and failed reels carry a typed error reason instead of disappearing from your table.

⬇️ Input

The actor takes a list of reels in its reel URLs field, one entry per reel; a full link, a username/shortcode pair or a bare shortcode all work. No field is strictly required, but a run with an empty list stops right away without rows.

ParameterRequiredTypeDescriptionExample value
urlsNo (a run needs at least one entry)array of stringsReels to scrape, one per line; each entry returns one row. No default.["https://www.instagram.com/cristiano/reel/DOEMHa6iPoz/", "cristiano/DOEMHa6iPoz"]
proxyConfigurationNoobjectProxy settings. Every request goes through Apify Proxy whatever you choose here; only the country is used. No default.{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US"}
  • https://www.instagram.com/cristiano/reel/DOEMHa6iPoz/ (also /reels/, /p/ and /tv/ links)
  • https://m.instagram.com/reel/DduQxrBjnsB/ and links without https://, like www.instagram.com/reel/DdPDuIepVPf/
  • cristiano/DOEMHa6iPoz or cristiano/reel/DOEMHa6iPoz
  • DOEMHa6iPoz (bare shortcode)

A plain username such as cristiano is not a reel and returns an error row with an invalid-input reason.

Example input

{
"urls": [
"https://www.instagram.com/cristiano/reel/DOEMHa6iPoz/",
"natgeo/Ddy_O-ORVdh",
"https://www.instagram.com/reels/DdrAGMwowmZ/",
"Dd7CupPAMOs"
],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

⬆️ Output

Every reel is one typed, normalized JSON item with the same 32 keys on every run, so you can export Instagram reels to CSV, Excel or JSON (the default) straight from the dataset. Entries that fail are written as error rows with the same keys, the success flag set to false and the error reason filled in.

Error rows from the Instagram reel scraper

A deleted, private or nonexistent reel, a blocked request after three attempts, or an entry that isn't a reel produces one error row. Error rows are not charged. Instagram answers a deleted or nonexistent reel the same way as a temporary error, so those rows usually show a temporary platform error after three attempts. Keep only rows whose success flag is true to filter them out.

Example output

[
{
"url": "https://www.instagram.com/cristiano/reel/DOEMHa6iPoz/",
"scraped_at": "2026-10-01T08:54:56.980991Z",
"proxy_used": "none",
"attempts": 1,
"mediaCollected": true,
"errorReason": null,
"shortcode": "DOEMHa6iPoz",
"mediaId": "3712145279353944627",
"mediaType": 2,
"productType": "clips",
"captionText": "I came here to do what I love, but I #StayedForMore. The people, the energy, and the world-class events that surprise me everyday. Check out the Saudi Unreal Calendar here\n@visitsaudi\n \nhttps://www.visitsaudi.com/Calendar",
"captionCreatedAt": 1756742461,
"takenAt": 1756742460,
"takenAtIso": "2025-09-01T16:01:00Z",
"likeCount": 1805728,
"commentCount": 20393,
"playCount": 6731158,
"videoUrlBest": "https://instagram.fdac8-1.fna.fbcdn.net/o1/v/t2/f2/m86/AQN4j-akK4-Os09NAZiDyP8kREEdtLp_4RyaSUGcJGGNUejuP40yed_i8N4rqnNINjplOX1czII0eUauENgyf-muktnwkKC2qMvE5r8.mp4",
"videoWidth": 720,
"videoHeight": 1280,
"thumbnailUrl": "https://instagram.fdac8-1.fna.fbcdn.net/v/t51.71878-15/539543640_1700695623972704_941739585801353974_n.jpg",
"hasAudio": true,
"musicAudioType": null,
"musicIsOriginalAudio": true,
"musicAssetId": null,
"musicArtistUsername": "cristiano",
"location": null,
"accessibilityCaption": null,
"commentsExtracted": [],
"commentsExtractedCount": 0,
"commentCollected": false,
"success": true
},
{
"url": "https://www.instagram.com/nasa/reel/DdPDuIepVPx/",
"scraped_at": "2026-10-01T08:55:21.821093Z",
"proxy_used": "none",
"attempts": 3,
"mediaCollected": false,
"commentCollected": false,
"commentsExtracted": [],
"commentsExtractedCount": 0,
"success": false,
"errorReason": "graphql_error",
"shortcode": null,
"mediaId": null,
"mediaType": null,
"productType": null,
"captionText": null,
"captionCreatedAt": null,
"takenAt": null,
"takenAtIso": null,
"likeCount": null,
"commentCount": null,
"playCount": null,
"videoUrlBest": null,
"videoWidth": null,
"videoHeight": null,
"thumbnailUrl": null,
"hasAudio": null,
"musicAudioType": null,
"musicIsOriginalAudio": null,
"musicAssetId": null,
"musicArtistUsername": null,
"location": null,
"accessibilityCaption": null
}
]

The video and image links above are shortened (Instagram's full links are long and expire after a while). On Apify, the proxy-used value shows residential; this sample comes from a local test run without a proxy.


How does it work?

The actor reads the same public data any visitor sees when opening a reel on the Instagram website, so it never needs an Instagram account. There is no browser: it sends plain HTTP requests, and every request goes through Apify Proxy (you can pick the country). When Instagram blocks an attempt, the actor retries up to three times, each time with a new IP, and then reports the reel as failed instead of skipping it. It returns only publicly visible data, what any logged-out visitor sees. Every row keeps the same 32 keys; when Instagram doesn't show a value, the key stays and the value is empty.


How do you integrate Instagram Single Reels Scraper into your stack?

It works with what you already use: the Apify REST API from any language, MCP for AI agents, and no-code tools.

MCP integration for AI agents

$claude mcp add --transport http apify "https://mcp.apify.com"

This registers Apify's MCP server in your client; your agent then finds this Actor with the server's search, add and call actor tools and calls it directly, passing the same JSON input you would use in the Console. Sign in with your Apify account when the client asks. Compatible clients include Claude Code, Cursor and Windsurf.

No-code tools (n8n, Make, LangChain)

n8n: add the Apify node, choose "Run an Actor", pick this Actor and pass the same JSON input; the next node receives one item per reel.

Make: use the Apify app's "Run an Actor" module, then "Get Dataset Items" to map the caption, like count and view count into Google Sheets or a CRM.

LangChain: the langchain-apify package's ApifyActorsTool runs an Apify Actor by its ID, which you copy from this Actor's page in Apify Console; the agent then gets the reel rows back as tool output.


Scraping publicly available Instagram data is generally legal. Instagram Single Reels Scraper returns only publicly available data, what any user sees without logging in: public reels, their captions and their counts. Under the GDPR, scraping public data is generally permissible, but storing and using it must comply with local data-protection law, and captions, tagged places and audio artist names can identify people. Consult legal counsel if your use case involves bulk storage of personal data.


Frequently asked questions

What fields does Instagram Single Reels Scraper return?

Each reel comes back with its caption, like count, comment count, view count and highest-quality video link, among 32 fields in total. See the data fields section.

Does Instagram Single Reels Scraper require an Instagram account or login?

No. Only public reel data is read, so no credentials, cookies or Instagram API key are needed.

How fast does Instagram Single Reels Scraper run?

A recorded run returned 10 rows for 10 entries in 28.8 seconds, about 2 to 5 seconds per reel (local run on 2026-10-01). Data is live on every run, not cached.

What happens if a reel is private or doesn't exist?

You get one error row for it with the success flag set to false and an error reason, and that row is not charged. Deleted, private and nonexistent reels usually show a temporary platform error after three attempts, because Instagram answers them the same way as a temporary error; an entry that isn't a reel at all shows an invalid-input reason. In code, keep rows whose success flag is true and log the rest.

Can I scrape multiple Instagram reels at once?

Yes. Put every reel into the reel list, one per line; each entry returns one row in the same dataset, in the order you listed them.

Does Instagram Single Reels Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — it is available as an MCP tool through Apify's MCP server. Register the server in Claude Code, Cursor or Windsurf:

$claude mcp add --transport http apify "https://mcp.apify.com"

Your agent finds this Actor with the server's search, add and call actor tools. Any agent that can call an HTTP endpoint can use the Apify REST API directly.

Does Instagram Single Reels Scraper return data in a format LLMs can use directly?

Yes. Every row is typed, normalized JSON with the same field names on every run. No HTML parsing, no selectors: pass it straight to an LLM, index it into a vector store, or feed it to an agent tool, with no transformation step.

What happens when Instagram changes its layout or updates its anti-bot system?

The output keys stay the same, so your code keeps working; fields hit by an Instagram change come back empty until the actor is updated. The actor was last checked against live Instagram on 2026-10-01.

Can I use Instagram Single Reels Scraper without managing proxies or browser infrastructure?

Yes. There is no browser to run and no proxy account to set up: every request already goes through Apify Proxy, and failed attempts are retried up to three times with a new IP. You start a run and get structured JSON back.

Which Instagram reel fields work best for AI training data and RAG indexing?

For RAG indexing: the caption, the audio artist and the tagged location name carry the text. For training data: like count, comment count, view count, video size and posting time are consistent numbers and timestamps. Values are typed (strings, integers, booleans, one location object and one list), so no normalization is needed.


Your feedback

Found a bug or missing a field? Let us know on the Issues tab of this Actor's page in Apify Console. Include the reel links you ran, so the problem can be reproduced quickly.