7-day Trial

Instagram scraper with no login and exact follower counts

Paste a public profile, post or reel. Web Unlocker returns the Instagram page with no login: a profile's exact follower count and 12 latest posts, a post's exact likes, comments and caption. $0.98 per 1,000 pages.

Try:

1,000 free requests · Pay only on success · 195+ countries · Claude ready

instagram.com/natgeo/Example run · 268,157,304 followers · billed as 1 page · 2.5 s
Download
  1. Opening the page from a US address
  2. Loading it the way a logged-out visitor does
  3. Reading the profile or post data

Instagram pages take 3 to 12 seconds. It is still working, no need to click again.

Ready for your own profiles? Get an API key or book a demo.

Get your API key and free requests

Tell us a little about your team and get:

  • API key within one business day
  • Free requests on your own targets
4.7 / 5 on G2from 79 reviews
Book a demo

No card. Cancel anytime. We reply within one business day.

What the Instagram data scraper returns

Public pages, with no login and no Instagram account. Influencer platforms, brands, social listening tools and researchers read these four kinds of page, each billed as one page.

  • Instagram profile scraper

    instagram.com/natgeo/
    Name
    National Geographic
    Followers
    268,157,304
    Following
    195
    Posts
    32K
    Bio
    Step into wonder and find your inner explorer
    Latest posts
    12, with pictures
  • Instagram hashtag scraper

    instagram.com/explore/tags/travel/
    Hashtag
    #travel
    Reels on Instagram
    3.9B
    Top reels on the page
    12
    Most played
    218,089,610 plays
  • Instagram post scraper

    instagram.com/p/Dfcr9z7jBnD/
    Likes
    223,730
    Comments
    297
    Caption
    Photos by @joelsartore | Japanese dwarf flying squirrels are quite small
    Date
    Nov 8, 2026
    Photo files
    A link to each photo
  • Instagram reels scraper

    instagram.com/reel/Dfa5-jix5gw/
    Likes
    122,499
    Comments
    463
    Caption
    From harsh conditions to rival predators, these wolves face danger
    Date
    Nov 7, 2026
    Cover picture
    A link to the file

Want to try it yourself? Take your API key with 1,000 free requests.

Scrape 1,000 Instagram profiles for $1.14

Web Unlocker bills a profile page once, with its exact followers and 12 latest posts, at $0.98 per 1,000 pages. Instagram profile scrapers on Apify, Bright Data and ScrapeCreators charge more for the same profile.

Apify bills $2.60 per 1,000 profiles.
Here 1,000 cost $1.14.

Instagram sends about one profile page in seven back empty. Ask for it again at a fresh address and the data comes back: the price above counts those retries.

What 1,000 Instagram profiles cost

1,000 public profiles with followers and bio, at published prices

  • $1.14Gologin Web Unlocker
  • $1.50Bright Data Instagram Scraper API
  • $1.88ScrapeCreators Instagram API
  • $2.60Instagram Profile Scraper (Apify based)

Gologin: $0.98 per 1,000 pages, plus one retry for about every seven profiles. Bright Data bills each record, $1.50 per 1,000. ScrapeCreators bills each request, $1.88 per 1,000 on its $47 plan. Apify's own Instagram profile scraper bills $2.60 per 1,000 profiles on the free plan.

Ready to run it on your own profiles? Get your API key and free requests.

Instagram scraping: 60 of 60 pages with data

Our Instagram scraping test: 20 profiles, 20 posts and 20 reels from their grids, and 10 hashtag pages, each asked for up to three times, the way the demo above does it. This is what came back, and how fast.

51 of 60 came back on the first try.
The other 9 on the second or third.

Compare the Instagram API with Instagram scrapers

Instagram's own API, Apify's Instagram scrapers and Bright Data's Instagram Scraper API: what each bills for the same 1,000 profiles, and what it asks of you before you start.

