Instagram Post Scraper
Pricing
from $2.00 / 1,000 post scrapeds
Instagram Post Scraper
Extract public Instagram posts and reels by username or by direct post URL. Every row carries post.shortcode, post.url, post.caption, post.likes, post.comments, post.taken_at, the image and video URLs and the owner's handle. Export JSON, CSV or Excel.
Pricing
from $2.00 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
herus13
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
4
Monthly active users
3 days ago
Last modified
Categories
Share
The Instagram Post Scraper extracts public posts and reels from Instagram, by username or by a direct post URL. Each record carries the shortcode, permalink, post type, caption, like and comment counts, publish timestamp, image and video URLs, and the owner's handle and display name.
What you get
One row per post, exactly as a JSON export returns it.
{"post": {"shortcode": "Dbdo4gTupuE","url": "https://www.instagram.com/p/Dbdo4gTupuE/","typename": "GraphVideo","is_video": true,"caption": "The game looks different from here.","likes": 175374,"comments": 1148,"taken_at": "2026-07-31T16:00:05+00:00","thumbnail_url": "https://instagram.fbaq6-1.fna.fbcdn.net/v/...","display_url": "https://instagram.fbaq6-1.fna.fbcdn.net/v/...","video_url": "https://instagram.fbaq6-1.fna.fbcdn.net/o1/v/..."},"owner_username": "nike","owner_full_name": "Nike","source": "timeline","scraped_at": "2026-06-19T08:30:00+00:00","error": null}
The table and CSV views flatten post into columns of their own — post.shortcode, post.caption, post.likes and the rest — so a spreadsheet gets one flat row per post. source says where the row came from: timeline for a username, embed for a direct post URL. video_url is filled for reels and videos only. Export the dataset as JSON, CSV or Excel, or read it from the Apify API.
What it costs
| Event | Price |
|---|---|
Actor Start (apify-actor-start) | $0.005 |
Post scraped (post-scraped) | $0.002 |
You pay per post delivered, not for time. One post from a direct URL costs about $0.007, a hundred posts about $0.21, and a thousand posts about $2.01. The residential proxy is included in those prices, and a target that returns nothing is never charged.
Input
| Field | Type | Required | Default | What it does |
|---|---|---|---|---|
targets | array | yes | — | What to scrape, one entry per line. A username (nike) returns that profile's recent posts, as many as max_posts allows. A direct post or reel URL (https://instagram.com/p/ABC123/) returns that single post. Both forms can be mixed in one run, and every post returned becomes one dataset row. Required. |
max_posts | integer | no | 12 | How many recent posts to return for each username in targets, from 1 to 500. Default 12. A direct post or reel URL always returns exactly that post, so this setting does not change it. On a very large back-catalogue a run can return fewer posts than the number asked for. |
proxyUrls | array | no | — | Leave empty and the run uses the residential proxy that comes included in the price of the run. To route the run through your own provider instead, add one gateway URL per entry, for example http://user:pass@host:port. Any provider that issues URLs works (DataImpulse, BrightData, Oxylabs, Smartproxy, or your own). When set, only the URLs you give are used. |
How to run it
- Open the actor on Apify Console.
- Put your usernames or post and reel URLs into Usernames or Post URLs.
- Set Max Posts Per Username —
12by default, up to500. - Run. Export JSON, CSV or Excel from the dataset.
{"targets": ["nike", "https://www.instagram.com/p/Dbdo4gTupuE/"],"max_posts": 12}
Minimal input:
{"targets": ["https://www.instagram.com/p/Dbdo4gTupuE/"]}
Available as the MCP tool herus13--instagram-post-scraper on mcp.apify.com and through the Apify API; send the same JSON.
Why this scraper
- Two ways in, one input list. A handle collects a profile's recent posts and a link collects exactly that post or reel, and both can sit in the same run.
- Reels come with their media. Image, thumbnail and video URLs are on every row, ready to download, embed or hand to a model.
- Nothing to sign in with. No Instagram account and no cookie are needed, so nothing of yours is exposed to the run.
- A stable, flat field set. The same columns every run, safe to append to a spreadsheet or load into a warehouse without reshaping.
- Residential proxy included in the price of the run, with your own gateway URLs accepted when you prefer them.
Use cases
- Content datasets and archives — one structured record per post, including the reels that are otherwise awkward to keep, makes a durable archive of an account's output with the media links intact.
- Posting cadence and competitor tracking — timestamps across a profile's recent posts show how often a competitor publishes and at what time of day, and the engagement counts show which of those choices actually worked.
- Engagement modelling — likes and comments alongside post type and caption give the feature set for a model of what performs on an account, built from that account's own history rather than a generic benchmark.
- Influencer vetting — pull a creator's recent posts before a partnership and check that engagement is consistent and that the content matches the media kit.
- Campaign and launch monitoring — re-run a handle list on a schedule and catch new posts, with captions and counts, the day they go up.
FAQ
Do I need an Instagram account? No. The actor returns only what a public post shows to anyone, so there is nothing to sign in with; private accounts and private content are never returned.
Can I scrape one specific post or reel? Yes. Put the post or reel URL in Usernames or Post URLs and that single post comes back. Max Posts Per Username does not apply to a direct URL.
How many posts can I get per username? Up to 500. On a very large back-catalogue a run can return fewer than the number you asked for; you are only charged for the posts that arrive.
Am I charged for targets that fail? No. A target that returns nothing — missing, unavailable or private — is never charged. You pay per post delivered.
Is a proxy included? A residential proxy is included in the price of the run. To use your own, paste gateway URLs into Your own proxy URLs. Scraping at volume? Your own DataImpulse account is cheaper per GB.
Is scraping Instagram legal? This actor collects only publicly available post data. You are responsible for complying with Instagram's terms and applicable laws, and for not collecting personal data without a lawful basis.
Related actors
- Instagram Profile Scraper — public profiles with biography, follower and following counts, verified and business flags, and recent posts.
- Instagram Comment Scraper — comments on any public post, with author, text, likes and replies.
- TikTok Profile Scraper — public TikTok profiles by handle, with stats, bio and metadata.