Instagram Scraper Ultimate avatar

Instagram Scraper Ultimate

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Instagram Scraper Ultimate

Instagram Scraper Ultimate

Scrape public Instagram profiles, posts, Reels, hashtags, places, comments, and media links. Export clean data for research, monitoring, and analysis.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Muhammad Qaseem Iqbal

Muhammad Qaseem Iqbal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Instagram Scraper Ultimate 📸✨

Extract clean, ready-to-use data from public Instagram pages in minutes. 🚀

Instagram Scraper Ultimate helps you collect public Instagram profiles, posts, Reels, hashtags, places, comments, media links, and search results for market research, social listening, influencer discovery, campaign tracking, lead research, and trend monitoring. 📊🔎

You do not need an Instagram login for the default setup. The Actor is built for public data only. It does not unlock private profiles, bypass access controls, or collect hidden account data. 🔐✅

What does this Actor do? 🌟

Give the Actor Instagram usernames, post URLs, Reel URLs, hashtag URLs, place URLs, or a search term. It visits the public pages, extracts the information Instagram makes visible, and saves the results in an Apify dataset you can download as JSON, CSV, Excel, XML, RSS, or HTML. 📁⬇️

Use it when you want a simple way to turn public Instagram pages into organized data instead of manually copying posts, captions, likes, comments, profile details, and links one by one. 🧹✨

What can you scrape? ✅

Data typeWhat you can get
👤 ProfilesUsername, full name, biography when visible, profile URL, follower counts, following counts, post counts, verification status, privacy status, category, and related profile details
📷 PostsPost URL, shortcode, caption, hashtags, mentions, post type, owner username, timestamp, likes, comments count, views when available, and media URLs
🎬 ReelsReel URL, shortcode, caption, owner, media type, engagement metrics when available, and media URLs
#️⃣ HashtagsHashtag name, hashtag URL, visible post counts, and hashtag-related post results
📍 PlacesPlace name, place ID, place URL, location metadata when available, and place-related post results
💬 CommentsPublic comments, comment owner usernames, timestamps, likes, replies when exposed, and parent comment IDs
🔎 Search resultsPublic profile, hashtag, and place search results from your query
🖼️ MediaPublic image, thumbnail, and video URLs, with optional download into the Apify key-value store
⚠️ ErrorsClear error records when a target cannot be processed

Why scrape Instagram? 💡

Public Instagram data can help you understand what people, brands, creators, and communities are talking about. 🌍

Common use cases include:

  • 📈 Track hashtag trends and see which topics are gaining attention.
  • 🧲 Find influencers, creators, and brand partners in a niche.
  • 🛍️ Monitor product launches, campaigns, and customer reactions.
  • 💬 Analyze public comments for brand sentiment and feedback.
  • 📍 Research activity around places, venues, cities, stores, or events.
  • 🧪 Build datasets for academic, market, or competitor research.
  • 🔔 Run scheduled monitoring jobs and spot changes over time.
  • 📊 Export public Instagram data to spreadsheets, dashboards, CRMs, or BI tools.

How to use Instagram Scraper Ultimate 🏁

  1. Open the Actor in Apify Console. 🎛️
  2. Choose what you want to collect in Operation. 🧭
  3. Add usernames, URLs, hashtags, place IDs, or a search query. ✍️
  4. Set your result limit. For a cheap test, start small, such as 10 results. 💸
  5. Keep comments and media downloads turned off unless you need them. ⚙️
  6. Click Start. ▶️
  7. Download your results from the Dataset tab. 📥

That is it. No coding is required. 🙌

Quick input examples 🧪

Scrape public profile posts 👤📷

{
"operation": "profilePosts",
"usernames": ["humansofny", "natgeo"],
"maxItemsPerTarget": 10,
"includeProfileDetails": true
}

Scrape one public post 📷

