Instagram APIinstagram.com ↗
Access trending Instagram Reels, reel details by shortcode, and public user profiles. Get engagement metrics, captions, audio info, and follower counts — no auth needed.
What is the Instagram API?
This API exposes 3 endpoints covering Instagram Reels and public user profiles: retrieve currently trending Reels with engagement metrics, fetch full details for a specific Reel by shortcode using get_reel_details, or pull public profile data including follower counts, bio links, and verification status via get_user_profile. No authentication token is required to call any endpoint.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/83bac21b-efd3-4274-a70d-f8c54a03ae0b/get_trending_reels' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace instagram-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.instagram_reels_api import Instagram, Reel, UserProfile
client = Instagram()
# Get trending reels
for reel in client.reels.trending():
print(reel.shortcode, reel.username, reel.like_count, reel.comment_count)
# Refresh to get full details with video versions
detailed = reel.refresh()
if detailed.video_versions:
for version in detailed.video_versions:
print(version.width, version.height, version.url)
break
# Get a specific reel by shortcode
reel = client.reels.get(shortcode="DZPkGpgoceS")
print(reel.username, reel.caption, reel.taken_at)
# Get a user profile
profile = client.userprofiles.get(username="instagram")
print(profile.full_name, profile.follower_count, profile.is_verified)
for link in profile.bio_links:
print(link.title, link.url)
Get currently trending/viral reels from Instagram's Reels tab. Returns a short list of popular reels with engagement metrics, user info, captions, and audio details. No parameters required — returns whatever Instagram is currently featuring. The set rotates frequently; expect 3–5 reels per call.
No input parameters required.
{
"type": "object",
"fields": {
"count": "integer — number of reels returned",
"reels": "array of reel objects with shortcode, engagement metrics, user info, caption, and audio details"
},
"sample": {
"data": {
"count": 3,
"reels": [
{
"id": "3911448041335602393",
"url": "https://www.instagram.com/reel/DZIQUUVNLzZ/",
"audio": {
"title": "Original audio",
"artist": "eva.pepaj",
"is_original": true
},
"caption": "The most peaceful moments of a man’s life…",
"user_id": "221126320",
"taken_at": 1780501022,
"username": "eva.pepaj",
"full_name": "Evaandjavier",
"has_audio": true,
"shortcode": "DZIQUUVNLzZ",
"like_count": 1176254,
"play_count": null,
"view_count": null,
"is_verified": true,
"product_type": "clips",
"comment_count": 18797,
"thumbnail_url": "https://scontent-ams2-1.cdninstagram.com/v/...",
"original_width": 1080,
"original_height": 1920
}
]
},
"status": "success"
}
}About the Instagram API
Trending Reels
The get_trending_reels endpoint takes no parameters and returns a list of Reels currently featured on Instagram's Reels tab. Each item in the reels array includes the reel's shortcode, caption, engagement metrics, the posting user's info, and audio details such as title, artist, and whether the audio is original. The count field tells you how many items were returned in a given response.
Reel Details
When you have a specific shortcode (the identifier found in any /reel/ URL), get_reel_details returns a fuller record for that single Reel. Response fields include like_count, taken_at (unix timestamp), username, full_name, caption, and an audio object with title, artist, and is_original. A location object — containing name, city, and pk — is returned when location data is attached to the Reel, and is null otherwise.
Public User Profiles
get_user_profile accepts a single username parameter (no @ prefix) and returns the public-facing profile record. Fields include biography, bio_links (an array of objects with title and url), external_url, media_count, is_verified, is_private, and has_clips. Follower and following counts are available alongside the account's full_name and internal id.
Coverage Notes
All three endpoints cover publicly accessible Instagram data. Private accounts return is_private: true in get_user_profile, but their media and metrics are not exposed. The trending Reels feed reflects what Instagram is currently surfacing globally — the endpoint carries no region or category filter.
The Instagram API is a managed, monitored endpoint for instagram.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when instagram.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official instagram.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track which Reels are trending to surface viral content for a social listening dashboard.
- Enrich a creator database with follower counts, verification status, and bio links from
get_user_profile. - Monitor a specific Reel's
like_countover time by pollingget_reel_detailswith its shortcode. - Identify popular audio tracks from trending Reels using the
audio.titleandaudio.artistfields. - Detect when a creator adds or removes external links by comparing
bio_linksarrays across runs. - Filter trending Reels by original audio vs. licensed audio using the
audio.is_originalflag. - Map Reel content to geography using the
location.cityfield returned byget_reel_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Instagram have an official developer API?+
What does get_reel_details return beyond what get_trending_reels already includes?+
get_reel_details adds fields not present in the trending list: location (with name, city, and pk), taken_at as a unix timestamp, the internal user_id, and the id string for the reel itself. It is also the way to retrieve data for any reel by shortcode, not just currently trending ones.Can I retrieve a user's individual posts or media feed through this API?+
get_user_profile and Reel-specific data via get_reel_details and get_trending_reels, but does not expose a user's full media feed or individual photo posts. You can fork it on Parse and revise to add an endpoint for that data.Does the trending Reels endpoint support filtering by region or category?+
get_trending_reels returns whatever Instagram is featuring globally at the time of the call and accepts no filter parameters. You can fork it on Parse and revise to add region or niche filtering if the underlying data supports it.Are follower and following counts available for private accounts?+
get_user_profile returns the is_private flag and surface-level profile fields for private accounts. Engagement metrics and media content for private accounts are not exposed. The API covers public-facing profile data only.