Instagram Reels API
Pull the Reels an account posted by username, each with play_count, duration_sec, like_count, comment_count and the music used, for $1.19 per 1,000 calls.
Instagram Reels lists the Reels one public account has posted, given its username, and returns each reel's caption, length in seconds in duration_sec, play_count, like and comment counts, publish time, location text, hashtags, cover image, video link and the music used. It answers which short videos an account makes and how they perform, for creator marketers vetting accounts, social teams benchmarking competitors' video output and researchers studying short-form formats.
Pass the bare handle, such as nasa, without an @ and not as a profile URL. Compare reels by play_count against like_count and comment_count to spot the ones that drew both reach and engagement. Subtitle transcripts, top comments and the author's follower count are not part of this capability. Null counts mean Instagram did not disclose the figure, which is not zero.
- Up to 100 Reels per call
- Rows return in the same response
- No Instagram login needed
API health
- 24h health
- 100%
- 24h average time
- 48.56 s
- Healthy / normal
- Available
- Limited
- Mostly down
Last 24 hours
Last 30 days
1Request
POST /api/v1/social { "platform": "instagram", "action": "reels", "params": { "username": "nasa" } }2JSON response
{ "results": [ { "author_username": "", "post_id": "DfF3eqGSKKc", "text": "More power loading. 🔋\n\nToday, NASA astronaut Anil Menon and CSA (Canadian Space Agency) astronaut Joshua Kutryk conducted a spacewalk to install the 7th of 8 new roll out solar arrays. The final new array is slated to be installed during the Nov. 5 spacewalk, increasing the stati…", "media_type": "video" }, … ], "count": 30 }3Rows
author_username post_id text media_type DfF3eqGSKKc More power loading. 🔋 Today, NASA astronaut Anil Menon and CSA (Canadian Space Agency) astronaut Joshua Kutryk conducted a spacewalk to install the 7th of 8 new roll out solar arrays. The final new array is slated to be installed during the Nov. 5 spacewalk, increasing the stati… video De7XCa_TJ4h This is how @nasa does game day. Roll Tide! 🚀🏈 video 4CSV
instagram-reels-sample.csv post_id,url,text,media_type,like_count,comment_count,author_username,author_name,posted_at,location,id,image_url,video_url,author_id,width,height,hashtags,play_count,duration_sec,duration_seconds,music,platform
username and an optional limit goes in. The JSON response holds the account's Reels with play_count, duration_sec and music, and these become table rows and a CSV file.What data you get
The table shows rows from a real call for nasa, captured October 31, 2026 at 08:50 (UTC), that returned 30 rows. Gray bars mark removed personal information (••• in the CSV). Your own calls return these fields as listed in the field reference.
| post_id | url | text | media_type | like_count | comment_count | author_username | author_name | posted_at | location | id | image_url | video_url | author_id | width | height | hashtags | play_count | duration_sec | duration_seconds | music | platform |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DfF3eqGSKKc | https://www.instagram.com/reel/DfF3eqGSKKc/ | More power loading. 🔋 Today, NASA astronaut Anil Menon and CSA (Canadian Space Agency) astronaut Joshua Kutryk conducted a spacewalk to install the 7th of 8 new roll out solar arrays. The final new array is slated to be installed during the Nov. 5 spacewalk, increasing the stati… | video | 11609 | 129 | 2026-10-29T20:35:35+00:00 | null | https://scontent-sof1-2.cdninstagram.com/v/t51.82787-15/865204930_18640535563026724_3353517023594775034_n.jpg?stp=dst-jpg_e15_s640x640_tt6&_nc_cat=1&ig_cache_key=NDAxODg2MjI0MTg0MzAyODYzNjE4NjQwNTM1NTYwMDI2NzI0.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwa… | https://scontent-sof1-2.cdninstagram.com/o1/v/t2/f2/m86/AQMgO65IBSO4D1Fg1v8qWRLjCR7N-LaX4H_sPQeyoyjFQE149o094RWHdy1qn9GBy1VHAND2Io7UoTGpUBgIXE-YSbD4UnaCrO694xk.mp4?_nc_cat=102&_nc_sid=5e9851&_nc_ht=scontent-sof1-2.cdninstagram.com&_nc_ohc=koWnhp-eBvIQ7kNvwFJyYpR&efg=eyJ2ZW5jb2RlX… | 1080 | 1920 | null | 2043930 | 41.375999450683594 | 41.375999450683594 | {"artist":"nasajohnson","title":"Original audio"} | |||||
| De7XCa_TJ4h | https://www.instagram.com/reel/De7XCa_TJ4h/ | This is how @nasa does game day. Roll Tide! 🚀🏈 | video | 52012 | 235 | 2026-10-25T18:35:11+00:00 | Bryant-Denny Stadium | https://scontent-sof1-2.cdninstagram.com/v/t51.82787-15/858088880_1909652077075572_3321833479248057878_n.jpg?stp=dst-jpg_e15_s640x640_tt6&_nc_cat=101&ig_cache_key=NDAxNTkwNDgxNDIxODkxMTI2NTE5MDk2NTIwNzM3NDIyMzk%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLn… | https://scontent-sof1-2.cdninstagram.com/o1/v/t2/f2/m86/AQO_XE-Eozfv9EhJgpBw8CpgqEydxrCcLTTmdJ4OmJL4u8TmjEREW4NyjX7EoxhsUiVfVbZseRJAIb1F9nUfjAsGTOK4bYFiS-v5fw4.mp4?_nc_cat=105&_nc_sid=5e9851&_nc_ht=scontent-sof1-2.cdninstagram.com&_nc_ohc=47tcWctX0mAQ7kNvwFwIIq6&efg=eyJ2ZW5jb2RlX… | 1916 | 1078 | null | 4474276 | 61.507999420166016 | 61.507999420166016 | {"artist":"nasaadmin","title":"Original audio"} |
Use cases
Vet creator accounts
Read
play_countandlike_counton a prospect's Reels to judge reach and engagement.Benchmark competitor video
Pull a competitor's Reels and use
duration_secandtextto see how long they run and what they write.Find top-engaging Reels
Compare
play_countwithcomment_countto pick Reels that drew both plays and comments.Count audio choices
Read the artist and title in
musicto count which tracks an account uses most.
Instagram Graph API vs EveryInfra
Here is how Instagram's official Graph API and EveryInfra reels compare on play counts, spotting Reels and access.
| Compared | Instagram Graph API | EveryInfra |
|---|---|---|
| Play count | Field view_count: "View count for Instagram Reels, which includes both paid and organic metrics." | Each row has play_count, which you can read next to like_count and comment_count. |
| Spotting Reels | Field media_product_type: "Surface where the media is published. Can be AD, FEED, STORY or REELS. Available for Instagram API with Facebook Login only." | username returns that account's Reels, and each row has duration_sec and music. |
| Access you need | "Note that a permission only allows access to data created by the app user who granted the permission." | One EveryInfra API key in the Authorization: Bearer header. No Instagram login or Instagram access token is needed. |
Quotes are from Meta's developer documentation, checked 2026-11-09. Official sources: IG Media (updated 2026-10-29) · Instagram Platform overview (updated 2026-10-29)
Limits and gotchas
limitis an integer from 1 to 100 and defaults to 30; larger values return 422 before any charge.- There is no page parameter. One call returns at most 100 rows and can return fewer than
limit. usernameis an account handle without the @ symbol, or a full profile URL.- Subtitle transcripts, top comments and the author's follower count are not returned.
play_count,like_countandcomment_countarenullwhen not disclosed; that is not 0.duration_secis in seconds.musicis absent when there is none.
Pricing
You pay $0.001194 per call, not per row, and one call reads up to 100 Reels. Failed calls and empty results are not charged.
| Calls | Cost |
|---|---|
| 10,000 | $11.94 |
| 100,000 | $119.44 |
| 1,000,000 | $1,194.44 |
Totals use the list price per call.
Code samples
#curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "instagram",
"action": "reels",
"params": {
"username": "nasa"
}
}'OpenAPI definition (JSON)Samples read the key from the EVERYINFRA_API_KEY environment variable; copied code never contains your key.
API reference
See the parameters, response fields, errors and billing for reels, and copy the page or open it as Markdown for an AI assistant.
AI prompt
#Please help me write a data collection script with the EveryInfra Instagram Reels endpoint (instagram/reels).
How the endpoint works:
- Request: POST https://api.everyinfra.com/api/v1/social with the header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable and never hard-code it.
- In the request body, set platform to instagram and action to reels, and put the parameters inside params.
- Required parameters:
- username: Identifies an Instagram account handle without the @ symbol or as a full profile URL. Used by profile, persona, user_posts, and reels to fetch account data.
- Optional parameters:
- limit: The most rows to return in this call, an integer from 1 to 100. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. (default: 30)
- Returns a list of records. Main fields of each record: post_id, url, text, media_type, like_count, comment_count, author_username, author_name, posted_at, location, id, image_url; 21 fields in total, full list at https://api.everyinfra.com/api/v1/social/catalog?platform=instagram.
- Example request body:
{
"platform": "instagram",
"action": "reels",
"params": {
"username": "nasa"
}
}
- Price: $1.19 per 1,000 requests; failed and empty results are not charged.
- For dozens or hundreds of targets, add "mode": "async" to the body: you get a job_id at once and poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} for the result.
- On 422, fix the request using the suggested parameter names and allowed values in the error; on 429 or 503, wait for Retry-After and try again.
Before writing code, ask me which targets I need, how many, which fields, and what output format I want; then confirm the plan and the rough cost with me.Request parameters
#| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
Authorization | header | string | Yes | - | Bearer followed by your API key. Create it in the console; never put it in a URL or a code repository. |
platform | body | string | Yes | instagram | Platform identifier, fixed value. |
action | body | string | Yes | reels | Capability identifier, fixed value. |
username | body.params | string | Yes | - | Identifies an Instagram account handle without the @ symbol or as a full profile URL. Used by profile, persona, user_posts, and reels to fetch account data. The followers action returns only total follower counts, whereas followers_list and following_list return account lists. |
limit | body.params | integer (1–100) | No | 30 | The most rows to return in this call, an integer from 1 to 100. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. |
Response example
#{ "id": "req_…", "platform": "instagram", "action": "reels", "results": [ { "post_id": "DfF3eqGSKKc", "url": "https://www.instagram.com/reel/DfF3eqGSKKc/", "text": "More power loading. 🔋\n\nToday, NASA astronaut Anil Menon and CSA (Canadian Space Agency) astronaut Joshua Kutryk conducted a spacewalk to install the 7th of 8 new roll out solar arrays. The final new array is slated to be installed during the Nov. 5 spacewalk, increasing the stati…", "media_type": "video", "like_count": 11609, "comment_count": 129, "author_username": "•••", "author_name": "•••", "posted_at": "2026-10-29T20:35:35+00:00", "id": "•••", "image_url": "https://scontent-sof1-2.cdninstagram.com/v/t51.82787-15/865204930_18640535563026724_3353517023594775034_n.jpg?stp=dst-jpg_e15_s640x640_tt6&_nc_cat=1&ig_cache_key=NDAxODg2MjI0MTg0MzAyODYzNjE4NjQwNTM1NTYwMDI2NzI0.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwa…", "video_url": "https://scontent-sof1-2.cdninstagram.com/o1/v/t2/f2/m86/AQMgO65IBSO4D1Fg1v8qWRLjCR7N-LaX4H_sPQeyoyjFQE149o094RWHdy1qn9GBy1VHAND2Io7UoTGpUBgIXE-YSbD4UnaCrO694xk.mp4?_nc_cat=102&_nc_sid=5e9851&_nc_ht=scontent-sof1-2.cdninstagram.com&_nc_ohc=koWnhp-eBvIQ7kNvwFJyYpR&efg=eyJ2ZW5jb2RlX…", "author_id": "•••", "width": 1080, "height": 1920, "play_count": 2043930, "duration_sec": 41.375999450683594, "music": { "artist": "nasajohnson", "title": "Original audio" }, "platform": "instagram", "duration_seconds": 41.375999450683594 }, { "post_id": "De7XCa_TJ4h", "url": "https://www.instagram.com/reel/De7XCa_TJ4h/", "text": "This is how @nasa does game day. Roll Tide! 🚀🏈", "media_type": "video", "like_count": 52012, "comment_count": 235, "author_username": "•••", "author_name": "•••", "posted_at": "2026-10-25T18:35:11+00:00", "location": "Bryant-Denny Stadium", "id": "•••", "image_url": "https://scontent-sof1-2.cdninstagram.com/v/t51.82787-15/858088880_1909652077075572_3321833479248057878_n.jpg?stp=dst-jpg_e15_s640x640_tt6&_nc_cat=101&ig_cache_key=NDAxNTkwNDgxNDIxODkxMTI2NTE5MDk2NTIwNzM3NDIyMzk%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLn…", "video_url": "https://scontent-sof1-2.cdninstagram.com/o1/v/t2/f2/m86/AQO_XE-Eozfv9EhJgpBw8CpgqEydxrCcLTTmdJ4OmJL4u8TmjEREW4NyjX7EoxhsUiVfVbZseRJAIb1F9nUfjAsGTOK4bYFiS-v5fw4.mp4?_nc_cat=105&_nc_sid=5e9851&_nc_ht=scontent-sof1-2.cdninstagram.com&_nc_ohc=47tcWctX0mAQ7kNvwFwIIq6&efg=eyJ2ZW5jb2RlX…", "author_id": "•••", "width": 1916, "height": 1078, "play_count": 4474276, "duration_sec": 61.507999420166016, "music": { "artist": "nasaadmin", "title": "Original audio" }, "platform": "instagram", "duration_seconds": 61.507999420166016 } ], "count": 30, "billing": { "charged": …, "charged_usd": …, "balance_after_usd": …, … }, "quota": { … }}
Response fields
#Business data is in results. The table lists the fields a record can contain; values the platform does not show are never made up.
| Field | Meaning |
|---|---|
post_id | Keeps the platform's own meaning |
url | Link to the record on the platform. |
text | Body text with HTML removed, returned in full and never cut short (on a few platforms the list results themselves carry only an excerpt; the platform's field notes say so). |
media_type | Keeps the platform's own meaning |
like_count | Likes. null means the platform or this capability does not disclose it; it is not 0. |
comment_count | Comments. null means not disclosed, not 0. |
author_username | Author's username (@handle), usually usable in URLs. |
author_name | Author's display name. |
posted_at | Publish time in ISO 8601, UTC (for example 2026-08-07T12:34:56+00:00). Non-standard strings from the platform are passed through as is, so parse defensively. null means the platform does not disclose it. |
location | Location description passed through as is; the format varies by platform. |
id | The record's unique ID on the platform. Unique only within one platform; IDs can repeat across platforms. |
image_url | Image link. Capabilities with several images may return an image_urls array. |
video_url | Keeps the platform's own meaning |
author_id | Author's unique ID on the platform. |
width | Keeps the platform's own meaning |
height | Keeps the platform's own meaning |
hashtags | Hashtags in the text, in order of appearance; absent when there are none. |
play_count | Keeps the platform's own meaning |
duration_sec | Keeps the platform's own meaning |
duration_seconds | Duration in seconds. null for content that is not video or audio. |
music | Keeps the platform's own meaning |
platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |
Errors and billing
#- 401
- Missing or invalid key.
- 402
- Insufficient balance. Top up first.
- 422
- Invalid parameter name or value. Fix it using the suggestions in the error. No charge.
- 429
- Per-minute request limit reached. Wait for Retry-After, then try again.
- 503
- Could not complete. The held charge is returned to your balance. If the outcome is unknown, verify it before you retry.
- 200 empty
- No data. No charge.
FAQ
How do I read an account's Reels through the API?
Send one call to Instagram Reels with the account's handle as username, such as nasa, and its Reels come back as rows, each with post_id, url, the caption in text and the counts. To read the comments under one reel, pass its url to the Instagram Comments capability, which takes a single post or Reel link.
Can I get what is said in a reel?
Not from this capability: it returns no subtitle transcript. The caption the author wrote is in text and the tags are in hashtags, so you can search, count or classify reels by those. Store them with post_id and duration_sec to compare captions across reels of different lengths.
Which count shows how often a reel was played?
play_count holds the reel's play count, and this capability returns no separate view count. Use play_count consistently when you compare reels, and leave out rows where it is null: null means the figure was not disclosed, not that nobody watched.
What data does the Instagram Reels API return?
For the account in username it returns its Reels: text, play_count, duration_sec, like_count, music and the video link video_url.
How many Reels can one call return, and how do I page?
limit is 1 to 100 and defaults to 30. One call returns at most 100 rows, possibly fewer. There is no page parameter.
How much does it cost?
It costs $0.001194 per call, or $1.19 per 1,000 calls, billed per call and not per row. Failed calls and empty results are not charged.
Do I need an Instagram login?
No. You send one EveryInfra API key in the Authorization: Bearer header. No Instagram login or Instagram access token is needed.
What is the difference between reels and reels_search?
reels takes an account's username and returns that account's Reels, with music. reels_search takes a keyword and returns Reels under the word, with is_verified but no music.
Related Instagram endpoints
You can call the other Instagram endpoints with the same key, such as the comments under a Reel or a keyword search for Reels.
- Post details
post$0.56 per 1,000 callsFetch one or more Instagram posts or Reels from the links inurls. - Details
profile$0.56 per 1,000 callsLook up an Instagram account by handle or profile URL. - Account insights
persona$0.56 per 1,000 callsGet an account overview for an Instagram handle, built from its public profile. - Posts by user
user_posts$0.56 per 1,000 callsList posts from an Instagram account byusername, each with caption, media type, likes, comments, views, location, hashtags and top comments. - Content discovery
discover$0.56 per 1,000 callsTrack posts under an Instagram hashtag passed inkeyword. - Comments
comments$0.79 per 1,000 callsRead comments on one Instagram post or Reel aturl. - Hashtag
hashtag$0.56 per 1,000 callsCollect posts for an Instagram hashtag inhashtag, without the # sign. - Followers
followers$0.56 per 1,000 callsSee the follower and following counts of an Instagram account byusername. - Follower list
followers_list$0.56 per 1,000 callsList the accounts that follow an Instagram user, byusername, with handle, name, avatar, private and verified flags and relation type. - Following list
following_list$0.56 per 1,000 callsList the accounts an Instagram user follows, byusername, with handle, name, avatar, private and verified flags and relation type. - Account search
user_search$4.81 per 1,000 callsSearch Instagram accounts bykeyword, in the order Instagram search ranks them for that word. - Reels search
reels_search$7.19 per 1,000 callsSearch Instagram Reels bykeyword, such as coffee. - Similar accounts
similar_profiles$8.81 per 1,000 callsFind accounts Instagram suggests as similar to one account, byusernamesuch as nasa. - Tagged posts
tagged_posts$7.44 per 1,000 callsList public posts by other accounts that tag one Instagram account, given asusername, profile URL or numeric user ID. - Stories
stories$1.5 per 1,000 callsGet the stories an Instagram account has live right now, from its username. - Story highlights
highlights$1.6 per 1,000 callsList the story highlights on an Instagram profile. - Comment replies
comment_replies$0.88 per 1,000 callsRead the replies under one comment on an Instagram post or Reel, from the post link and the comment'sidreturned bycomments.