{
"operation": "postDetails",
"postUrls": ["https://www.instagram.com/p/C3TTthZLoQK/"],
"includeComments": false,
"downloadMedia": false
}

Scrape public Reels 🎬

{
"operation": "profileReels",
"usernames": ["instagram"],
"maxItemsPerTarget": 10
}

Search for places 🔎📍

{
"operation": "searchResults",
"search": "Niagara Falls",
"searchType": "place",
"searchLimit": 20
}

Scrape hashtag posts #️⃣📈

{
"operation": "hashtagPosts",
"hashtags": ["travelphotography"],
"maxItemsPerTarget": 25
}

Scrape public comments 💬

{
"operation": "comments",
"postUrls": ["https://www.instagram.com/p/C3TTthZLoQK/"],
"includeComments": true,
"includeReplies": false,
"maxCommentsPerPost": 50
}

Save media files 🖼️💾

{
"operation": "postDetails",
"postUrls": ["https://www.instagram.com/p/C3TTthZLoQK/"],
"downloadMedia": true,
"downloadMediaTypes": ["image", "thumbnail", "video"],
"maxMediaFiles": 10
}

Input settings explained 🧰

You can use the visual input form in Apify Console, or paste JSON like the examples above. 🧾

SettingPlain-English meaning
🧭 operationWhat the Actor should do, such as profile posts, post details, comments, hashtag posts, place posts, search results, or auto-detection
🔗 startUrlsInstagram URLs to process, useful when you have a mixed list of profiles, posts, Reels, hashtags, or places
👤 usernamesInstagram usernames, with or without @
#️⃣ hashtagsHashtags, with or without #
📍 placeUrlsInstagram place URLs or numeric place IDs
📷 postUrlsPost or Reel URLs
🔎 searchA search term for finding public profiles, hashtags, or places
🎚️ searchLimitMaximum number of search results to save
📦 maxItemsPerTargetMaximum number of posts, Reels, or discovered items to save per target
👤 includeProfileDetailsAdd profile details when profile targets are processed
💬 includeCommentsTry to collect public comments for posts and Reels
↩️ includeRepliesInclude public comment replies when Instagram exposes them
🔢 maxCommentsPerPostMaximum number of public comments to save for each post
📅 fromDate / toDateKeep only posts inside a date range when timestamps are available
🖼️ downloadMediaStore media files in Apify storage instead of only saving temporary Instagram CDN links
🧮 maxMediaFilesMaximum number of media files to download in one run
🌐 proxyConfigurationOptional proxy settings. The default is off to keep small runs cheap
🐢 maxConcurrencyHow many targets to process at the same time. Lower values are gentler and cheaper
🔁 maxRequestRetriesHow many times to retry failed requests. The default is 0 for low-cost testing
🧹 deduplicateAcrossRunsRemember previously seen items using a named state store
🆕 outputOnlyNewItemsWhen deduplication is on, save only newly discovered items
📉 changeDetectionTrack metric changes across runs
🛡️ removePersonalTextFieldsRemove captions, biographies, comments, and similar text fields where supported
🕶️ redactUsernamesReplace usernames with stable redacted labels where supported

Output format 📦

The Actor saves results to the default Apify dataset. Each dataset row is one record, such as a profile, post, comment, hashtag, place, media item, search result, or error. 📚

Every record includes:

  • 🏷️ recordType - tells you what kind of row it is, such as post, profile, or comment.
  • 🧾 source - shows which input produced the result.
  • 🎯 target - shows the normalized target, such as the username, shortcode, URL, or place ID.
  • 📊 metrics - includes counts such as likes, comments, views, followers, or posts when Instagram exposes them.
  • 🖼️ media - contains public media URLs and download information.
  • 🕒 crawl - includes scrape time, request URL, warnings, and whether the result is partial.

The Actor also writes an OUTPUT summary with total records, finished requests, failed requests, warnings, and errors. 🧾✅

Example post output 📷

