Fetch a public Instagram account’s reels as structured JSON — direct video URLs, play counts, durations, thumbnails and captions — with one REST call. No Instagram login or access token, paginated results.
The InstaGapi Reels API returns a public account’s reels — Instagram’s short-form vertical videos — as clean, structured JSON. One authenticated GET request with a username or numeric user ID gives you each reel’s direct video_url and thumbnail_url, its play_count and video_duration, the caption text, like and comment counts and the taken_at timestamp. Every reel comes back with media_type 2 and product_type "clips", so it is easy to separate genuine reels from ordinary feed videos.
Because reels are ranked heavily on views, the play_count field is the metric that matters most here — it shows which clips actually reached an audience rather than just how many likes they collected. Results are paginated: each response returns a pagination_token that you pass back on the next request to page through an account’s full reel history. Pair the video_url with the thumbnail_url and video_duration to build previews, download queues or analytics, all without ever handling an Instagram login.
Play counts
Real view metrics per reel
Direct video URLs
video_url, thumbnail and duration
Paginated
Walk a full reel history with tokens
Just send your key in the X-Api-Key header:
curl -H "X-Api-Key: sk_live_your_key_here" \
"https://api.instagapi.com/api/user/reels?username_or_id=nike"Simplified for readability — see the docs for the full schema.
{
"data": {
"items": [
{
"pk": "3519847201653098774",
"id": "3519847201653098774_13460080",
"code": "DKf9tLpvRa2",
"taken_at": "2026-07-20T18:05:33Z",
"media_type": 2, // 2 = video (reel)
"product_type": "clips",
"thumbnail_url": "https://scontent.cdninstagram.com/v/t51.2885-15/dkf9tlp.jpg",
"location": null,
"user": {
"pk": "13460080",
"id": "13460080",
"username": "nike",
"full_name": "Nike",
"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/nike_dp.jpg",
"is_verified": true
},
"comment_count": 1934,
"comments_disabled": false,
"like_count": 458201,
"play_count": 2841923,
"has_liked": false,
"caption_text": "Behind the scenes at training camp.",
"accessibility_caption": null,
"video_url": "https://scontent.cdninstagram.com/v/t50.2886-16/dkf9tlp_reel.mp4",
"video_duration": 15.4,
"resources": []
}
],
"pagination_token": "QVFEcE5oNmp3d2ExZ0h0b2..."
}
}/api/user/reelsGet a user’s reels (paginated)
Compare play counts, likes and comments across a creator’s reels to learn which hooks and formats drive views.
Monitor how often a brand or creator ships reels and which ones break out, so you can adopt formats early.
Capture reel video URLs, thumbnails and captions into your own storage for backups, research or compliance.
Confirm a paid reel went live and measure the reach it actually delivered against the play counts promised.
One of 60+ endpoints. Explore more in the full documentation:
Yes. You only need an InstaGapi API key in the X-Api-Key header — there is no Instagram login, OAuth or access token involved.
Each item includes a direct video_url along with a thumbnail_url and video_duration, so you can preview, stream or queue the clip yourself.
It is the number of times a reel has been played — the primary reach metric for reels, since they are ranked mainly on views rather than likes.
Every response returns a pagination_token. Pass it back as the pagination_token query param on your next /api/user/reels call to fetch the next page until no token remains.
Yes. The username_or_id parameter accepts either a username or a numeric user ID.
InstaGapi returns publicly available data only and is an independent tool, not affiliated with Instagram or Meta. You are responsible for using the data in line with Instagram’s terms and any laws that apply in your jurisdiction.
Create a free account, grab your API key, and make your first request today. No credit card required.