scraper-api-com Instagram API
Instagram: read-only. 8 public endpoints, no account needed.
Instagram: read-only. 8 public endpoints, no account needed.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/scraper-api-com:scraper-api-com-instagram-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: scraper-api.com Instagram API
version: 0.1.0
description: 'Self-hosted social media scraping API — a drop-in replacement for scrapecreators.com.
## Authentication
Every request must send your API key in the `x-api-key` header.
## Credits
Billing is credit-based: **1 request = 1 credit** (some endpoints cost more — see each endpoint''s description). Credits are **non-expiring** — buy once, use whenever.
Response bodies match the ScrapeCreators shapes so existing integrations work unchanged.'
contact:
name: Fabian Bitter
email: fabian@bitter.de
servers:
- url: https://api.scraper-api.com
description: Production
security:
- apiKeyAuth: []
tags:
- name: Instagram
description: 'Instagram: read-only. 8 public endpoints, no account needed.'
paths:
/v1/instagram/profile:
get:
tags:
- Instagram
summary: Get an Instagram user's full profile by handle (followers, following, bio) (no…
operationId: instagram_v1_profile
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: handle
in: query
required: false
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
data:
user:
id: '528817151'
username: nasa
full_name: NASA
biography: Explore the universe and discover our home planet with @NASA.
external_url: https://www.nasa.gov
profile_pic_url: https://instagram.fxxx.fna.fbcdn.net/mock-pic.jpg
profile_pic_url_hd: https://instagram.fxxx.fna.fbcdn.net/mock-pic-hd.jpg
is_private: false
is_verified: true
is_business_account: false
edge_followed_by:
count: 97800000
edge_follow:
count: 78
edge_owner_to_timeline_media:
count: 4210
edges: []
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/instagram/basic-profile:
get:
tags:
- Instagram
summary: Get an Instagram user's basic public profile (name, verified, private, picture)…
operationId: instagram_v1_basic_profile
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: handle
in: query
required: false
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
data:
user:
id: '528817151'
username: nasa
full_name: NASA
biography: Explore the universe and discover our home planet with @NASA.
external_url: https://www.nasa.gov
profile_pic_url: https://instagram.fxxx.fna.fbcdn.net/mock-pic.jpg
profile_pic_url_hd: https://instagram.fxxx.fna.fbcdn.net/mock-pic-hd.jpg
is_private: false
is_verified: true
is_business_account: false
edge_followed_by:
count: 97800000
edge_follow:
count: 78
edge_owner_to_timeline_media:
count: 4210
edges: []
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v2/instagram/user/posts:
get:
tags:
- Instagram
summary: Get an Instagram user's posts (incl.
operationId: instagram_v2_user_posts
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: handle
in: query
required: false
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
items:
- pk: '3938228276934129521'
id: '3938228276934129521_528817151'
code: DPmockCode
taken_at: 1735689600
media_type: 8
like_count: 257796
comment_count: 1204
caption:
text: A mock caption from the drop-in fixture.
image_versions2:
candidates:
- url: https://instagram.fxxx.fna.fbcdn.net/mock.jpg
width: 1080
height: 1080
user:
pk: '528817151'
username: nasa
is_verified: true
num_results: 1
more_available: true
next_max_id: '3932620782437825016_528817151'
user:
pk: '528817151'
username: nasa
full_name: NASA
is_private: false
is_verified: true
auto_load_more_enabled: true
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/instagram/post:
get:
tags:
- Instagram
summary: Get a single Instagram post/reel by URL (no login)
operationId: instagram_v1_post
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: url
in: query
required: true
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
items:
- pk: '3938228276934129521'
id: '3938228276934129521_528817151'
code: DPmockCode
taken_at: 1735689600
media_type: 8
like_count: 257796
comment_count: 1204
caption:
text: A mock caption from the drop-in fixture.
image_versions2:
candidates:
- url: https://instagram.fxxx.fna.fbcdn.net/mock.jpg
width: 1080
height: 1080
user:
pk: '528817151'
username: nasa
is_verified: true
num_results: 1
data:
pk: '3938228276934129521'
id: '3938228276934129521_528817151'
code: DPmockCode
taken_at: 1735689600
media_type: 8
like_count: 257796
comment_count: 1204
caption:
text: A mock caption from the drop-in fixture.
image_versions2:
candidates:
- url: https://instagram.fxxx.fna.fbcdn.net/mock.jpg
width: 1080
height: 1080
user:
pk: '528817151'
username: nasa
is_verified: true
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/instagram/user/reels:
get:
tags:
- Instagram
summary: Get an Instagram user's reels by handle/user_id (paginated via max_id) (no…
operationId: instagram_v1_user_reels
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: handle
in: query
required: false
description: 'Provide at least one of: handle, user_id.'
schema:
type: string
- name: user_id
in: query
required: false
description: 'Provide at least one of: handle, user_id.'
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
items: []
paging_info:
more_available: false
max_id: null
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v2/instagram/post/comments:
get:
tags:
- Instagram
summary: Get comments on an Instagram post by URL (paginated via next_min_id) (no login)
operationId: instagram_v2_post_comments
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: url
in: query
required: true
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
comments: []
next_min_id: null
has_more_comments: false
comment_count: 0
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/instagram/reels/trending:
get:
tags:
- Instagram
summary: Get currently trending Instagram reels (paginated via max_id) (no login)
operationId: instagram_v1_reels_trending
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters: []
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
items: []
paging_info:
more_available: false
max_id: null
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/instagram/user/embed:
get:
tags:
- Instagram
summary: Get an embeddable HTML representation of an Instagram profile by handle
operationId: instagram_v1_user_embed
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: handle
in: query
required: false
description: 'Provide at least one of: handle, url.'
schema:
type: string
- name: url
in: query
required: false
description: 'Provide at least one of: handle, url.'
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
html: <blockquote class="instagram-media"></blockquote>
status: ok
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
components:
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Your scraper-api.com API key.
x-tagGroups:
- name: Platforms
tags:
- Instagram
- TikTok
- YouTube
- Facebook
- LinkedIn
- Twitter
- Spotify
- Apple Music
- Kleinanzeigen
- Quoka
- markt.de
- mobile.de
- '11880'
- Gelbe Seiten
- ImmobilienScout24
- immowelt
- WG-Gesucht
- Bayut
- LOVOO
- Jaumo
- Tinder
- Bumble
- Snapchat
- Google
- Arbeitsagentur
- Ausbildung.de
- meinestadt.de