Instagram Reels Scraper API - Play Counts, MP4 URLs
Pricing
from $1.50 / 1,000 post (image or carousel)s
Instagram Reels Scraper API - Play Counts, MP4 URLs
Scrape the reels from any public Instagram profile: exact play, like and comment counts, duration, sound, caption and the direct MP4 URL with dimensions. Posts are skipped and never billed. No login.
Pricing
from $1.50 / 1,000 post (image or carousel)s
Rating
0.0
(0)
Developer
Blackcube
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
| Instagram Suite • 4 Actors, one codebase, one row billed once | ||
| Instagram Posts Scraper API Posts, Reels, Exact Counts | Instagram Reels Scraper API ➤ You are here | Instagram Profile Posts Scraper API Newest Posts by Username |
| Instagram New Posts Monitor API Schedule It, Pay for Changes | ||
More from this account: YouTube Transcript Suite · Website Contact & Email Suite · Career Site & ATS Jobs Suite · Google News Suite · Keyword Research Suite · Shopify Store Intelligence Suite · eBay Data Suite · Amazon Reviews Suite · Reddit · Meta Ad Library · Vinted · Trustpilot Review Intelligence Suite · App Store & Google Play Reviews Suite · Business Reviews Suite · Amazon Product Data Suite · Google Sheets Suite · TikTok Suite · Snapchat Suite · LinkedIn Public Data Suite · Contact Validation Suite
The Instagram suite
- Instagram Posts Scraper API — posts, reels and carousels from any public profile
- Instagram Profile Posts Scraper API — a username in, its newest posts out, as many pages as you ask for
- Instagram New Posts Monitor API — put profiles on a schedule and pay only for new or changed posts
Paste Instagram usernames and get their reels: exact play, like and comment counts, duration, sound, caption and the direct MP4 URL. Image posts are skipped and never billed. No login, no cookies, no proxy to configure — it reads the public feed Instagram shows to anyone. Failures are free: a profile that is private, missing or empty costs nothing and returns a row saying which.
Exact numbers, not display numbers. Instagram's page says "1.4M likes" and "46M plays"; the rows carry 1,487,695 and 46,522,596.
Quick start
- Press Start — the defaults are a working run.
- Replace them with your own usernames or profile URLs (
nasa,@nasaandhttps://www.instagram.com/nasa/all work), one per line. - Take the dataset as JSON, CSV or Excel, or via the API. Every row has a
type; the freecoveragerow says what was asked for and what arrived.
What people use it for
- Short-video research. Which reels a creator or brand posts, how each performs, and the file itself for analysis or transcription.
- Influencer vetting. Engagement per post over the newest posts, paid-partnership flags, co-authored posts, verified status.
- Archiving and datasets. Captions, hashtags, mentions, dates, locations and media URLs for a list of profiles, newest first, as far back as you ask.
- Feeding an AI agent or workflow. One flat schema, a
typeon every row, and a free coverage row that says what was asked for and what arrived.
What the rows look like
A reel row
{"type": "reel","profile": "cristiano","shortcode": "Dcgs4DvIr3u","url": "https://www.instagram.com/reel/Dcgs4DvIr3u/","mediaType": "video","productType": "clips","likeCount": 1487695,"commentCount": 18722,"playCount": 46522596,"videoDurationSec": 21.68,"hasAudio": true,"media": [{ "kind": "video", "url": "https://instagram.f...fbcdn.net/o1/v/t2/f2/m86/....mp4", "width": 720, "height": 1280, "id": null }],"music": { "title": "Original audio", "artist": "cristiano", "isOriginal": true }}
playCount is Instagram's exact play count for the reel. Media URLs are signed by Instagram and expire after a few hours — download during the run, or turn them off.
What it costs
| You pay for | Price |
|---|---|
| Each reel or video post delivered (play count, duration, sound and the MP4 URL included) | $2.00 per 1,000 reels |
| Each profile feed read (only when at least one post from it was delivered; never counted against your result cap) | $2.00 per 1,000 profiles |
| Optional monthly pass: 30 days with no per-row charges, charged once, no automatic renewal | $19.00 |
Free, always: a profile that does not exist, is private or has no posts, every post that is not a reel, a post skipped by your content or date filter, a post you already received on a monitoring run whose numbers did not move, a malformed input, every error row, the coverage row and the run summary. A run that reads nothing costs nothing.
The monthly pass is for heavy use: turn it on and the run charges it once after it has read at least one profile, then every run you start with it on for the next 30 days delivers posts, reels and feed checks without per-row charges. It pays for itself above roughly 5,000 posts or 3,000 profile checks a month. It is never charged silently — only when you run with it on and no pass is active.
Set Cost ceiling (USD) to stop any run before it passes a number you choose; the free summary row reports what the run actually spent.
Limits, stated plainly
Instagram shows follower and following counts, the bio, stories, highlights, the comments under a post, hashtag and location pages, and search only to signed-in accounts (measured 2026-09-02 from two independent networks). This Actor reads public feeds only and never signs in, so it sells none of those — and says so here rather than on your invoice.
Media URLs are signed by Instagram and expire after a few hours. A private account's posts are not readable at all; the row says private.
Like counts an author has hidden come back as null, never as zero.
Use it from n8n, MCP, the API or a schedule
Built to be called by a workflow, not only from the Store form. The Actor is vonsensey/instagram-reels-scraper-api; every snippet below sends {}, which runs the defaults shown on the form — replace it with your own input.
n8n
Install the Apify community node (@apify/n8n-nodes-apify under Settings → Community Nodes, or search "Apify" on n8n Cloud). Add Apify → Run Actor with Actor vonsensey/instagram-reels-scraper-api and your input JSON, then Apify → Get Dataset Items on the run's defaultDatasetId and pipe the rows anywhere. For scheduled runs, the On new Apify Event trigger fires when a run of this Actor finishes.
MCP (Claude, Cursor, VS Code, any MCP client)
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=vonsensey/instagram-reels-scraper-api","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Your agent then calls vonsensey/instagram-reels-scraper-api as a tool with the same input the form takes and reads the dataset back.
REST API (one call, rows in the response)
curl -X POST "https://api.apify.com/v2/acts/vonsensey~instagram-reels-scraper-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d '{}'
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vonsensey/instagram-reels-scraper-api").call(run_input={})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('vonsensey/instagram-reels-scraper-api').call({});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Make, Zapier, LangChain, CrewAI
The Apify app in Make and Zapier has a Run an Actor module: pick vonsensey/instagram-reels-scraper-api. In LangChain and CrewAI the Apify tool wrappers take the same Actor id. A daily schedule needs nothing but the Console: Schedules → Create → this Actor → cron, and the dataset fills on its own.
Use cases
- Track what a profile actually publishes. Every post, reel and carousel from a public profile feed with exact like and comment counts, the full caption with hashtags and mentions parsed out, the posted date, location, co-authors and the paid-partnership flag.
- Build a reels dataset. Only the video posts, each with its exact play count, duration, whether it has audio, the sound's title and artist, and the direct MP4 URL with its dimensions.
- Watch profiles on a schedule. Turn Monitor on and a post you have already received is never billed again; each profile Instagram answered is billed as one feed check, so a quiet day costs one check per profile and nothing else.
- Feed an agent or an LLM. One flat schema for posts and reels, captions already split into hashtags and mentions, and a free error row naming any profile that was private, missing or empty.
Run it on a schedule
A one-off pull answers a question; a schedule answers it every day without you. Open Schedules in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per row delivered, and the FAQ below says exactly what a scheduled run that finds nothing new costs.
FAQ
Do I need an Instagram login, cookies or a proxy?
No. Every listing in this suite reads the public feed Instagram serves to anyone, and it never signs in, never sends a cookie and never uses a session. Everything is handled for you and there is nothing to buy on top.
Can I get follower counts, the bio, stories, comments or hashtag pages?
Not from this suite, and it says so rather than pretending. Instagram shows those only to signed-in accounts — measured 2026-09-02 from two independent networks. What you get is the feed itself; every row still carries the poster's username, full name, verified and private flags.
What is the difference between a post row and a reel row?
A post is an image or a carousel; a reel is a video. A reel row carries everything a post row does plus the exact play count, duration, audio flag, sound title and artist and the MP4 URL, which is why it is priced a little above a post. Use What to deliver to take only one kind — skipped items are never billed.
How far back can I go?
As far as the profile's public feed goes, 12 posts per page. Set a depth with Newest posts per profile, or stop at a date with Only posts from the last N days. Pinned posts sit first regardless of date and do not end the walk.
What does a private, missing or empty profile cost?
Nothing. You get a free error row saying which — private, not-found or no-posts — and the run keeps going. "All of these are private or deleted" is a correct answer, not a failure, so the run still succeeds.
Will a schedule bill me twice for the same post?
No. Delivered posts and the counts seen are remembered per profile, and a post whose numbers have not moved comes back as a free row marked unchanged. What a scheduled run does cost is one profile feed read for each profile Instagram answered — a profile that does not exist, is private or refused us is never charged.
Why is a like count null instead of 0?
Because the author hid it. A hidden count is returned as null, never as zero, so a hidden count and a genuine zero are never confused.
Do the image and video URLs keep working?
Not indefinitely — Instagram signs them and they expire after a few hours. Download what you need in the same pipeline run rather than storing the URL.
Something wrong, or a field you need that is missing? Open an issue on the Issues tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.