Instagram Content Scraper
Pricing
$2.00 / 1,000 item scrapeds
Instagram Content Scraper
Scrape Instagram posts and reels by profile, hashtag or URL: caption, likes, comments, views, media, owner and date. Public profile mode needs no login.
Pricing
$2.00 / 1,000 item scrapeds
Rating
0.0
(0)
Developer
Bruno
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Content Scraper (Posts, Reels, Hashtags, Comments)
Scrape public Instagram content — no login required. Point it at a profile, a hashtag, or a single post/reel URL and get back clean, structured data: one row per content item, plus optional comments.
It calls Instagram's own public web endpoints (the same ones instagram.com uses to render pages) through Apify Proxy residential IPs with browser-grade TLS/header fingerprints, rotating IP/session on every retry. When residential keeps getting blocked it can escalate to the Apify UNBLOCKER group.
This actor is about content. If you want profile stats (bio, followers, verified, etc.), use a profile scraper instead — this one returns the posts/reels themselves.
What it does
| Mode | Give it | You get |
|---|---|---|
| Profile posts | @username, username, or a profile URL | the profile's most recent posts & reels |
| Hashtag posts | #travel or travel | the hashtag's recent (or top) posts |
| Single post/reel | https://www.instagram.com/p/CODE/ or /reel/CODE/ | that one item, in full detail |
In auto mode (default) each line is classified on its own, so you can mix profiles, hashtags and URLs in a single run.
Input
{"queries": ["nasa", "#travel", "https://www.instagram.com/reel/C8Qh1p_p3Kp/"],"mode": "auto","maxItems": 30,"hashtagSection": "recent","includeComments": false,"maxComments": 24,"sessionCookie": "","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] },"useUnblockerFallback": true}
- queries (required) — profiles, hashtags and/or post/reel URLs, one per line.
- mode —
auto(detect per line), or forceuser/hashtag/url. - maxItems — max posts per profile/hashtag (a URL always returns 1).
- hashtagSection —
recentortop. - includeComments / maxComments — also pull comments (author, text, likes, date) per item.
- sessionCookie (optional, advanced) — your own Instagram cookie (
sessionid=...; csrftoken=...) to unlock more data and reduce blocking. Never use someone else's credentials. - proxyConfiguration — residential strongly recommended.
- useUnblockerFallback — escalate to the UNBLOCKER group as a last resort.
Output (one item per content)
{"query": "nasa","mode": "user","username": "nasa","id": "3419735883757493278","shortcode": "C8Qh1p_p3Kp","url": "https://www.instagram.com/p/C8Qh1p_p3Kp/","type": "carousel","is_video": false,"caption": "…","likes": 123456,"comments_count": 789,"views": null,"taken_at": "2024-06-20T15:04:05.000Z","thumbnail": "https://…","media_url": "https://…","dimensions": { "width": 1080, "height": 1350 },"carousel_media": [ { "is_video": false, "url": "https://…", "display_url": "https://…" } ],"owner_username": "nasa","owner_id": "528817151","owner_full_name": "NASA","comments": [{ "id": "…", "username": "someone", "text": "🔥", "likes": 12, "created_at": "2024-06-20T16:00:00.000Z" }]}
type is one of image, video, carousel, reel. views is populated for videos/reels.
comments appears only when includeComments is on.
What works without login vs. what needs a cookie
Instagram has locked down most of its web API for logged-out visitors. Here is the honest state:
| Mode | Without login (public) | With sessionCookie |
|---|---|---|
| Profile posts (@user) | ✅ Full data — the profile's recent posts/reels with likes, comment counts, caption, media, owner, carousel, dimensions. Paginates for more. | ✅ Same, more stable + deeper pagination |
| Single post/reel URL | ✅ Partial data from the public post embed — shortcode, type, caption, comment count, thumbnail/media URL, owner. (Likes and exact timestamp aren't in the public embed.) | ✅ Full data incl. likes, timestamp, comments |
| Hashtag posts | ❌ Instagram redirects logged-out hashtag requests to its login page | ✅ Works with a valid cookie |
| Comments | ⚠️ Limited/none without login | ✅ Full comments (author, text, likes, date) |
The actor detects blocking and, for a logged-out run, returns a clear message telling you when a
sessionCookie is required (hashtags, full single-post detail, comments).
Notes & honest limitations
- Residential proxies are essential (datacenter/no-proxy requests are almost always blocked).
The actor rotates IP/session per attempt and escalates to
UNBLOCKERas a last resort. - It primes an anonymous
csrftokenautomatically, but Instagram still requires a logged-in session for hashtags, full single-post detail (its GraphQL returns 401 logged-out), and bulk comments — so supply your ownsessionCookieto unlock those. - Profile pagination and comment threads are best-effort and may stop early when logged out.
- Only public content is returned. Private profiles/posts require a valid
sessionCookie, and even then only what that account can see. - Respect Instagram's Terms and applicable laws; scrape responsibly.