Instagram Scraper: Posts, Reels, Comments & Profiles avatar

Instagram Scraper: Posts, Reels, Comments & Profiles

Pricing

from $1.50 / 1,000 post or reels

Go to Apify Store
Instagram Scraper: Posts, Reels, Comments & Profiles

Instagram Scraper: Posts, Reels, Comments & Profiles

Instagram scraper for public posts, reels, comments and profiles. By username, post link or reels keyword. No login needed, exact limits, real date and engagement filters, and you pay only for real, unique rows.

Pricing

from $1.50 / 1,000 post or reels

Rating

0.0

(0)

Developer

API Samurai

API Samurai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

This Instagram scraper gets public posts and reels from any public profile, full details of posts you link to, reels found by keyword, the comments under them, and profile details. Every post comes with caption, hashtags, mentions, likes, comment count, views for reels, duration, photo and video links, carousel items, location and owner. You pay only for real, unique rows, and IDs are always text, so long Instagram IDs never get rounded.

What you can use it for

  • Scrape an Instagram profile to collect its posts, its reels, or both, for competitor and creator research.
  • Scrape Instagram reels by keyword to find trending content and creators in a niche.
  • Scrape Instagram comments to read audience reactions for sentiment analysis and community management.
  • Fetch single posts or reels from links to fill in likes, views and captions for content you already track.
  • Get Instagram profile data (bio, followers, following, category, website) for influencer lists.
  • Build AI and NLP datasets of captions and comments with dates and engagement numbers.

Fair billing

  • Only real posts, comments and profiles are charged. No demo, mock or placeholder rows, ever. If the data source sends one, it is dropped and counted in the run summary.
  • No start fee, no per-run fee, no per-query fee, no minimum charge.
  • Same price on every Apify plan, free plan included.
  • Free Apify plan: up to 100 results per run (10 posts fetched by link, 10 profiles), so you can try it. Paid plans have no limit.
  • Date and engagement filters and limits are enforced by the Actor itself. Posts outside your dates or filters are skipped and not charged.
  • Max posts per input item and Max comments per post are exact: you never get, or pay for, more than you asked.
  • Duplicates are never charged. A reel found in a profile feed and in its Reels tab is saved once.
  • Private or missing profiles and posts cost nothing.
  • When you hit your spending limit, the run stops cleanly.

How to use

  1. Open the Instagram Scraper page and click Try for free (you sign in to your Apify account).
  2. Fill in at least one source: profiles, post or reel links, or reels search keywords.
  3. Set Max posts per input item, and optionally comments, dates and filters.
  4. Click Start. Rows appear in the Output tab while the run works.
  5. Export the dataset as JSON, CSV or Excel, or check the SUMMARY record in the key-value store.

API: start a run and get the rows in one call with POST https://api.apify.com/v2/acts/apisamurai~instagram-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN> and the input as JSON in the body.

Input

FieldWhat it does
ProfilesUsernames or links: natgeo, @natgeo, https://www.instagram.com/natgeo/.
What to get from profilesposts (default, the profile feed), reels (the Reels tab) or both.
Add a profile row per usernameOff by default. Adds one row with the profile's details.
Post or reel linksFull details of these posts or reels. Links or shortcodes.
Search reels by keywordPublic reels matching each keyword.
Get comments / Max comments per postOff by default. Up to 50 comments per post unless you change it.
Max posts per input itemPer profile (and content type) or keyword. Default 50.
Max rows for the whole runOptional hard cap on all rows, comments and profiles included.
Posted on or after / on or beforeInclusive, UTC.
Min likes, Min viewsSkip posts below these numbers.
{
"profiles": ["natgeo", "nasa"],
"contentType": "both",
"includeComments": true,
"maxCommentsPerPost": 20,
"maxItemsPerSource": 30,
"postedAfter": "2026-01-01"
}

Output

One row per post, reel, comment or profile; type tells them apart. Field names never change between runs. Example (shortened):

{
"type": "reel",
"id": "3600545900919030401",
"shortcode": "DH3tWudxIKB",
"url": "https://www.instagram.com/reel/DH3tWudxIKB/",
"caption": "Dana is neglecting a pretty important level of the food pyramid @danabeers @francisccellis",
"hashtags": [],
"mentions": ["danabeers", "francisccellis"],
"postedAt": "2025-03-31T16:29:30.000Z",
"likes": 387,
"commentsCount": 12,
"views": 35499,
"durationSeconds": 76.717,
"media": [{ "type": "video", "url": "https://instagram.fcps3-1.fna.fbcdn.net/v/...jpg", "videoUrl": "https://instagram.fcps3-1.fna.fbcdn.net/o1/...mp4" }],
"isCarousel": false,
"isPinned": false,
"location": null,
"owner": { "id": "260462810", "username": "barstoolsports", "fullName": "Barstool Sports", "verified": true },
"source": "posts",
"input": "barstoolsports",
"scrapedAt": "2026-04-02T10:00:00.000Z"
}

Comment rows have type: "comment", id, postShortcode, postUrl, text, author, authorVerified, likes, repliesCount, postedAt, scrapedAt. Profile rows have type: "profile", id, username, fullName, bio, followers, following, postsCount, verified, isBusiness, category, externalUrl, profilePicUrl, scrapedAt. Missing values are null, never a fake 0. views is null for photos.

Each run also writes a SUMMARY record to the key-value store. For every input item it lists posts and comments delivered, rows skipped by dates or filters, duplicates, placeholder rows dropped, and why it stopped (limit reached, no more results, private or not found, temporary error, spending limit, free plan limit or data source unavailable).

Pricing

$1.50 per 1,000 posts or reels; $6.50 per 1,000 posts fetched by link; $1 per 1,000 comments; $6.50 per 1,000 profiles

Integrations

  • Apify API to start runs and read datasets from any language.
  • Python and JavaScript clients (apify-client) for scripts and backends.
  • Zapier, Make and n8n to send new posts to Google Sheets, Slack, a CRM or a database.
  • MCP for AI agents: connect the Apify MCP server to Claude, ChatGPT or another MCP client and the agent can run this Actor as a tool.
  • Schedules and webhooks in Apify Console for daily or hourly runs.

FAQ

Do I need an Instagram account or login? No. You only need an Apify account. You never enter Instagram credentials, cookies or a session.

How many posts can I get? Up to 100,000 posts per input item on paid plans, and up to 100 results per run on the free Apify plan. Reels search returns at most 11 result pages per keyword.

Why did I get fewer results than I asked for? Open the SUMMARY record. It says for each input why it stopped: no more results, posts skipped by your dates or filters, duplicates, a private profile, the spending limit or the free plan limit. Min views skips rows without a view count, such as photos.

Can it scrape private accounts? No. Only public data is collected. A private or missing profile is reported as private or not found and costs nothing. With Add a profile row on, a private profile can still return its public details (bio, follower counts).

Can I schedule it? Yes. Create a schedule in Apify Console, for example a daily profile run with Posted on or after set, and connect an integration to get the new rows.

Which export formats are there? JSON, CSV, Excel, XML, HTML and JSONL from the dataset, or the API.

Is it legal to scrape Instagram? The Actor collects only public data. You are responsible for how you use it: follow Instagram's terms and the laws where you live, and take care with personal data (for example under GDPR). This is not legal advice.

Tips

  • Use Posted on or after for profiles: the run stops paging once the feed is past that date, so fewer requests are needed.
  • Set Max rows for the whole run when you get comments for many posts and want a firm total.