Instagram Scraper API
Extract public Instagram profiles and posts as structured JSON. Queue a request, poll for the result, and receive a refund when a scrape fails.
Decide before you build
- Endpoint
- POST /scrape/data-scraper
- Scrapers
- instagramProfile instagramPost
- Cost
- 30 credits / call
- Free plan
- 500 credits / month
- Call pattern
- async, POST then GET
- On failure
- credits refunded
- Response format
- JSON
- Concurrency
- by plan tier
Social Media calls consume 30 credits. Failed scrapes are refunded; a pending result does not consume credits.
Try the Instagram scraper on your own targetRun a request against a public profile or post and inspect the JSON before you integrate.
Open the live testWhat you get back
instagramProfileInstagram profiles
Retrieve public profile details and a configurable number of recent posts.
- Profile name, account and biography
- Followers, following and verification status
- Profile image and external URL when available
- Recent posts, captions and engagement fields
instagramPostInstagram posts
Retrieve a public post and its available media, caption and engagement data.
- Caption, author and publication date
- Likes and comments when available
- Image, thumbnail and media URLs
- Post URL and media type
Call the Instagram scraper
Send the scraper name with the input required by that scraper. The POST returns a responseId to poll for the final JSON.
# POST - queue a public Instagram profile scrape
curl -X POST "https://api.scraping-bot.io/scrape/data-scraper" \
-u "yourUsername:yourApiKey" \
-H "Content-Type: application/json" \
-d '{
"scraper": "instagramProfile",
"account": "google",
"posts_number": 12
}'# GET - retrieve the result after the POST returns a responseId
curl -G "https://api.scraping-bot.io/scrape/data-scraper-response" \
-u "yourUsername:yourApiKey" \
--data-urlencode "responseId=RESPONSE_ID" \
--data-urlencode "scraper=instagramProfile"Code example
Authenticate with your ScrapingBot username and API key, then poll until the queued result is ready.
const auth = "Basic " + Buffer.from(
"yourUsername:yourApiKey",
).toString("base64");
const queued = await fetch(
"https://api.scraping-bot.io/scrape/data-scraper",
{
method: "POST",
headers: { "Content-Type": "application/json", Authorization: auth },
body: JSON.stringify({
scraper: "instagramProfile",
account: "google",
posts_number: 12,
}),
},
);
const { responseId } = await queued.json();
await new Promise((resolve) => setTimeout(resolve, 5000));
const result = await fetch(
"https://api.scraping-bot.io/scrape/data-scraper-response?" +
new URLSearchParams({ responseId, scraper: "instagramProfile" }),
{ headers: { Authorization: auth } },
).then((response) => response.json());Run this call in two minutesCreate an account, copy your API key, then use the example above.
Get your API keyRequest parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
scraper | string | — | One of the scraper names supported by this endpoint. |
account | string | — | Account name for the Instagram profile scraper. |
posts_number | string | 12 | Optional for this scraper. |
url | string | — | Public page URL, including https://. |
Response example
A real instagramProfile response for a public account, shortened: long texts and lists are cut.
[
{
"account": "lafrenchtech",
"fbid": "17841404695871898",
"id": "4575188529",
"followers": 45491,
"posts_count": 108,
"is_verified": true,
"external_url": [
"https://lafrenchtech.gouv.fr/"
],
"biography": "L’énergie des start-up \net scale-up françaises \n💙🐓❤️",
"post_hashtags": [
"BIG2026",
"big"
],
"following": 356,
"posts": [
{
"caption": "🚀 La Mission French Tech réinvente son soutien pour la diversité en lançant French Tech Nova\n\n👉 French Tech Nova, c’est le programme national dédié à l’accélération des start-up portées par des entrepreneurs issus de parcours sous-représentés.\n\nLes lauréats bénéficieront d’u…",
"datetime": "2026-07-30T00:00:00.000Z",
"id": "3952591903120073471",
"image_url": "https://scontent-dfw5-2.cdninstagram.com/v/t51.82787-15/758368599_18409036708156530_5421828148676799201_n.jpg?stp=dst-jpg_e35_s640x640_tt6&_nc_cat=100&ccb=7-5&_nc_sid=18de74&efg=eyJlZmdfdGFnIjoiQ0FST1VTRUxfSVRFTS5iZXN0X2ltYWdlX3VybGdlbi5DMyJ9&_nc_ohc=M_J1ZCzC51sQ7kNvwFsg46x&_n…",
"post_hashtags": null,
"content_type": "Carousel",
"url": "https://www.instagram.com/p/DbabWTnjqL_"
},
{
"caption": "🟡 La French Tech change de dimension\n\n🎙️💬 \"77% d'augmentation par rapport à l'année dernière : c'est une rentrée très dynamique.\" \n\n📺 @julie_huguet, directrice de @lafrenchtech, présente le changement de dimension de la mission qu'elle dirige au micro de @mfrmatt depuis l'…",
"datetime": "2026-10-13T00:00:00.000Z",
"id": "4006975259411955197",
"image_url": "https://scontent-dfw6-1.cdninstagram.com/v/t51.82787-15/844838833_18121564481056055_7702333286916408995_n.jpg?stp=dst-jpg_e35_s640x640_tt6&_nc_cat=103&ccb=7-5&_nc_sid=18de74&efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&_nc_ohc=PuhGmUCbsjcQ7kNvwFANcnt&_nc_oc…",
"post_hashtags": [
"BIG2026",
"big"
],
"content_type": "Video",
"url": "https://www.instagram.com/p/DebosTBBz39"
}
],
"profile_image_link": "https://scontent-dfw5-1.cdninstagram.com/v/t51.82787-19/572135037_18370564270156530_5429274219150090174_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=111&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy45NzcuQzMifQ%3D%3D&_nc_ohc=L6fzf4p5rSgQ7kNvwHY357a&_nc_oc=Adr…",
"profile_url": "https://instagram.com/lafrenchtech",
"profile_name": "La French Tech",
"highlights_count": 1,
"highlights": [
{
"id": "18149349364550565",
"image": "https://scontent-dfw6-2.cdninstagram.com/v/t51.71878-15/823153282_1606577797876860_2925845146786887041_n.jpg?stp=c0.5x0.5f_dst-jpg_e35_p150x150_tt6_u&_nc_cat=110&ccb=7-5&_nc_sid=18de74&efg=eyJlZmdfdGFnIjoiU1RPUlkuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&_nc_ohc=F0ukwV-GI-UQ7kNvwGh…",
"owner": "lafrenchtech",
"title": "Panorama 2026",
"highlight_url": "https://www.instagram.com/stories/highlights/18149349364550565"
}
],
"full_name": "La French Tech",
"is_private": false,
"bio_hashtags": null,
"url": "https://www.instagram.com/lafrenchtech/",
"is_joined_recently": false,
"partner_id": "17841404695871898",
"email_address": null,
"external_url_title": {
"url": "https://lafrenchtech.gouv.fr/",
"title": null
},
"pronouns": null,
"external_urls": [
{
"title": "lafrenchtech.gouv.fr",
"url": "https://lafrenchtech.gouv.fr/"
}
],
"timestamp": "2026-10-15T08:10:22.198Z",
"input": {
"url": "https://www.instagram.com/lafrenchtech/"
}
}
]Credits, failures and limits
| Case | Credits | Notes |
|---|---|---|
| Successful scrape | 30 credits | Consumed when the result is ready. |
| Result not ready | Not consumed | The API returns a pending status; retry after a few seconds. |
| Failed, blocked or timed-out scrape | Refunded | Credits are returned for an unsuccessful request. |
| Profile above 12 posts | 60 credits | The higher posts_number profile tier costs 60 credits. |
Instagram API or Raw HTML scraper?
| Instagram API | Raw HTML scraper | |
|---|---|---|
| Endpoint | /scrape/data-scraper | /scrape/raw-html |
| Returns | Structured profile or post JSON | Rendered page HTML |
| Flow | Asynchronous: POST then GET | One synchronous request |
| Starting cost | 30 credits | 1 credit |
| Use it when | You need parsed Instagram fields | You need your own extraction logic |
Questions about the Instagram API
- Which Instagram scrapers are available?
- Use instagramProfile for a public profile or instagramPost for a public post.
- Why does the API return a responseId?
- Instagram requests are asynchronous. The responseId lets you retrieve the result without holding the initial request open.
- What if the result is still pending?
- Wait a few seconds and repeat the GET request. A pending response does not consume credits.
- Does this scraper access private Instagram accounts?
- No. It is intended for public pages and does not sign in to an Instagram account to access private data.
Source: ScrapingBot API documentation.
Other social media scrapers
Browse the Social Media category for the complete list of guides. Read How to scrape Instagram.
Trusted by developers and social media teams.
Customer reviews apply to ScrapingBot's service overall, not specifically to Instagram.
Start scraping Instagram today
500 free credits every month. No card required, cancel anytime.
