Instagram Content Scraper avatar

Instagram Content Scraper

Pricing

$2.00 / 1,000 item scrapeds

Go to Apify Store
Instagram Content Scraper

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

Bruno

Maintained by Community

Actor 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

ModeGive itYou get
Profile posts@username, username, or a profile URLthe profile's most recent posts & reels
Hashtag posts#travel or travelthe hashtag's recent (or top) posts
Single post/reelhttps://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 force user / hashtag / url.
  • maxItems — max posts per profile/hashtag (a URL always returns 1).
  • hashtagSection — recent or top.
  • 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.

Instagram has locked down most of its web API for logged-out visitors. Here is the honest state:

ModeWithout 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 UNBLOCKER as a last resort.
  • It primes an anonymous csrftoken automatically, 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 own sessionCookie to 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.