How to get Instagram trending reels
GET request to /v1/instagram/trending-reels with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Cache-first trending Reels. Wall miss is labelled stale 200, not 502. Max 50. Flat 2 credits.How to get Instagram trending reels (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 Trending Reels API
Send an authenticated GET request to /v1/instagram/trending-reels 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/trending-reels" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"platform": "instagram",
"country": "United States",
"countryCode": "US",
"cached": true,
"totalReturned": 2,
"requested": 10,
"hasMore": false,
"nextCursor": null,
"truncatedReason": null,
"reels": [
{
"platform": "instagram",
"url": "https://www.instagram.com/reel/DbYmqpplO_N/",
"id": "3952078729724096461",
"shortcode": "DbYmqpplO_N",
"postType": "Video",
"productType": "clips",
"section": null,
"topic": null,
"caption": "The Sun and Moon are coming together to put on a show for Earth, and we'll be sharing it with you. 😎\n\nOn Aug. 12, a total solar eclipse will pass over Earth, and we'll be broadcasting it live along the path of totality. Check our link in bio to learn how to watch along with us!\n\n#NASA #Sun #TotalSolarEclipse2026",
"description": "The Sun and Moon are coming together to put on a show for Earth, and we'll be sharing it with you. 😎\n\nOn Aug. 12, a total solar eclipse will pass over Earth, and we'll be broadcasting it live along the path of totality. Check our link in bio to learn how to watch along with us!\n\n#NASA #Sun #TotalSolarEclipse2026",
"publishedAt": "2026-07-29T17:02:45Z",
"durationSeconds": null,
"thumbnailUrl": "https://scontent-lga3-3.cdninstagram.com/v/t51.82787-15/760192799_18631809481049152_7782886010573196119_n.jpg?stp=dst-jpg_e15_tt6&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=104&_nc_oc=Q6cZ2gGam1aPbxqnPf0b0JKP7tArIHvIrXRHft307eWE7UMXS_pr6S4N6-Dm4L-cNp1JOIg&_nc_ohc=NLXhSIvSAE8Q7kNvwG7hHBp&_nc_gid=EJ9eFsuBV8RTUu0BGi0U6A&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AQAOYlO_MiU0ymVZP-LUmVyzq1Qfu0qndl3JUXVB6LqVwA&oe=6A6FEEDB&_nc_sid=8b3546",
"videoUrl": "https://scontent-lga3-1.cdninstagram.com/o1/v/t2/f2/m86/AQOkpXQA9C2FhMuyAbNvepC6OP6PrkitJW3nqH3dhIDVm7lu82BvCIZApUA5L2uZr02DWsYDPOvZUymd3s8Q5RQJ_i1Bkk9Qx3VnTwk.mp4?_nc_cat=111&_nc_sid=5e9851&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_ohc=DqUQRmuNQ38Q7kNvwEf3m2C&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTg2MzE4MDkzMTAwNDkxNTIsImFzc2V0X2FnZV9kYXlzIjowLCJ2aV91c2VjYXNlX2lkIjoxMDA5OSwiZHVyYXRpb25fcyI6NDQsInVybGdlbl9zb3VyY2UiOiJ3d3cifQ%3D%3D&ccb=17-1&vs=d63b773f9b2109a6&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC9ENjQ4OTVCRTVEN0I2MDc3MzFGQkNDNUI1MjZDN0RCMl92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzlBNDA3ODFBQjMyMTkwODU4OTg3RTNFRUYzNUJBMkE4X2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACaAjpb3hOKYQhUCKAJDMywXQEZnztkWhysYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=EJ9eFsuBV8RTUu0BGi0U6A&_nc_ss=7a22e&_nc_zt=28&oh=00_AQDrxCQWJjYdJ_A1wP9NAqwnYMpcGLVAhJP0LpoE3AyyTg&oe=6A6C1F8C",
"author": {
"username": "nasa",
"url": "https://instagram.com/nasa"
},
"engagement": {
"views": 51078,
"likes": 10645,
"comments": 149,
"viewsInstagram": 40862,
"viewsFacebook": 10216
},
"hashtags": [
"NASA",
"Sun"
],
"mentions": []
},
{
"platform": "instagram",
"url": "https://www.instagram.com/reel/DbL6n0ggXDZ/",
"id": "3948507321457537241",
"shortcode": "DbL6n0ggXDZ",
"postType": "Video",
"productType": "clips",
"section": null,
"topic": null,
"caption": "Sound on!\n\nSonifications take images from across the universe and turn them into music, with different notes corresponding to different frequencies of light.\n\nThis sonification of NGC 4736, a bright spiral galaxy found 16 million light-years from Earth, sweeps clockwise around the image. As it reaches neutron stars and black holes (spotted by our @nasachandraxray telescope), it turns them into pitched tones on a glass marimba. Other sources of light are represented by piano notes or a low, ethereal drone.\n\n#NASA #Space #MusicLife",
"description": "Sound on!\n\nSonifications take images from across the universe and turn them into music, with different notes corresponding to different frequencies of light.\n\nThis sonification of NGC 4736, a bright spiral galaxy found 16 million light-years from Earth, sweeps clockwise around the image. As it reaches neutron stars and black holes (spotted by our @nasachandraxray telescope), it turns them into pitched tones on a glass marimba. Other sources of light are represented by piano notes or a low, ethereal drone.\n\n#NASA #Space #MusicLife",
"publishedAt": "2026-07-24T18:46:42Z",
"durationSeconds": null,
"thumbnailUrl": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-15/753557824_18630272896049152_5085604310932259746_n.jpg?stp=dst-jpg_e15_fr_s1080x1080_tt6&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gGam1aPbxqnPf0b0JKP7tArIHvIrXRHft307eWE7UMXS_pr6S4N6-Dm4L-cNp1JOIg&_nc_ohc=JXie426E2AIQ7kNvwGlg-Up&_nc_gid=EJ9eFsuBV8RTUu0BGi0U6A&edm=AOQ1c0wBAAAA&ccb=7-5&oh=00_AQDfQIt5ChHfvw1haYF6Huy5Tm0DHMMWjvyPqrGpi7_tTA&oe=6A7021E6&_nc_sid=8b3546",
"videoUrl": "https://scontent-lga3-1.cdninstagram.com/o1/v/t2/f2/m86/AQPmdAz9D4QKeO_RBry8I2ja9L4hPZ0xY85OXT_W30_E9E5cOr_RoiOcZHVX6a9Fvjg8qStE7fTYF0T9sgmzJyxUs6ay7J6Bvu0fLb4.mp4?_nc_cat=109&_nc_sid=5e9851&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_ohc=9d9-4rCXivsQ7kNvwFJggA4&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTg2MzAyNzI3NzAwNDkxNTIsImFzc2V0X2FnZV9kYXlzIjo0LCJ2aV91c2VjYXNlX2lkIjoxMDA5OSwiZHVyYXRpb25fcyI6MzQsInVybGdlbl9zb3VyY2UiOiJ3d3cifQ%3D%3D&ccb=17-1&vs=53b7030fc1cf7a2a&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC9CODQ0NkUzMkVERDMxMDM4NjFFNDk1OTc4NjM0NzFCQl92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyL0JCNEUzREJGMERFRTc3RDY4Nzc5QzA5QzRFQUVCNzkxX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACaAkrjozIiYQhUCKAJDMywXQEEAAAAAAAAYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=EJ9eFsuBV8RTUu0BGi0U6A&_nc_ss=7a22e&_nc_zt=28&oh=00_AQBlTouRSWFhKYJdRHR9XtTa3aGhEHVVC578ay32Lrz7mQ&oe=6A6C2F2A",
"author": {
"username": "nasa",
"url": "https://instagram.com/nasa"
},
"engagement": {
"views": null,
"likes": 485567,
"comments": 2174,
"viewsInstagram": null,
"viewsFacebook": null
},
"hashtags": [
"NASA",
"Space"
],
"mentions": [
"nasachandraxray"
]
}
],
"note": "Snapshot-backed trending list (typical freshness under 24h). Instagram returns a small overlapping batch per scrape; duplicates across requests are expected. For live keyword search use /v1/instagram/reels-search.",
"cachedAt": "2026-07-29T18:00:00Z",
"stale": true,
"ageHours": 32
}
}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 |
|---|---|---|---|
| country | string | No | Country for Reels localization — full name or ISO code (e.g. 'United States', 'US', 'Turkey', 'TR'). Default United States. Unsupported values return 400 with supportedCountries[]. |
| limit | integer | No | Max items to return (default 10, max 50). Flat 2 credits per call. |
| cache | boolean | No | Default true (cache-first): serve the per-country response cache when present (TTL 4 hours). Every successful call costs 2 credits — including cache hits. Set false to force a live scrape (measured miss 45–75s, hard-capped at 110s). Raise client timeouts above 90s — n8n/Make defaults will fail a miss. The fresh result still refreshes the cache. |
Frequently asked questions
What does the Instagram Trending Reels API do?
The Instagram Trending Reels API lets you list items in bulk with metadata from a public Instagram trending reels using one GET request to /v1/instagram/trending-reels. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Instagram Trending Reels API cost?
Each successful call costs 2 credits. Every successful call costs 2 credits — including cache hits. Cache is on by default (4h per-country TTL); pass cache=false to force a live scrape. Failures are 0 credits. 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.
Are cache hits free? What is the TTL?
No. Live/cache-fresh 200s still cost 2 credits. A wall miss with a last-good snapshot is labelled stale at 0 credits (6h). Default is cache-first (4h per-country TTL): a hit is fast. cache=false forces a live scrape (measured 45–75s). Raise n8n/Make timeouts above 90s or a miss looks like a client bug.
Why did Japan or South Korea return 502 with afterAgeFilter 0?
A thin /reels/ page (often one leftover shortcode) used to skip /explore/reels/, then the age filter dropped that one stale post. That surfaces as fetch_thin — a scrape-yield miss, not a filter-threshold miss. A failed country is remembered for 60s; if a last-good grid exists it is served as labelled stale 200 (0 credits) instead of 502.
Where did a 20s cache=false call spend its time?
fetchMs is Decodo listing of /reels (and /explore/reels on a thin page). hydrateMs is Polarıs shortcode hydrate (cut at 50s). totalMs covers the scrape plus the cache write. They live in timings{path,fetchMs,hydrateMs,totalMs} and are also lifted onto the payload root. stages still does not ship. A cache miss is listing+hydrate under the 65s scrape cap; a hit is fast. source is native on a live scrape and cache on a hit.
Why did I get 7 or 8 rows when I asked for 10?
truncatedReason names it. upstream_supply = Instagram only listed that many. age_filter = the ~180-day Explore rule dropped older posts. hydrate_deadline = Polarıs hydrate hit the 50s cut and returned what it had — retry may yield more.
Is the Instagram Trending Reels API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Every successful call costs 2 credits — including cache hits. Cache is on by default (4h TTL); pass cache=false to force a live scrape. Use it for analytics, monitoring, and content automation.
Ready to get Instagram trending reels?
Start free with 100 credits — no credit card required.
Get your free API key