{
"recordType": "post",
"schemaVersion": "1.0",
"source": {
"input": "https://www.instagram.com/p/ABC123/",
"inputType": "postUrl",
"inputIndex": 0,
"operation": "postDetails"
},
"target": {
"type": "post",
"name": "ABC123",
"url": "https://www.instagram.com/p/ABC123/",
"id": "ABC123"
},
"post": {
"shortCode": "ABC123",
"url": "https://www.instagram.com/p/ABC123/",
"type": "image",
"caption": "Example caption #campaign @partner",
"hashtags": ["campaign"],
"mentions": ["partner"],
"timestamp": "2026-06-01T12:00:00.000Z",
"ownerUsername": "examplebrand"
},
"metrics": {
"likesCount": 100,
"commentsCount": 5
},
"media": [
{
"type": "image",
"displayUrl": "https://cdn.example.com/post.jpg",
"downloaded": false,
"downloadStatus": "skipped"
}
],
"crawl": {
"scrapedAt": "2026-06-15T13:16:50.780Z",
"partial": false,
"warnings": [],
"requestUrl": "https://www.instagram.com/p/ABC123/"
}
}

Dataset views 👀

In Apify Console, the dataset includes ready-made views so you can scan the data faster. ✨

  • 📋 Overview - all records with common fields.
  • 📷 Posts and Reels - captions, URLs, timestamps, metrics, hashtags, and mentions.
  • 👤 Profiles - usernames, follower counts, verification status, and profile metadata.
  • 💬 Comments - comment text, owners, timestamps, likes, and reply relationships.
  • #️⃣ Hashtags - hashtag names, URLs, and counts.
  • 📍 Places - place IDs, names, URLs, and location details when visible.
  • 🔎 Search Results - discovered public profiles, hashtags, and places.
  • 🖼️ Media - downloaded media records and media storage details.
  • ⚠️ Errors - targets that could not be processed, with readable error messages.

How much will it cost? 💸

Instagram Scraper Ultimate is tuned for low-cost runs by default. 🪙

The default setup uses:

  • 🧠 256 MB memory by default.
  • 🐢 1 concurrent request.
  • 🔁 0 automatic retries.
  • ⏱️ 0 artificial delay.
  • 🌐 Proxy disabled by default.
  • 💬 Comments disabled by default.
  • 🖼️ Media downloads disabled by default.
  • 📦 Small default result limits.

This keeps quick tests very cheap. In a small Apify platform smoke test, one public post URL completed in about 9 seconds at 256 MB and saved one post record. ⚡

Your final cost depends on Apify platform pricing, runtime, memory, number of targets, retries, proxies, storage writes, dataset reads, and whether you download media. For the lowest cost, start with a small limit, keep media downloads off, keep comments off, and increase settings only after your test run looks good. 🧪➡️📈

How many results can I get? 📏

The number of results depends on what Instagram publicly shows for each target. Some pages expose rich public data. Others may show only partial data, require login, rate-limit requests, or change their page format. 🔄

A good rule of thumb:

  • 👀 Open the target in an incognito browser.
  • ✅ If you can see the content without logging in, the Actor has a better chance of collecting it.
  • ⚠️ If Instagram shows a login wall, hides comments, or blocks pagination, the Actor may return partial data or an error record.
  • 🧪 Run a small test before scaling to large jobs.

During the Actor run ▶️

While the Actor runs, it logs what it is processing and updates the run status with progress. You can watch the log in Apify Console. 👀

If an input is invalid, the Actor stops early and explains what needs to be fixed. If one target cannot be processed, the Actor can save an error record so you can review it later. 🧯

Exporting and integrations 🔌

After the run finishes, you can download the dataset from Apify Console. 📥

You can export to:

  • 📄 JSON
  • 📊 CSV
  • 📗 Excel
  • 🌐 HTML
  • 🧾 XML
  • 📰 RSS