Billing unit, price for 1,000 profiles, personal accounts, the account you need, free start and the whole page in Gologin Web Unlocker, the Instagram API, Apify and Bright Data
What it takesWeb UnlockerInstagram APIApifyBright Data
You pay forA pageFree within limitsEach resultEach record
1,000 profiles$1.14Free$2.60$1.50
Personal accountsYesNoYesYes
Your own Instagram accountNot neededProfessional accountNot neededNot needed
Free to start1,000 requestsWith a Meta app$5 a month5,000 a month
The whole page in HTMLYesNoNoNo

Scraping more than Instagram? Web Unlocker returns any page the same way, at the same price.

Vet an Instagram influencer for 1.3 cents

A profile page brings the 12 latest posts, and each post page brings its exact likes and comments. 13 pages, $0.0127, and you have the creator's real engagement, post by post.

Instagram rounds to 268M.
The scraper returns 268,157,304.

How to scrape Instagram data with Python or Node.js

Instagram keeps a public page's data as JSON inside its HTML. Web Unlocker returns that HTML, and a few lines of code read the profile or the post out of it. The Profiles list tab is a small Instagram crawler: a list of accounts in, a CSV out.

  1. Step 01

    Get your API key

    Fill in the form above. The key arrives by email within one business day.

  2. Step 02

    Pick the page

    A profile for its followers and latest posts, a post or reel for its likes and comments.

  3. Step 03

    Read the data

    Check that the page came with data, and ask again at a fresh address when Instagram sent an empty one.

Install
pip install requests
Run
GOLOGIN_SCRAPING_API_KEY=your_key python instagram_profile.py
Sends to
https://parsing.webunlocker.gologin.com/v1/scrape
import json
import os
import re
import time

import requests

username = "nasa"


def scrape(url, marker):
    for attempt in range(3):
        address = url if attempt == 0 else f"{url}?fresh={int(time.time())}"
        response = requests.get(
            "https://parsing.webunlocker.gologin.com/v1/scrape",
            params={"url": address, "geo": "us", "format": "json"},
            headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
            timeout=90,
        )
        page = response.json().get("data", {}).get("html", "") if response.ok else ""
        if marker in page:
            return page
        time.sleep(3)
    raise RuntimeError("The page came back without data, try again later")


def blocks(page):
    for block in re.findall(r'<script type="application/json"[^>]*>(.*?)</script>', page, re.S):
        try:
            yield json.loads(block)
        except json.JSONDecodeError:
            pass


def find(node, key):
    if isinstance(node, dict):
        for name, value in node.items():
            if name == key:
                yield value
            yield from find(value, key)
    elif isinstance(node, list):
        for item in node:
            yield from find(item, key)


data = list(blocks(scrape(f"https://www.instagram.com/{username}/", '"follower_count"')))
user = next(item for item in find(data, "xig_user_by_username") if "follower_count" in item)

posts = {}
for timeline in find(data, "polaris_ordered_timeline_connection"):
    for edge in timeline["edges"]:
        post = edge["node"]
        reel = post.get("product_type") == "clips"
        posts[post["code"]] = {
            "url": f"https://www.instagram.com/{'reel' if reel else 'p'}/{post['code']}/",
            "type": "reel" if reel else "post",
            "caption": (post.get("caption") or {}).get("text", "").split("\n")[0],
            "image": post.get("display_uri"),
        }

profile = {
    "username": user["username"],
    "full_name": user["full_name"],
    "biography": user["biography"],
    "verified": user["is_verified"],
    "followers": user["follower_count"],
    "following": user["following_count"],
    "latest_posts": list(posts.values())[:12],
}

print(json.dumps(profile, indent=2, ensure_ascii=False))
print(f"@{username}: {profile['followers']:,} followers, {len(profile['latest_posts'])} latest posts from one page")

Ready to run it on your own profiles? Get your API key and free requests.

Part of the complete tech stack

One account, one proxy network, one ecosystem. Pick the product the job needs.

