Instagram API Scraper avatar

Instagram API Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Instagram API Scraper

Instagram API Scraper

⚡ Lightning-fast Instagram scraper. Extract posts, reels, comments, profile details, hashtag posts, and search results from any public Instagram URL or username — no login, no cookies, no headless browser.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScrapeFlow

ScrapeFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

📸 Instagram API Scraper

⚡ Lightning-fast, no-login Instagram scraper. Profiles · Posts · Reels · Comments · Hashtags · Search.

Extract clean, structured data from any public Instagram URL or username — no headless browser, no logged-in cookies, no fragile session jugglery. The actor calls Instagram's own public endpoints with a battle-tested proxy escalator that quietly switches gears the moment Instagram pushes back.


✨ Why this actor?

🔓 No login requiredScrapes public data only — no sessions, no risky cookie reuse
🪶 Browser-freePure async HTTP — 10× cheaper than headless-Chrome scrapers
🛡️ Auto-escalating proxiesDirect → datacenter → residential, all behind the scenes
💾 Live resultsEach item is pushed to the dataset the moment it is parsed
🗂️ Per-section tablesPosts, comments, profiles, reels each get their own view
📅 Date filtering2 months, 30 days, 2026-01-01 — whichever you prefer
🧷 Source attributionOptional parentData tags each row with where it came from

🎯 Key Features

  • 📷 Posts — recent posts from any profile, hashtag, or single shortcode
  • 💬 Comments — public comments under a post or reel
  • 🪪 Details — full profile or post metadata
  • 🔖 Mentions — every @mention parsed out of a profile's posts
  • 🎬 Reels — reel-feed from a profile
  • 🔎 Search — user / hashtag / place top-search

📥 Input

{
"directUrls": [
"https://www.instagram.com/humansofny/",
"humansofny",
"https://www.instagram.com/p/DPwJzEVDbwC/"
],
"resultsType": "posts",
"resultsLimit": 30,
"onlyPostsNewerThan": "1 year",
"search": "",
"searchType": "hashtag",
"searchLimit": 20,
"addParentData": false,
"proxyConfiguration": { "useApifyProxy": false }
}
FieldTypeDescription
directUrlsarrayInstagram URLs or bare usernames. Required.
resultsTypeenumposts · comments · details · mentions · reels · stories
resultsLimitintegerMax items per URL (default 30)
onlyPostsNewerThanstring2026-01-01, 7 days, 2 months, etc. Empty = no filter
searchstringOptional Instagram search query
searchTypeenumuser · hashtag · place
searchLimitinteger1–250
addParentDatabooleanAttach a parentData field for source tracking
proxyConfigurationobjectDefaults to no proxy. Actor auto-falls back to datacenter, then residential, when needed

📤 Output

Each item is pushed to the run's default dataset immediately on parse and tagged with a section field (posts, comments, reels, profiles, details, mentions, search). Switch between the 📷 Posts overview, 💬 Comments view, 🪪 Profile details, 🎬 Reels view, 🔖 Mentions view, and 🔎 Search results tabs in the Console to see the right columns for each section.

Post example

{
"id": "3742534382104984578_242598499",
"type": "Sidecar",
"shortCode": "DPwJzEVDbwC",
"caption": "A few years ago I received a DM from @zohrankmamdani…",
"hashtags": [],
"mentions": ["zohrankmamdani"],
"url": "https://www.instagram.com/p/DPwJzEVDbwC/",
"commentsCount": 3949,
"firstComment": "Hello friends ❤️ …",
"latestComments": [ /* up to ~24 comments with full owner objects */ ],
"dimensionsHeight": 720,
"dimensionsWidth": 1080,
"displayUrl": "https://scontent…cdninstagram.com/…",
"images": [ "…", "…" ],
"likesCount": 30381,
"timestamp": "2026-05-06T15:31:34.000Z",
"childPosts": [ /* carousel children */ ],
"ownerFullName": "Humans of New York",
"ownerUsername": "humansofny",
"ownerId": "242598499",
"isCommentsDisabled": false,
"inputUrl": "https://www.instagram.com/humansofny/"
}

Profile, comment, reel, mention and search records have analogous, clean shapes — see the dataset views in Console.


🛡️ How the proxy escalator works

🌐 direct ──► 🏢 datacenter ──► 🏠 residential (3 retries, sticky)
  1. Default: no proxy. Talk directly to Instagram.
  2. First block (HTTP 401/403/407/429/451/503 or transport errors) → switch to a datacenter proxy and retry.
  3. Second block → switch to a residential proxy and retry up to 3 times.
  4. Once on residential, stay there for the rest of the run.

Every escalation is logged with a clear emoji marker so you can see exactly when Instagram pushed back.


🚀 How to Use (Apify Console)

  1. Log in at https://console.apify.comActors.
  2. Open Instagram API Scraper.
  3. Drop in your URLs / usernames, pick a resultsType, set a resultsLimit.
  4. (Optional) tighten the window with onlyPostsNewerThan or run a search.
  5. Click Start.
  6. Watch the live log — posts/comments/profiles stream into the dataset as they are found.
  7. Open Output → switch between Posts overview, Comments view, Profile details tabs.
  8. Export to JSON / CSV / XLSX.

🤖 Use via API

Start a run synchronously and receive the dataset items in the response:

curl -X POST \
"https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"directUrls": ["https://www.instagram.com/humansofny/"],
"resultsType": "posts",
"resultsLimit": 30
}'

Or start asynchronously:

curl -X POST \
"https://api.apify.com/v2/acts/<ACTOR_ID>/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"directUrls":["humansofny"],"resultsType":"posts","resultsLimit":30}'

💡 Best Use Cases

  • 🧠 Audience research — pull a creator's recent post + comment data into your warehouse
  • 📈 Brand monitoring — track mentions of your brand across hashtags
  • 🎯 Competitive analysis — diff a competitor's posting cadence and engagement
  • 🧬 Trend mining — sweep hashtags weekly and feed posts into an LLM for theme analysis
  • 📨 Outreach prep — enrich profile lists with bio + follower counts before email runs

💰 Pricing

This actor follows Apify's pay-per-event model. You're billed per actor start and per dataset item produced; full breakdown is shown on the actor's pricing page. The actor exits gracefully if your spend limit is reached — runs never crash because of pricing.


❓ FAQ

Does it need an Instagram login? No. It only reads public data through Instagram's own public endpoints.

Why am I sometimes getting fewer comments than the post's commentsCount? Without a logged-in session, Instagram only returns the most recent ~24 comments per post. The actor returns all of those.

What happens if Instagram blocks me? The actor auto-escalates: direct → datacenter → residential (3 retries). You'll see the escalation in the log; nothing for you to do.

Can I scrape private accounts? No — and you shouldn't. Only publicly accessible profiles, posts, reels, and hashtags are supported.

Can I scrape stories? Only public, currently-visible stories on profiles that expose them publicly. Most stories are private and skipped silently.


  • Data is collected only from publicly available Instagram URLs.
  • The end user is responsible for compliance with GDPR, CCPA, anti-spam rules, and Instagram's terms.
  • Don't use scraped personal data to spam, dox, or harass.

🆘 Support & Feedback

Open an issue on the actor page or send a message in the Apify Console. Bug reports with the run ID get fixed fastest. 💚