Instagram Scraper - Profiles, Posts & Reels (No Login) avatar

Instagram Scraper - Profiles, Posts & Reels (No Login)

Pricing

$0.38 / 1,000 result returneds

Go to Apify Store
Instagram Scraper - Profiles, Posts & Reels (No Login)

Instagram Scraper - Profiles, Posts & Reels (No Login)

Scrape Instagram with no login or API key. One run returns full profiles plus posts AND reels: captions, likes, comments, views, media URLs, hashtags. Cheaper at $0.40/1k results, billed per item - failed runs cost nothing. JSON/CSV/Excel or Notion.

Pricing

$0.38 / 1,000 result 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

3 days ago

Last modified

Share

⚡ Instagram Scraper — Profiles, Posts & Reels (No Login, No API Key)

Scrape Instagram without a login or API key. Give it usernames or post/reel URLs and get back full profile data and every post — caption, likes, comments, views, media URLs (incl. carousels and videos), hashtags, mentions, owner and timestamp. Export to JSON, CSV or Excel, call it from the API, or have results delivered straight to Notion. Just $0.40 per 1,000 results — built for marketers, agencies, researchers and lead-gen teams who need Instagram data fast.

No account. No sessionid. No cookies. Paste a username and run.

Why this scraper wins

  • 🔓 Keyless — uses Instagram's public web_profile_info + GraphQL endpoints. You never supply credentials.
  • 🏠 Residential by default — Instagram hard-blocks datacenter IPs; this actor ships with Apify Residential proxy preconfigured, so it just works.
  • 🛡️ Graceful degradation — Instagram rotates its GraphQL doc_ids constantly; if deep pagination breaks, the actor still returns the profile and first-page posts instead of failing the whole run.
  • 💸 Cheaper — $0.40 / 1,000 results, billed per item actually returned (empty/failed runs cost nothing).
  • 🧹 Clean, flat records — one tidy object per profile/post, ready for sheets, dashboards or LLM pipelines.
  • 📬 Built-in Notion delivery — push every run into Notion via Apify connectors, zero extra code.
  • 🚦 Honest errors — a clear errorCode row when Instagram blocks, instead of silent emptiness.

What you can scrape

ModeInputReturns
Profileusernames or a profile URLProfile metadata + posts/reels (paginated)
Single post / reela /p/… or /reel/… URLThat item with media + engagement

Hashtag and location scraping are available as dedicated companion actors.

Input

  • usernames — accounts to scrape (e.g. nasa, natgeo).
  • startUrls — profile URLs (posts) or post/reel URLs (single item).
  • resultsLimit — cap the number of results (you pay per result).
  • onlyPostsNewerThan — date filter (YYYY-MM-DD).
  • proxyConfiguration — Residential (required; preconfigured).
  • notionConnector — optional Notion delivery.

Output (one record per post)

{
"type": "image",
"shortCode": "C8xExample",
"url": "https://www.instagram.com/p/C8xExample/",
"caption": "Sunrise over the Atlantic 🌅 #earth",
"hashtags": ["earth"],
"likesCount": 84210,
"commentsCount": 932,
"videoViewCount": null,
"displayUrl": "https://scontent.cdninstagram.com/...jpg",
"images": ["https://scontent.cdninstagram.com/...jpg"],
"isVideo": false,
"ownerUsername": "natgeo",
"timestamp": "2024-06-12T09:30:00.000Z"
}

Profile rows include username, fullName, biography, followersCount, followsCount, postsCount, verified, isBusinessAccount, private, profilePicUrl.

Pricing

$0.40 per 1,000 results (pay-per-result). You are only charged for items actually returned.

FAQ

Do I need an Instagram account? No. Public profiles, posts and reels work keyless.

Why is residential proxy required? Instagram instantly blocks datacenter IPs. Residential keeps success rates high — it's preconfigured for you.

Can it get comments / followers / private accounts? Those require a logged-in session and aren't part of the keyless scope. Comments are available via a dedicated companion actor.

It returned an errorCode row — why? That's the actor telling you exactly what happened (RATE_LIMITED, BLOCKED, NOT_FOUND) instead of failing silently.