You can also connect the results to cloud tools using Apify integrations, webhooks, or the Apify API. Popular destinations include Google Sheets, Google Drive, Slack, Make, Zapier, Airbyte, databases, dashboards, and custom apps. 🔗🚀

Public data, privacy, and responsible use ⚖️🛡️

This Actor is intended for public Instagram data only. It does not scrape private accounts, does not require Instagram login by default, and does not bypass access controls. 🔐

However, public Instagram pages may still contain personal data, such as usernames, captions, comments, profile text, images, or engagement data. You are responsible for using the results lawfully and respectfully. If you are unsure whether your use case is allowed, ask a qualified legal professional. 👩‍⚖️👨‍⚖️

Helpful privacy options:

  • 🛡️ Turn on removePersonalTextFields to remove captions, biographies, comments, and similar text fields where supported.
  • 🕶️ Turn on redactUsernames to replace usernames with stable redacted labels where supported.
  • 🧹 Use smaller limits and collect only the fields you actually need.

Instagram Scraper Ultimate is not affiliated with Instagram or Meta. ℹ️

Limitations ⚠️

Instagram changes often, and public pages can behave differently depending on the target, region, traffic, and current Instagram restrictions. 🌦️

Important limits to know:

  • 🔐 Private accounts cannot be scraped.
  • 🚪 Login-only content may not be available.
  • 💬 Comments are collected only when Instagram exposes them publicly.
  • 📜 Deep pagination may be limited by what Instagram shows publicly.
  • 🖼️ Instagram CDN media URLs can expire. Enable downloadMedia if stable media files matter.
  • 🌐 If you see rate limiting or login walls, try lower concurrency, smaller batches, or proxy settings.

Troubleshooting 🧯

ProblemWhat to try
😕 Fewer results than expectedCheck the target in an incognito browser, reduce concurrency, and start with a smaller batch
🚪 Login wall or blocked pageRetry later, lower request volume, or use proxy settings
💬 No comments returnedInstagram may not expose public comments for that post
🖼️ Media links stopped workingTurn on downloadMedia for stable stored files
🧾 Invalid input errorAdd at least one target source, such as startUrls, usernames, hashtags, placeUrls, postUrls, or search
⚠️ Partial recordsSome fields were not visible on the public page. Check warnings in the dataset and OUTPUT summary

FAQ 🙋

Does this Actor require Instagram login? 🔑

No. The default setup is public-data-first and does not require login.

Can it scrape private Instagram accounts? 🔐

No. It only works with public data that Instagram exposes.

Can it scrape Reels? 🎬

Yes. Use Reel URLs, profile Reel mode, or auto-detection with mixed Instagram URLs.

Can it scrape comments? 💬

Yes, when comments are publicly exposed by Instagram. Turn on includeComments and set maxCommentsPerPost.

Can it download images and videos? 🖼️

Yes. Turn on downloadMedia. This stores media files in the run key-value store, which is better than relying only on temporary Instagram CDN URLs.

Can I export to CSV or Excel? 📊

Yes. Open the Dataset tab after the run and choose your export format.

Can I run it every day? 📅

Yes. Create an Apify task from your input and schedule it in Apify Console. For recurring monitoring, consider using deduplicateAcrossRuns, outputOnlyNewItems, or changeDetection.

Can I use it with Google Sheets, Zapier, or Make? 🔌

Yes. Use Apify integrations, webhooks, or API access to send results to other tools.

Why are some fields missing? 🧩

Instagram does not show the same data for every public page. If a metric, timestamp, comment, or media URL is not visible, the Actor may leave that field empty or mark the result as partial.

For developers 🧑‍💻

Most users can run the Actor from Apify Console without touching code. If you are developing locally, use these commands:

npm install
npm test
npm run build
npm run start

When no local input is present, the Actor uses fixture mode so a local smoke run can finish without hitting Instagram. Production runs should provide real input and keep debugUseFixtures disabled. 🧪