Instagram Post Scraper by URL · Analytics, Saves, Shares · Apify
Instagram Post & Reel Details Scraper avatar

Instagram Post & Reel Details Scraper

Pricing

from $0.38 / 1,000 post details

Go to Apify Store
Instagram Post & Reel Details Scraper

Instagram Post & Reel Details Scraper

Paste Instagram post or reel URLs and get full engagement in one row each: views, likes, comments, saves, shares and reposts, plus caption, audio, duration, author, coauthors and AI label. Bulk links or shortcodes; duplicates never charged. From $0.38 per 1,000. No login.

Pricing

from $0.38 / 1,000 post details

Rating

0.0

(0)

Developer

Instagram Data API

Instagram Data API

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

7

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Instagram post & reel details by URL

Paste links and get every number Instagram shows for each post or reel — including saves, shares and reposts — in one row. Refresh campaign reports, check what an influencer delivered, or enrich a spreadsheet of URLs.

  • 💾 Saves, shares and reposts next to views, likes and comments (Instagram reports saves for reels; for photos you get null, not 0).
  • 📋 Bulk input — paste thousands of links or shortcodes in one run.
  • 🧹 No duplicate charges — the same post pasted twice is returned and charged once.
  • 💸 Cheap single calls — $0.0005 per run plus $0.54 per 1,000 posts, so one-link runs from n8n or Make stay cheap.
  • 🔓 No login; deleted or unavailable posts come back as free rows with an error reason.

Why scrape Instagram post details?

  • Campaign reporting: refresh views, saves and shares of every influencer post in one run.
  • Enrich a spreadsheet: paste URLs, get full engagement back.
  • Verify results an influencer or agency reports.

What data can I scrape from Instagram post details?

DataWhat it is
LinkLink to the post or reel on instagram.com
AuthorUsername of the author
PostedWhen it was posted (UTC, ISO 8601)
ViewsPlays (reels) or views as Instagram counts them
LikesLikes; empty if the author hid the counts (likesHidden)
CommentsNumber of comments
SavesHow many people saved the reel (Instagram gives saves only for reels)
SharesHow many times the post was sent or shared
RepostsHow many times it was reposted
Length, sVideo length in seconds
CaptionPost text as the author wrote it

Up to 61 fields per row in total — the Output tab lists every one of them.

How to scrape Instagram post details

  1. Paste usernames or links into the input, one per line.
  2. Press Start — rows stream into the Output tab while the run goes.
  3. Download them as JSON, CSV, Excel or HTML, or get them through the API.

Works with any public profile on Instagram — no login, no cookies, no Instagram account of yours.

No input at hand? Press Start with an empty input — you get a 3-row sample.

Input example

{
"urls": [
"https://www.instagram.com/reel/DehZj9wggt0/"
],
"includeViews": false
}

Output example: Instagram post details data

{
"type": "reel",
"productType": "clips",
"shortCode": "DehZj9wggt0",
"url": "https://www.instagram.com/reel/DehZj9wggt0/",
"ownerUsername": "natgeo",
"ownerVerified": true,
"ownerPrivate": false,
"ownerProfilePicUrl": "https://scontent-bos5-1.cdninstagram.com/…jpg",
"takenAt": "2026-10-15T19:00:02Z",
"views": 1543993,
"viewsInstagram": 1543993,
"viewsFacebook": null,
"likes": 56343,
"comments": 451,
"saves": 2978,
"shares": 4420,
"reposts": 1041,
"durationSec": 30.04,
"caption": "Keeping up with a pack of hunting wolves is just another day… #WolvesUpClose",
"hashtags": [
"WolvesUpClose"
],
"coauthors": [
"bertiegregory",
"natgeoanimals"
],
"audio": {
"type": "original",
"id": "28762088093432459",
"title": "Original audio",
"artist": "natgeo"
},
"isPinned": true,
"isPaidPartnership": false,
"aiLabel": null,
"language": "en",
"videoUrl": "https://scontent-bos5-1.cdninstagram.com/…mp4",
"coverUrl": "https://scontent-bos5-1.cdninstagram.com/…jpg"
}

Each row has up to 61 fields — the Output tab describes every one of them. Fields Instagram doesn't show come as null, never as a fake 0.

Coming from Apify's official Instagram scrapers? Turn on Also add Apify-style field names: every row also gets likesCount, commentsCount, videoPlayCount, timestamp, displayUrl, followersCount, followsCount, verified and more with the same values, and the post type as Video, Image or Sidecar — your sheets, code and n8n flows keep working. Long list of usernames? Upload it as a CSV or TXT file in Or upload a list.

Limits

  • Private or deleted posts come back as free not_found rows.
  • Numbers are as of the run.
  • Free Apify plan: the full result, no cap — read from Instagram's public view and paid from your monthly Apify credit at the Free price. Options that need a logged-in read (business contacts, views, saves, shares) and profiles hidden from logged-out visitors are for paid Apify plans.

