Instagram Trending Reels API
Cache-first trending Reels.
On-demand trending Reels from Instagram's logged-out /reels Explore feed (not keyword search). Every payload carries listing: "reels_feed" is the feed itself; "hashtag_clips" means Instagram was not serving the logged-out feed (it has gone dark for every country for days at a time — 6–10 Oct 2026) and the rows are instead the current top clips for the country's hashtags (listingHashtags, e.g. india/bharat/mumbai) merged and ranked by views, with a note saying exactly that. It is a labelled stand-in, not Instagram's own trending signal — branch on listing if that distinction matters to you. Flat 2 credits on a live or cache-fresh 200 of either listing; a miss on both with a last-good snapshot is labelled stale at 0 credits (held 7 days; fetchedAt is the scrape time, servedAt the handover) and only then 502. Default cache=true is cache-first (4h per-country TTL). cache=false forces a live scrape — feed listing ~18s, Polarıs hydrate cut at 50s, then the hashtag grids (~5–10s) if the feed missed; 110s hard ceiling. Envelope: platform, country, countryCode, cached, source (native | cache), listing, requested, totalReturned, hasMore (always false — no cursor), nextCursor null, truncatedReason (hydrate_deadline | age_filter | upstream_supply | null), fetchMs / hydrateMs / totalMs, fetched / hydrated / hydrateSkipped. Each reel splits videoUrlExpiresAt / thumbnailUrlExpiresAt and flags likesIsApproximate / commentsIsApproximate. engagement.views is omitted on reels_feed rows (logged-out /reels never exposes play counts) and present on most hashtag_clips rows. limit max 50 (store caps around 24). No fallback path on this endpoint. For a live hashtag scrape of your own tag use Instagram Reels Search.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/instagram/trending-reels
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
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[].
Max items to return (default 10, max 50). Flat 2 credits per call.
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.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.