Instagram Post Scraper avatar

Instagram Post Scraper

Pricing

from $2.00 / 1,000 post scrapeds

Go to Apify Store
Instagram Post Scraper

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

herus13

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

3 days ago

Last modified

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

EventPrice
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

FieldTypeRequiredDefaultWhat it does
targetsarrayyesWhat 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_postsintegerno12How 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.
proxyUrlsarraynoLeave 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

  1. Open the actor on Apify Console.
  2. Put your usernames or post and reel URLs into Usernames or Post URLs.
  3. Set Max Posts Per Username12 by default, up to 500.
  4. 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.