How much does it cost to scrape Instagram post details?

Pay per event: you pay for the rows you get, plus $0.0005 per run. No subscription to this Actor.

Apify planPer 1,000 postsWhat $5 of free credit gets you
Free$0.594≈ 8,400 posts
Starter$0.54—
Business and higher$0.38—

Every event of this Actor on the Starter plan:

EventWhat it isPrice
Post detailEach post or reel returned by URL$0.54 per 1,000

Typical jobs on Starter:

  • 1,000 post links from a campaign report ≈ $0.54
  • One link from an n8n or Make step ≈ $0.0010

Always free: deleted or unavailable posts and duplicates. Set Maximum cost per run in the run options to cap any run.

Chain it with other Actors

Use the rows of an earlier run as the input: paste its dataset ID into Or: dataset from another run. For example, run Instagram Followers Scraper on a brand, then give its dataset to Instagram Email & Phone Scraper — you get the emails of the brand's followers. Works with the datasets of Apify's own Instagram Actors too.

Instagram post details API: Python, n8n, Make, Zapier and AI agents

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("instagram-data-api/instagram-post-details").call(run_input={'urls': ['https://www.instagram.com/reel/DehZj9wggt0/'], 'includeViews': False})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)

n8n, Make, Zapier or any HTTP client: one request runs the Actor and returns the rows — POST https://api.apify.com/v2/acts/instagram-data-api~instagram-post-details/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN with the input JSON as the body.

AI agents (MCP) — your agent gets this Actor as a tool:

  • Claude Code: claude mcp add --transport http apify "https://mcp.apify.com?tools=instagram-data-api/instagram-post-details"
  • Claude, Cursor, VS Code, n8n: add https://mcp.apify.com?tools=instagram-data-api/instagram-post-details as a remote MCP server and sign in to Apify.
  • Ask it: “Get views, saves and shares for these 10 reel links.” · “Refresh the engagement of my campaign posts.”

FAQ: scraping Instagram post details

How do I get Instagram post analytics by URL? Paste the post or reel links and press Start — one row per link with views, likes, comments, saves, shares and reposts as Instagram shows them right now. No access to the account is needed.

Which links work? instagram.com/p/…, /reel/…, /reels/…, /tv/… or just the shortcode (DehZj9wggt0).

Why are saves empty for some posts? Instagram reports saves for reels; for photos and carousels it doesn't, so we return null instead of a fake 0.

Can I track a post's numbers over time? Yes — save the URLs as a Task and schedule it hourly or daily. Each row has scrapedAt, so every run is a dated snapshot you can chart.

Do I need an Instagram account or cookies? No. You only paste usernames, links or keywords. Nothing to log in, nothing to install, and your own Instagram account is never involved.

What am I charged for — and what's free? Only the events in the pricing table, plus $0.0005 per run. Rows with an error field are free, and duplicates are never returned or charged. Each run's SUMMARY record shows results and free rows.

Can I try it for free? Yes. On Apify's free plan you get the full result, read from Instagram's public view and paid from the monthly free credit Apify gives every account. Options that need a logged-in read are for paid plans.

Can I cap what a run costs? Yes. Set Maximum cost per run in the run options — the run stops at your limit and SUMMARY shows stoppedAtChargeLimit: true.

Can I use it from n8n, Make, Zapier or an AI agent? Yes, like any Apify Actor: REST API, webhooks, the n8n, Make and Zapier integrations, and the Apify MCP server for Claude, Cursor, VS Code and other MCP clients. Short timeout in your workflow or agent? Set Return what's ready after (seconds): the run stops on time with what it has collected, and you pay only for that.

For AI agents

Actor: instagram-data-api/instagram-post-details
Does: Paste Instagram post or reel URLs, get one row each: views, likes, comments, saves, shares, reposts, audio, author. Bulk, no login.
Input: {"urls": ["https://www.instagram.com/reel/DehZj9wggt0/"], "includeViews": false}
Output: one JSON row per result, up to 61 fields; main: url, ownerUsername, takenAt, views, likes, comments, saves, shares, reposts, durationSec, caption
Free: deleted or unavailable posts and duplicates
Price: event "post-details" $0.54 per 1,000 on Starter + $0.0005 per run
Run: POST https://api.apify.com/v2/acts/instagram-data-api~instagram-post-details/run-sync-get-dataset-items?token=APIFY_TOKEN

More Instagram Actors from us

ContentPeopleStories
All-in-one Instagram Scraper · Reels · Posts · Post details · Reel views checker · Hashtags · Search · Transcripts · Tagged posts · Audio · Locations · Hashtag statsProfiles · Followers count · Account age · Emails & phones · Similar accounts · Similar accounts with profiles · Followers · Comments · Likers · Engagement rate · Username checker · User ID · Follower checkerStories · Highlights

What changed and when — see the Changelog tab.