Geonode logo

Unlimited Instagram scraper for AI agents.

An Instagram scraper for public profiles, posts, Reels, hashtag pages and comment threads. Unlimited requests for one flat bill from $50/mo, no credits, and a blocked request is free.

Start 48-hour free trial

No card. Unlimited pages. 5 threads. Failed requests $0

Unlimited web scraper
01

Images

02

Title

  • Title
  • Condition
03

Price & bidding

  • Price
  • Bids
  • Time left
  • Watchers
04

Seller

  • Seller rating
  • Sold listings
05

Specifics & shipping

  • Item specifics
  • Shipping
  • Item location

JavaScript rendered, parsed to JSON or Markdown, and a fetch that fails after three retries is never billed

Call it on Instagram

curl -X POST "https://scraper.geonode.io/v1/extract" \
  -H "X-Api-Key: $GEONODE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://www.instagram.com/nike/",
  "formats": [
    "json",
    "markdown"
  ],
  "render_js": true,
  "proxy": {
    "country": "US"
  }
}'

You came for an Instagram scraper. The key opens everything.

100% first-pass success

you’re here

Profile header: Username, Full name, Verified badge, Post count, Follower count, Following count, Bio and external link

Highlights & tabs: Story highlights, Posts tab, Reels tab, Tagged tab, Category label, Business contact buttons

Post grid: Thumbnail, Shortcode, Media type, Pinned marker, Carousel marker, Reel play count

Post detail: Caption, Hashtags and mentions, Like count, Comment count, Timestamp, Location tag, Tagged accounts, Product tags

Comments: Commenter username, Comment text, Comment likes, Reply count, Owner reply flag, Timestamp

One subscription, from $50 a month flat. Everything after the first line adds $0

The hard part is getting in. That's our part.

  • $50/moflat, priced by concurrency, not per request

  • 0credits, meters or per-page charges

  • $0for any Instagram request that still fails after 3 retries

  • 48 hfree trial on your own Instagram URLs

  • Cloudflare98%

  • Akamai97%

  • Imperva Incapsula97%

  • DataDome96%

  • PerimeterX / HUMAN95%

  • reCAPTCHA v395%

  • Kasada94%

  • hCaptcha93%

First-pass success by anti-bot vendor, measured by us over 30 days, so of course it flatters us. The 48-hour trial exists so you can count against your own URLs. Full benchmark

What unlimited changes for Instagram data

  • Sold-comps pricing

    Completed listings are the real price of anything. Pull them at scale and price with evidence.

  • Arbitrage sourcing

    Sweep categories for mispriced inventory continuously instead of when the credit budget allows

  • Demand research

    Bids, watchers and sell-through, across a whole category, on one flat bill

  • Collection tracking

    Every listing of the thing you care about, the moment it appears

Cheap is supposed to be the trade-off

  • Michael T.

    Switched from Bright Data. Same quality, fraction of the cost. Their wholesale model actually makes sense.

  • Kristina Halvorson

    Finally a proxy provider that actually feels built for developers

  • Edgar Weissnat

    We run multiple large-scale data collection pipelines across several regions, and proxy reliability has always been one of the biggest bottlenecks. After switching to Geonode we noticed two immediate improvements: connection stability and predictable pricing. Previously we had to constantly optimize traffic to avoid massive proxy bills. With Geonode’s wholesale pricing model we can focus on building products instead of worrying about proxy usage. Integration with our Python stack and Playwright automation was straightforward and took less than a day.

  • Gladys Paucek

    Best proxy infrastructure I've used. The MCP integration with our AI agents was seamless.

  • Gladys Paucek

    Finally something that doesn’t feel like enterprise sales software.

Pick your thread count. That's the only decision.

Nothing is metered. Plans price threads (how many requests run at once), and pages stay unlimited on every one. An Instagram page that needs an anti-bot bypass costs exactly what a plain page costs

Roughly what each plan clears in a month, by endpoint

Starter

2 threads

$50 /mo

~470K
~280K
~1.1M
~610K
~120K
~400K

Growth

5 threads

$100 /mo

Popular
~1.2M
~700K
~2.8M
~1.5M
~300K
~1M

Scale

25 threads

$400 /mo

~5.9M
~3.5M
~13.8M
~7.6M
~1.5M
~5M

Pro

100 threads

$1,250 /mo

~23.5M
~14M
~55M
~30M
~5.9M
~20M

Max

250 threads

$2,500 /mo

~59M
~35M
~137M
~76M
~15M
~50M

The 48-hour trial runs at five threads, no card. Custom terms past 250 threads.

Yeah, but...

In our benchmark data we do not yet publish a number for www.instagram.com. Instagram's login redirect is served with a normal status code, so a success rate counted on status alone would overstate what an Instagram scraper really returns, and we only want to publish a figure that counts profiles with a populated follower count and post grid as usable. The billing rule applies regardless: a request that fails after three retries is never billed, on any plan, so a redirect to the login page or a 429 from the GraphQL endpoint costs you nothing. Measure the Instagram scraper on your own mix of profiles, posts and hashtags during the trial.

Public profiles at instagram.com/{username}/, individual posts and carousels at /p/{shortcode}/, Reels at /reel/{shortcode}/, hashtag pages at /explore/tags/{tag}/, location pages at /explore/locations/{id}/ and the comment threads under any public post, with pagination through the full thread. Each has its own target_param so the Instagram scraper applies a dedicated parser. Instagram profile responses from the Instagram scraper include the exact follower count, bio, external link, category, highlights and the first twelve grid items. Post responses include caption, hashtags, mentions, like and comment counts, tagged accounts, product tags, location and, for Reels, the play count. Stories are not read by the Instagram scraper because they are not publicly accessible without login.

It reads the public, logged-out view and never signs in with an account. Instagram allows a logged-out session a small number of profile and post views before redirecting to login, so the Instagram scraper spreads requests across many residential sessions, each with its own cookie jar, and retires a session before it reaches the redirect. That is also why your own accounts are never at risk of a checkpoint or a ban. Private Instagram accounts return the header fields that Instagram shows publicly, meaning username, bio, follower and following counts and the private flag, and an empty post grid, because that is all the logged-out page has.

Instagram's GraphQL and /api/v1/ web endpoints return HTTP 429 when one session or IP exceeds a sliding window of requests, and the window lengthens on repeat offenses, which is why pacing per session matters more than raw proxy pool size. The Instagram scraper keeps per-session request rates low and rotates mobile and residential IPs, so a 429 on one session does not stall your job. On the public-data question: everything returned is visible to any logged-out visitor in a browser, which is the line most legal teams draw, but profiles still contain personal data of identifiable people, so GDPR and CCPA rules on purpose, storage and deletion apply to whatever your Instagram scraper pipeline keeps.

No request credits and no per-page meter. Plans are priced by concurrency, which is the number of requests in flight at once, from $50 a month. Run as many requests through that concurrency as you can, around the clock, for the same bill. A request that fails after three retries is not counted against anything.

Yes. Pass a country code and the request routes through a residential IP there, so marketplaces return local prices and currency, search engines return local results, and geo-restricted pages open. City and ASN targeting are available on the residential pool where a site is sensitive to it.

Typed JSON with the field table on this page, clean Markdown for feeding an LLM context window, or raw rendered HTML if you run your own parser. For pages without a dedicated parser you can pass a JSON schema and get AI-extracted fields back in that shape.

48 hours. Your worst Instagram URLs.

Five threads, no card, and the clock starts at your first API call. If it doesn’t earn the switch, don’t switch.