Instagram Hashtag Scraper - Posts, Reels & Media avatar

Instagram Hashtag Scraper - Posts, Reels & Media

Under maintenance

Pricing

$0.40 / 1,000 post returneds

Go to Apify Store
Instagram Hashtag Scraper - Posts, Reels & Media

Instagram Hashtag Scraper - Posts, Reels & Media

Under maintenance

Scrape any Instagram hashtag for top & recent posts and reels: captions, likes, comments, media URLs, owner & timestamp. Bulk hashtags, clean flat records, pay per post (failed runs free), export JSON/CSV/Excel or deliver to Notion.

Pricing

$0.40 / 1,000 post returneds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

⚡ Instagram Hashtag Scraper — Posts by Hashtag

Pull top & recent posts under any Instagram hashtag and get back clean, flat records — caption, like & comment counts, media URLs, owner, hashtags, mentions and timestamp. Feed it a list of hashtags (or /explore/tags/ URLs), set a cap, and export to JSON, CSV or Excel, hit it from the API, or have results delivered straight to Notion. Just $0.40 per 1,000 posts — billed only for posts actually returned.

Instagram gates hashtag feeds behind a login. This actor handles that the same way every paid IG service does — you supply one or more throwaway-account sessionid cookies and it rotates the account pool + residential IPs for you. No app, no bearer token, no business API approval.

Why this scraper wins

  • 🍪 Account-pool rotation — add several throwaway sessionid cookies and the actor cycles accounts and fresh residential IPs every few hops, so one flagged session never sinks the run.
  • 🏠 Residential by default — Instagram hard-blocks datacenter IPs, so the actor forces Apify RESIDENTIAL proxy out of the box. Leave it as-is and it just works.
  • 💸 Cheaper, pay-per-result$0.40 / 1,000 posts, charged per post returned. Empty or blocked runs cost nothing.
  • 🧹 Clean, flat output — one tidy record per post, ready for spreadsheets, dashboards or LLM pipelines. No raw nested soup.
  • 🔁 Auto-dedupe — the same post is never returned (or charged) twice in a run.
  • 📬 Built-in delivery — optionally push every run straight into Notion via Apify connectors, zero extra code.
  • 🚦 Honest errors — if Instagram blocks or returns nothing, you get a clear errorCode diagnostic row (RATE_LIMITED, BLOCKED, NO_RESULTS) instead of silent emptiness.

What you can scrape

ModeInputNotes
Hashtag feedhashtags (with or without #)Top and recent posts under each tag
Hashtag URLsstartUrls (/explore/tags/<tag>/)Same as above, paste-friendly

Input

  • hashtags — list of hashtags to scrape, e.g. nature, travel (the # is optional).
  • startUrls — or paste https://www.instagram.com/explore/tags/<tag>/ URLs instead.
  • resultsLimit — max posts per hashtag (default 50, up to 2000). You pay per post.
  • sessionCookies (required) — one or more logged-in sessionid cookies from throwaway accounts; the actor rotates them. From a logged-in instagram.com: F12 → Application → Cookies → copy the sessionid value. Paste one per line.
  • proxyConfiguration — Residential is preconfigured and required; leave the default.
  • notionConnector / notionParentId — optional, deliver results to a Notion data source.

Output (one record per post)

{
"ok": true,
"type": "image",
"shortCode": "C1aBcDeFgHi",
"url": "https://www.instagram.com/p/C1aBcDeFgHi/",
"caption": "Golden hour over the fjord 🏔️ #nature #travel",
"hashtags": ["nature", "travel"],
"mentions": [],
"likesCount": 18423,
"commentsCount": 204,
"videoViewCount": null,
"displayUrl": "https://instagram.fxxx.fna.fbcdn.net/v/....jpg",
"videoUrl": null,
"images": ["https://instagram.fxxx.fna.fbcdn.net/v/....jpg"],
"isVideo": false,
"dimensions": { "height": 1080, "width": 1080 },
"ownerUsername": "wanderlust",
"ownerId": "1789456123",
"timestamp": "2026-06-21T07:14:02.000Z",
"hashtag": "nature"
}

Pricing

$0.40 per 1,000 posts ($0.0004 per post, pay-per-event). You are charged only for posts actually returned — failed, blocked or empty runs cost nothing.

FAQ

Why do I need sessionid cookies? Instagram's hashtag feed is login-gated — there is no keyless path. This is exactly how every paid IG hashtag service works. Use throwaway accounts and add several for resilience.

How many cookies should I add? More is better. The actor rotates accounts every few IP hops, so 3–5 throwaway sessions keep success rates high on sustained runs.

Why is residential proxy required? Instagram hard-blocks datacenter IP ranges. Residential is preconfigured so runs actually return data — leave the default.

It returned an errorCode row — why? That's the actor telling you exactly what happened (RATE_LIMITED, BLOCKED, NO_RESULTS) instead of failing silently. Add more sessions, lower volume, or retry.

Can I deliver to Notion? Yes — set notionConnector and notionParentId and every run lands in your Notion data source automatically.