Skip to main content
Send an Instagram URL, get structured JSON back. The Bright Data Instagram Scraper API handles proxies, CAPTCHAs, and parsing so you can focus on your data pipeline.
New to Bright Data? Create a free account and get 5,000 free credits every month, no credit card required. That’s up to 5,000 Instagram records to start scraping. See the free tier.

How it works

You send one or more Instagram URLs to the Bright Data Instagram Scraper API. Bright Data handles the scraping infrastructure and returns clean, structured JSON.
All requests use a dataset_id to specify the data type (profiles, posts, reels, or comments) and return results in JSON, NDJSON, or CSV.

What the response looks like

A single record returned by the Bright Data Instagram Scraper API on September 6, 2026, trimmed to the fields shown. Run the request yourself in the quickstart.

Supported data types

Profiles

Follower counts, bios, verification status, profile pictures. Discover profiles by username.

Posts

Captions, likes, comments, hashtags, photos, and videos. Discover posts by profile URL.

Reels

Video URLs, view counts, play counts, thumbnails. Discover reels or collect all reels from a profile.

Comments

Comment text, likes, replies, commenter details for any post or reel.

Request methods

The Bright Data Scraper API supports two request methods. Choose based on your volume and latency needs. Learn more in Understanding sync vs. async requests. Both endpoints accept the inputs as a bare JSON array, which is what every example on this page uses, or as an object with an input array. Use the object form when you also send custom_output_fields or limit_per_input on either endpoint, or a deliver block on /trigger. See Request body.

Capabilities and limits

Common questions

Is the data scraped in real time?

Yes. Each request triggers a live scrape. There is no cached or stale data. Processing time varies with target-site conditions and scraper workload. The Bright Data Instagram Scraper API does not publish a fixed response time. A synchronous request waits up to 1 minute, then returns HTTP 202 with a snapshot_id and continues asynchronously. Discovery requests always run asynchronously and take longer depending on result volume.

Why do response times change over time?

Instagram changes how its pages are served, and the Bright Data Instagram Scraper API collectors are updated to match. A collector update can change how long a scrape takes even when the success rate stays the same. For production workloads, build against the async workflow or webhook delivery so a longer run does not break the integration.

What is the difference between URL collection and discovery?

URL collection scrapes a specific Instagram page you provide (e.g., a profile URL). Discovery finds Instagram content matching search criteria (e.g., all posts from a profile URL) and scrapes the results. Discovery is accepted on both endpoints. On /scrape it usually runs past the 1-minute limit and returns HTTP 202 with a snapshot_id, so use the async /trigger endpoint for discovery.

How is this different from scraping using proxies or Web Unlocker API?

When scraping using proxies or Web Unlocker API, you still need to write and maintain your own parsing logic and update it whenever the target site changes its page structure. The Bright Data Scraper API handles the entire stack: proxy rotation, anti-bot bypassing and parsing. You send a URL or keyword and get clean, structured JSON back, with no scraping infrastructure or parser maintenance on your end.

Next steps

Quickstart

Scrape your first Instagram profile in 5 minutes.

Endpoints

One request per endpoint, each with a captured response.

API reference

Endpoint specs, parameters, and response schemas.