Upscrape 2.0 is here. Live platform data for agents, apps, and workflows. Upscrape 2.0 is here. REST API and MCP, one connection. Explore capabilities

Instagram Scraper scraper API

Public Instagram profiles, media, comments, reels, audio, embeds, and discovery.

Social & content 17 capabilities beta 97.7% success rate

What people use it for

  • Monitor public creator and brand profiles
  • Build public post and reel datasets
  • Analyze public comments and audio usage
  • Research popular content by keyword or topic
  • Track public publishing activity over time

Capabilities

Every capability is one POST /execute call that returns structured JSON.

List Reels by Audio

instagram.audio-reels.list

Streams public reels attached to an Instagram audio page with bounded cursor pagination.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"audio_id":"28601503179449709","limit":12,"max_pages":2},"capability":"instagram.audio-reels.list"}'

Input

Field Type Required Description
audio_id string required Audio cluster ID from an Instagram /reels/audio/{id}/ URL
cursor string optional
limit integer optional
max_pages integer optional

List Comments

instagram.comments.list

Streams public post comments with bounded cursor pagination and deduplication.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":20,"max_pages":2,"url":"https://www.instagram.com/reel/DTfS7SMEk8B/"},"capability":"instagram.comments.list"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional
url string required Instagram post/reel URL or shortcode

Get Embed

instagram.embed.get

Fetches Instagram's public profile or post embed HTML, including the captioned post variant.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.instagram.com/nasa/"},"capability":"instagram.embed.get"}'

Input

Field Type Required Description
captioned boolean optional Use Instagram's captioned post embed variant
url string required Public profile username/URL or post/reel URL

Get Explore

instagram.explore.list

Returns public Explore home sections or paginates a selected section.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{},"capability":"instagram.explore.list"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional
section_id string optional Optional section ID returned by the Explore home response

Search Hashtag Posts

instagram.hashtag-posts.search

Discovers public indexed posts and reels for a hashtag with media-type and date filters.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"date_posted":"any","enrich":false,"hashtag":"india","limit":10,"max_pages":2,"media_type":"all"},"capability":"instagram.hashtag-posts.search"}'

Input

Field Type Required Description
date_posted string optional
enrich boolean optional
hashtag string required
limit integer optional
max_pages integer optional
media_type string optional
page integer optional

Search Hashtag Keyword

instagram.hashtag.search

Searches logged-out popular content for a hashtag keyword; output declares match_mode=keyword_popular and is not an exact tag feed.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"hashtag":"india","limit":12},"capability":"instagram.hashtag.search"}'

Input

Field Type Required Description
hashtag string required Hashtag keyword or Instagram /explore/tags/ URL
limit integer optional Maximum popular-keyword results

Search Popular

instagram.popular.search

Searches popular Instagram content for a keyword.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"keyword":"india","limit":12},"capability":"instagram.popular.search"}'

Input

Field Type Required Description
keyword string required Keyword, slug, or public Instagram /popular/ URL
limit integer optional Maximum deduplicated results

Get Post

instagram.post.get

Fetches rich public post, reel, or carousel metadata plus backward-compatible oEmbed fields.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.instagram.com/reel/DTfS7SMEk8B/"},"capability":"instagram.post.get"}'

Input

Field Type Required Description
url string required Instagram post/reel URL or shortcode

List Profile Posts

instagram.profile-posts.list

Lists public profile posts with bounded cursor pagination, deduplication, and optional timestamp filtering.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":5,"max_pages":1,"url":"https://www.instagram.com/nasa"},"capability":"instagram.profile-posts.list"}'

Input

Field Type Required Description
limit integer optional Maximum posts returned per job
max_pages integer optional Maximum upstream pages, including the embedded first page
since integer optional Unix timestamp; stop when older posts are reached
url string required Instagram profile URL or username

Get Basic Profile by ID

instagram.profile.basic

Fetches current public profile metadata using a numeric Instagram user ID.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"user_id":"528817151"},"capability":"instagram.profile.basic"}'

Input

Field Type Required Description
user_id string required Numeric Instagram user ID

Get Profile

instagram.profile.get

Fetches public Instagram profile metadata by username or profile URL.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://www.instagram.com/nasa"},"capability":"instagram.profile.get"}'

Input

Field Type Required Description
fields array<string> optional Optional top-level field allowlist
url string required Instagram profile URL or username

Search Profiles

instagram.profile.search

Discovers public Instagram profiles through web indexing with bounded page traversal and optional enrichment.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"enrich":false,"limit":10,"max_pages":2,"query":"space agency"},"capability":"instagram.profile.search"}'

Input

Field Type Required Description
enrich boolean optional Fetch current Instagram profile data for each discovered result
limit integer optional
max_pages integer optional
page integer optional
query string required

List Reels

instagram.reels.list

Lists public profile reels with bounded cursor pagination, deduplication, and optional timestamp filtering.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":5,"max_pages":1,"url":"https://www.instagram.com/nasa"},"capability":"instagram.reels.list"}'

Input

Field Type Required Description
limit integer optional Maximum reels returned per job
max_pages integer optional Maximum upstream pages
since integer optional Unix timestamp; stop when older reels are reached
url string required Instagram profile URL or username

Search Reels

instagram.reels.search

Discovers public Instagram reels through web indexing with bounded page traversal and optional enrichment.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"enrich":false,"limit":10,"max_pages":2,"query":"space launch"},"capability":"instagram.reels.search"}'

Input

Field Type Required Description
enrich boolean optional Fetch current Instagram oEmbed data for each discovered result
limit integer optional
max_pages integer optional
page integer optional
query string required

List Trending Reels

instagram.reels.trending

Streams Instagram's public logged-out reels feed with bounded cursor pagination.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":16,"max_pages":2},"capability":"instagram.reels.trending"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional

Search Topic

instagram.topic.search

Searches Instagram's public popular-content surface for a known explore topic slug, ID, or topic URL.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":12,"topic":"sports"},"capability":"instagram.topic.search"}'

Input

Field Type Required Description
limit integer optional Maximum deduplicated results
topic string required Known topic ID, topic slug, explore-topic URL, or public /popular/ URL

List Topics

instagram.topics.list

Lists the module's known Instagram explore-topic taxonomy, optionally filtered by category.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{},"capability":"instagram.topics.list"}'

Input

Field Type Required Description
category string optional Optional case-insensitive category filter

Run Instagram Scraper in under a minute

Sign in, create an API key, and try any capability in the playground before you write code.

Get an API key