Scraping more sites? See the Facebook, Google Play, Twitter (X), YouTube, Reddit and Google Maps scrapers, or every web scraping tool.

Instagram scraper FAQ

What is an Instagram scraper?

An Instagram scraper is a tool that reads public Instagram pages and turns them into data: a profile's followers, bio and latest posts, a post's likes, comments and caption. Gologin Web Unlocker is an Instagram scraper API: send it a page address and it returns the page with that data, at $0.98 per 1,000 pages.

How do I scrape Instagram?

Send the address of a public profile, post or reel to Web Unlocker. It returns the page as a logged-out visitor sees it, with the data Instagram keeps inside it as JSON: followers, posts, likes, comments and captions. The code above reads it in a few lines.

How do I build an Instagram scraper in Python?

Send the profile address to Web Unlocker with the requests library and read the JSON from the page. The Python tab above is a complete script, tested on the live API: it prints the profile's followers, following, bio and 12 latest posts.

Does Instagram have an API for other accounts' data?

Only in part. Business Discovery in the Instagram API reads business and creator accounts, and only from your own professional account through a Meta app. Personal accounts are not covered, and hashtag search stops at 30 tags a week. The old Basic Display API ended on 4 December 2024.

Can I scrape Instagram without logging in?

Yes. Public profiles, posts, reels and a hashtag's popular page load without a login. Web Unlocker opens them as a logged-out visitor, so you need no Instagram account and put none of yours on the line. Private profiles stay closed: their posts are for approved followers only. TikTok works the same way: the TikTok scraper reads public profiles and videos with no login.

Why do Instagram scrapers return empty data?

Instagram now and then sends a page with no data in it: about one profile page in seven in our test. The demo above and the code samples check for the data and ask again at a fresh address. Posts and reels came back on the first try 36 times in 40.

Can I scrape Instagram followers?

Not as a list: an account's list of followers opens only for logged-in users. The exact follower count is public, and Web Unlocker returns it with every profile.

Can I scrape Instagram comments?

The comment count, yes: every post and reel page carries the exact number. The comments themselves load for logged-in users, so Web Unlocker does not return them.

Can I scrape Instagram hashtags?

For many hashtags Instagram shows logged-out visitors a popular page with 12 top reels and their play counts, and Web Unlocker returns it. The full feed of a hashtag is for logged-in users.

Can I scrape Instagram images and photos?

Yes. Every post on a profile page and every post page comes with the links to its picture files, so your code can save them.

How much does an Instagram scraper cost?

$0.98 per 1,000 pages, the same for every page: a profile with its 12 latest posts is one page, a post is one page. A request that fails costs nothing. Plans start at $49 a month for 50,000 requests.

Is there a free or open-source Instagram scraper?

Web Unlocker comes with 1,000 free requests, enough for 1,000 profiles or posts. Open-source tools like Instaloader and instagrapi are free: they run on your own servers, often ask for an Instagram login, and keeping them working as Instagram changes is up to you.

What is the best Instagram scraper?

It depends on the job. The Instagram API is free for the business and creator accounts you can reach from your own. Apify and Bright Data sell ready rows and bill every result. Web Unlocker returns the whole public page at one price per page, on Instagram and on any other site.

Is there an alternative to the Apify Instagram scraper?

Yes. Apify's Instagram profile scraper bills $2.60 per 1,000 profiles on its free plan. Web Unlocker returns the same public profile page with the exact follower count and 12 latest posts for $1.14 per 1,000 profiles, retries counted.

Is it legal to scrape Instagram?

Profiles, posts and reels that load without a login are public pages. In Meta v. Bright Data, in January 2024, a US federal court found that Meta's terms do not bar logged-out scraping of public data. What you collect and how you use it is your call, so check it against the rules that apply to your project.

Get your API key and free requests

Tell us a little about your team and get:

  • API key within one business day
  • Free requests on your own targets
4.7 / 5 on G2from 79 reviews
Book a demo

No card. Cancel anytime. We reply within one business day.