Skip to main content

Instagram Scraper Tutorial (2026): Profiles, Posts, Hashtags, Followers & Comments

· 7 min read
Yassine El Haddad
Software Developer & Automation Specialist

I build production AI agents, web scrapers, and automation pipelines. Most of what I publish here comes from the actual problems they run into: proxies that get banned, anti-bot stacks that fingerprint your client, RAG that drifts when the underlying data moves. Stack: Python, TypeScript, Go, FastAPI, LangChain, Crawlee, Playwright, deployed on AWS, GCP, and Cloudflare.

Quick answer: Apify's Instagram Scraper extracts profiles, posts, hashtags, followers, and comments from Instagram. No coding required. Run from the Apify Store with a free account.

You need public Instagram data at scale—profiles, posts, hashtag feeds, follower lists, comments—without maintaining proxies, sessions, or brittle scripts. This tutorial walks through the Instagram Scraper on Apify: inputs, outputs, a realistic JSON sample, use cases, and what private or logged-in-only data cannot be collected ethically through a Store Actor.

Open Instagram scrapers in the Apify Store → · Run Instagram Scraper (popular Actor) →

What data you can extract

Profile (public)

FieldExample
Usernamenike
Full nameNike
BiographyText + hashtags
Follower / following countsIntegers (point-in-time)
Post countInteger
Verified flagtrue / false
Profile image URLCDN URL (may expire)
External linkIf shown on profile

Posts (public)

FieldExample
Post / media IDPlatform id
CaptionFull text
Like / comment countsIntegers
TimestampISO-8601
Media typeImage, video, carousel
Media URLsCDN URLs
Hashtags (parsed)Array of tags

Hashtags and discovery

ModeTypical output
Hashtag scrapeRecent/top posts for a tag (as exposed to logged-out or scraper session)
SearchProfiles or tags matching a query (Actor-dependent)

Followers and comments

TargetNotes
Followers / followingLists for public accounts, subject to Actor caps and Instagram friction
CommentsUsually from explicit post URLs; volume limits apply per post

Exact field names depend on the Actor version—always treat the input/output schema in the Store UI as the source of truth.

Step-by-step: configure, run, download

1. Open the Actor

Browse Instagram scrapers in the Apify Store and open Instagram Scraper (or another Instagram Actor that matches your need). Click Try for free / Open console.

2. Set inputs

Input typeWhen to use it
UsernamesProfile metadata + recent posts
HashtagsCampaign tracking, UGC discovery
Post URLsDeep dive on engagement and comments
SearchProspect discovery by keyword

Start with small limits (for example tens of posts or comments), then scale once the schema matches your pipeline.

3. Proxies and sessions

Hard targets expect residential or mobile-class traffic. On Apify, Actors often default to managed proxy pools; follow the Actor README. For platform-wide proxy docs, see Apify Proxy.

4. Run and monitor

Start the run, watch the Log tab for rate limits or schema errors, and confirm Succeeded before exporting.

5. Export

Open Storage → Dataset and download JSON, CSV, or Excel for BI tools, enrichment, or your own app.

Sample dataset item (illustrative JSON)

Field names and nesting vary by Actor version; this shape is typical for a post-level row.

{
"type": "post",
"id": "1809234567890123456",
"shortCode": "AbCdEfGhIjK",
"url": "https://www.instagram.com/p/AbCdEfGhIjK/",
"caption": "Example caption #example #apify",
"timestamp": "2026-03-15T14:22:11.000Z",
"likesCount": 12450,
"commentsCount": 312,
"ownerUsername": "examplebrand",
"ownerFullName": "Example Brand",
"hashtags": ["example", "apify"],
"displayUrl": "https://scontent.cdninstagram.com/…",
"isVideo": false,
"videoViewCount": null
}

Use cases

Use caseHow scraping helps
Influencer discoveryFilter creators by size, niche hashtags, and engagement proxies
Competitor contentTrack posting cadence, themes, and campaign hooks
Campaign reportingAggregate hashtag participation and top posts
Lead researchPublic bios and links (emails only if publicly stated)
Market researchQualitative signals from comments and captions

Limitations: public vs private

AccessibleNot accessible (via standard public-data Actors)
Public profiles and postsPrivate accounts you do not follow
Public comments (within caps)Direct messages
Follower lists for many public accountsStories and ephemeral surfaces
Data visible without your personal loginAnything that requires being an approved follower

Instagram's Terms restrict automated access; use data for allowed purposes in your jurisdiction and do not resell personal data in ways that violate privacy law. When in doubt, get legal advice.

Influencer discovery workflow (compact)

  1. Pick 10–20 audience hashtags (not only your brand tag).
  2. Run hashtag mode with a modest cap per tag; dedupe authors.
  3. Filter by follower band and engagement proxy: (likes + comments) / followers on recent posts.
  4. Export usernames, URLs, and metrics for outreach or CRM.
Apify Affiliate Banner 728x90Apify Affiliate Banner 728x90Apify Affiliate Banner 300x50Apify Affiliate Banner 300x50
Validate with a tiny run first

Scrape one username and one hashtag with low limits before large jobs—Instagram changes frequently, and Actor fields shift between versions. Create a free Apify account →

Frequently Asked Questions

Laws vary by country and use case. Publicly visible data is often used for research or internal analytics, but Instagram's Terms restrict automated access. GDPR and similar rules may apply to personal data. Consult qualified counsel for compliance before scaling.

Usually no—Apify Store Actors use managed infrastructure and documented inputs so you do not paste your personal password into a scraper. Follow each Actor's README for any optional session or cookie fields.

No ethical Store flow provides private content without authorization. Anything claiming otherwise is a red flag. Stick to public data or official APIs/partnerships.

Only if the user published them in public bio or post text. There is no legitimate bulk 'email reveal' from Instagram through scraping.

Rate limits, partial blocks, removed posts, or hashtag visibility rules reduce completeness. Lower concurrency expectations, retry off-peak, and split work into smaller runs.

Use the Actor modes documented for those entities, keep caps realistic, and expect more friction than simple profile scrapes. Upgrade proxy settings only when the Actor recommends it—see Apify Proxy documentation.

Start with the best-maintained general Instagram Scraper for your goal (posts vs comments vs followers), then read the Pricing and README tabs. The filtered Store search helps you compare alternatives side by side.

Common mistakes and fixes

Run stops early or returns partial data.

Lower per-run limits, run off-peak, and retry; Instagram throttles aggressively. Check the Actor log and README for the version you use. Consider [Apify Proxy](https://apify.com/proxy?fpr=use-apify) settings recommended on the Actor page.

Empty profile or 'not found' for a known public account.

Confirm the username (no @), check for typos, and verify the account is public. Instagram layout changes can break specific Actor versions—update to the latest Actor release from the Store.

Comments missing or capped.

Comment scraping is often a separate input mode or Actor. Reduce `maxComments` expectations; some posts disable comments or hide them from logged-out views.