How to get Instagram post & reel details
GET request to /v1/instagram/details with your input. You get clean JSON back in seconds for 1 credit per call — no OAuth, scraping or platform SDKs. Get an Instagram post, Reel or carousel — caption, likes, comments, views, media URLs, author, and per-slide children on carousels.How to get Instagram post & reel details (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the Instagram Post & Reel Details API
Send an authenticated GET request to /v1/instagram/details with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/instagram/details?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FDbYaLffE2DD%2F" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"platform": "instagram",
"url": "https://www.instagram.com/p/DbYaLffE2DD/",
"id": "DbYaLffE2DD",
"postType": "Sidecar",
"productType": "carousel_container",
"caption": "Suit up!\n\nThese photos show NASA astronaut candidates @astro_fuhrmann and @astro_lawler preparing for their training flights aboard a high-flying WB-57 aircraft. These high-altitude flights train astronaut candidates to operate in tight spaces while wearing a pressure suit—a feat that prepares them for missions to the @ISS, Moon, or beyond.\n\nWhy are pressure suits necessary? The two main bodily dangers of high altitude are extremely thin air and low oxygen. Pressure suits counteract those dangers and make it possible to survive if something goes wrong in the aircraft.\n\nCredit: NASA\n\n#NASA #FlightSuit #Aircraft",
"description": "Suit up!\n\nThese photos show NASA astronaut candidates @astro_fuhrmann and @astro_lawler preparing for their training flights aboard a high-flying WB-57 aircraft. These high-altitude flights train astronaut candidates to operate in tight spaces while wearing a pressure suit—a feat that prepares them for missions to the @ISS, Moon, or beyond.\n\nWhy are pressure suits necessary? The two main bodily dangers of high altitude are extremely thin air and low oxygen. Pressure suits counteract those dangers and make it possible to survive if something goes wrong in the aircraft.\n\nCredit: NASA\n\n#NASA #FlightSuit #Aircraft",
"publishedAt": "2026-07-29T15:12:56Z",
"durationSeconds": null,
"thumbnailUrl": "https://scontent-cdg6-1.cdninstagram.com/v/t51.82787-15/759146473_18631780879049152_2448145103133242635_n.jpg?stp=dst-jpg_e35_tt6&_nc_cat=1&ig_cache_key=Mzk1MjAyMzc0MDE1ODgxNjA1Ng%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuMTQ0MC5zZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=BPWQAJMWpuwQ7kNvwGdQP1J&_nc_oc=AdpoHH53slN9fDJSer4UjuFXtie2IU4sLFlWgiGTWkMWn-EWgJmycNqbEl-vSfl9oio&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-cdg6-1.cdninstagram.com&_nc_gid=1yBugmDENcLlZjn1A6HEwA&_nc_ss=7a22e&oh=00_AQBHLNkf4idtmygEvZN9hi2njvz2sW_xF8-tUE-yiJHOBw&oe=6A701485",
"videoUrl": null,
"author": {
"username": "nasa",
"displayName": "NASA",
"url": "https://instagram.com/nasa",
"verified": true,
"profileImage": "https://scontent-cdg6-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-cdg6-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gG0njRcG3R5cIO9GnRRbYfsbfpvVHqGuePg7pDchBmh38Bj_6EQCeIjnFgc-p5lkTA&_nc_ohc=sUQGBsPKUTMQ7kNvwFOpZpy&_nc_gid=1yBugmDENcLlZjn1A6HEwA&edm=AOmX9WgBAAAA&ccb=7-5&oh=00_AQA7UnNpNR2oyCzn_iZJwhJgHlzakMt5b8t3btT6ne2AUA&oe=6A701229&_nc_sid=bfaa47"
},
"engagement": {
"likes": 34510,
"comments": 178
},
"hashtags": [
"NASA",
"FlightSuit"
],
"mentions": [
"astro_fuhrmann",
"astro_lawler"
]
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
Frequently asked questions
What does the Instagram Post & Reel Details API do?
The Instagram Post & Reel Details API lets you fetch full metadata and key stats from a public Instagram post using one GET request to /v1/instagram/details. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Instagram Post & Reel Details API cost?
Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Instagram API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Why did "Post not found" take 40–65 seconds?
An older GraphQL/embed/web ladder hung 35s. Details then ran Decodo first; that stage now parse_empties for up to 33s on every call (0 mapped posts in 7 days) before GraphQL answers. Order is GraphQL first. Decodo is miss-only and capped at 12s — 404 / private / deleted still fail fast, an og card after Apify misses is still 200. 0 credits on 404.
Why was a live Reel returning fetch_exhausted?
That was the old native GraphQL deadline, not a bad shortcode. GraphQL is first again and usually the winner (~14s). retryable fetch_exhausted is the miss only when GraphQL and the capped Decodo/Apify fallbacks are all empty.
Why does previewComments only have 2 rows when engagement.comments is 411?
Instagram only embeds a short preview on the media payload. previewCommentsTruncated is true when engagement.comments is larger. That is a cap, not a handoff — /v1/instagram/comments paginates only with a working session (nextCursor). Logged-out it may return the same preview with truncatedReason=logged_out_preview. Slim preview authors often omit avatar and the verified badge — those keys are then null, not fabricated false.
How long do Instagram media URLs last?
Signed Instagram CDN links carry oe= (hex Unix), typically about five days. mediaUrlsExpireAt is the earliest stamp across videoUrl, thumbnailUrl, author.profileImage, and carousel children. Persist the post URL and refetch; do not cache the CDN links past that stamp.
Is the Instagram Post & Reel Details API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get Instagram post & reel details?
Start free with 100 credits — no credit card required.
Get your free API key