POST /v1/instagram/photosInstagram Posts Scraper API
An Instagram profile plus its most recent posts (up to 60) with type, caption, thumbnail and engagement counts where available.
- Cost
- 2 credits
- Failed requests
- Refunded
- Cache hits
- Free
- Response fields
- 20
- Limits
- Up to 60 recent posts ยท captions max 300 chars
What the Instagram Posts Scraper API does
The Instagram Posts Scraper API returns a public Instagram profile together with its most recent posts, newest first, up to 60 per request. Every post comes with its shortcode, link, type (photo, video or album), caption, thumbnail, publish time and, where the source includes them, like and comment counts. The profile part carries the same fields as the profile endpoint: bio, link in bio, verification and business flags, category and follower, following and post counts. Send a username, an @handle or a profile URL; there is no Instagram login or Meta app review on your side. Captions are shortened to 300 characters, and posts_source tells you where the posts were read from. A request costs 2 credits, whether it returns one post or sixty.
What you get
Top-level fields of the response. Every field is typed and documented; nullable fields are null when the platform does not show them.
| Field | Type | Description |
|---|---|---|
id | string | Instagram numeric user ID as string |
username | string | Instagram username |
full_name | string | Display name; empty string if none |
biography | string | Bio text; empty string if none |
external_url | string | null | Website link shown in bio |
profile_pic_url | string | null | Profile picture URL (standard size) |
profile_pic_url_hd | string | null | Profile picture URL (high resolution) |
is_private | boolean | Account is private |
is_verified | boolean | Account has verified badge |
is_business_account | boolean | Account is a business account |
category_name | string | null | Business/creator category label |
follower_count | integer | null | Number of followers |
following_count | integer | null | Number of accounts followed |
post_count | integer | null | Number of posts published |
has_highlights | boolean | null | Has story highlights; null if unknown/private |
highlight_count | integer | null | Story highlight count; null if unknown/private |
posts | array<object> (11 fields each) | Most recent posts, newest first, max limit |
posts_fetched | integer | Number of posts returned |
posts_source | string | 'feed', 'profile_html', 'profile_fallback' or 'none' |
has_more | boolean | More posts exist beyond those returned |
Request example
Send the API key as a Bearer token. The body is a small JSON object.
curl -X POST https://api.scrapeeverything.com/v1/instagram/photos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username":"nasa","limit":12}'| Parameter | Required | Description |
|---|---|---|
username | Yes | Instagram username, @handle or profile URL. |
limit | No | Maximum number of posts to return. |
What it costs
Each successful request costs 2 credits. Your first 100 credits are free. With credit packs, 1,000 requests to this endpoint cost:
Builder pack
$3.12
25,000 credits for $39.00
Growth pack
$2.38
100,000 credits for $119.00
Scale pack
$1.80
500,000 credits for $449.00
See pricing for all packs and rate limits.
Use cases
- Audit a brand's or creator's recent content mix of photos, albums and videos before a partnership.
- Measure posting frequency of competitors from the taken_at times of their latest posts.
- Estimate engagement by comparing like and comment counts with follower_count, where the counts are available.
Limitations: Unofficial API: not affiliated with or endorsed by the platform. Public data only, as a logged-out visitor sees it. Private accounts return profile fields only; posts show at most 15 newest comments; items Instagram hides from logged-out visitors are missing.
- Despite the name, it returns every post type: photos, albums (carousels) and videos. Each post's type field says which.
- Returns every instagram.profile field plus up to 60 recent posts, newest first.
- posts_source shows where the posts came from. Some sources do not include like and comment counts (null).
- Private accounts return an empty posts array.
Questions
Does it only return photos?
No. Despite the name, it returns every post type. The type field says photo, video or album, and is_video marks videos.
Why are like and comment counts sometimes null?
Some sources do not include counts; posts_source shows which one was used. If the owner hid the counts, like_and_view_counts_disabled is true.
What about private accounts?
You get the public profile fields and an empty posts array, because a private account's posts are not visible to logged-out visitors.
How much does the Instagram Posts Scraper API cost?
2 credits per successful request. Credits are bought in one-time packs and never expire. New accounts get 100 free credits. No payment details needed.
Am I charged for failed requests?
No. If the platform blocks the request, it times out or something fails on our side, the credits are refunded automatically. A definitive answer such as "this account does not exist" is billed because the lookup completed.
Can I re-read a result without paying again?
Yes. Send cache_days (1 to 14) and a repeat request for the same target within that window is served from your cache for free.
More Instagram endpoints
Start with 100 free credits.
Continue with Google, create an API key and send your first request in under a minute.