POST /v1/instagram/reelInstagram Reel Scraper API
A single Instagram reel by URL or shortcode: owner, caption, likes, comments, duration, resolution, audio, cover image and a downloadable MP4 link.
- Cost
- 1 credit
- Failed requests
- Refunded
- Cache hits
- Free
- Response fields
- 22
- Limits
- Public reels only · MP4 link expires in days
What the Instagram Reel Scraper API does
The Instagram Reel Scraper API returns a single public reel by URL or shortcode: owner username, full caption, like and comment counts, plays when Instagram shows them to logged-out visitors, publish time, duration, original width and height, whether it has audio, the sound used, a cover image and a downloadable MP4 link. The video link is a signed CDN URL that stops working at video_url_expires_at, usually within a few days, so download the file before then if you need to keep it. /reel/, /reels/ and /p/ links work, as does a bare shortcode. Photo and album posts are rejected with NOT_A_REEL, so you always know you got a video. Each request costs 1 credit, and repeat reads within your cache window are free.
What you get
Top-level fields of the response. Every field is typed and documented; nullable fields are null when the platform does not show them.
| Field | Type | Description |
|---|---|---|
shortcode | string | Canonical 11-char shortcode (from og:url) |
link | string | Reel URL (https://www.instagram.com/reel/<code>/) |
media_id | string | null | '<media_pk>_<owner_id>'; null if owner id missing |
owner_username | string | null | Username of the reel owner |
owner_full_name | string | null | Author display name |
owner_profile_pic_url | string | null | Author profile picture URL |
owner_is_verified | boolean | null | Author has a verified badge |
caption | string | Caption, whitespace-collapsed (not truncated) |
like_count | integer | null | Number of likes |
comment_count | integer | null | Number of comments |
like_and_view_counts_disabled | boolean | null | Owner hid counts; like/view counts unreliable |
view_count | integer | null | Plays; null when Instagram does not expose them to logged-out visitors |
taken_at | integer | null | Publish time, Unix seconds |
taken_at_text | string | null | Date text from og:description, e.g. 'May 25, 2026' |
duration_seconds | number | null | Video length in seconds, 2 decimals |
width | integer | null | Original video width in pixels |
height | integer | null | Original video height in pixels |
has_audio | boolean | null | Video has an audio track |
audio | object | null | Sound used in the reel; null if unknown |
thumbnail_url | string | null | Cover image URL |
video_url | string | null | MP4 file URL (signed CDN link, expires) |
video_url_expires_at | string | null | When video_url stops working, ISO 8601 (read from the signed link) |
Request example
Send the API key as a Bearer token. The body is a small JSON object.
curl -X POST https://api.scrapeeverything.com/v1/instagram/reel \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.instagram.com/reel/DYxz0A8Kinw/"}'| Parameter | Required | Description |
|---|---|---|
url | No | Reel URL (/reel/, /reels/ and /p/ links work; a bare shortcode also works). |
shortcode | No | Reel shortcode; alias used only when url is empty. |
What it costs
Each successful request costs 1 credit. Your first 100 credits are free. With credit packs, 1,000 requests to this endpoint cost:
Builder pack
$1.56
25,000 credits for $39.00
Growth pack
$1.19
100,000 credits for $119.00
Scale pack
$0.90
500,000 credits for $449.00
See pricing for all packs and rate limits.
Use cases
- Archive your own or your campaign's reels together with their engagement numbers.
- Research short-form formats by duration, resolution and the sound each reel uses.
- Check plays, likes and comments on a sponsored reel for client reporting.
Limitations: Unofficial API: not affiliated with or endorsed by the platform. Public data only, as a logged-out visitor sees it. Private accounts return profile fields only; posts show at most 15 newest comments; items Instagram hides from logged-out visitors are missing.
- Accepts reel, post and IGTV links or a bare shortcode. Photo and album posts return 404 with code NOT_A_REEL.
- video_url is a signed CDN link that stops working at video_url_expires_at, usually within a few days. Download it before then, for example: curl -L -o reel.mp4 "<video_url>"
- Returns 404 with PRIVATE_ACCOUNT or AGE_RESTRICTED when the reel exists but is not publicly viewable.
Questions
How long does the MP4 link work?
Until video_url_expires_at, usually a few days. It is a signed CDN link, so download the file before it expires.
What if I send a photo post?
Photo and album posts return 404 with code NOT_A_REEL. Use the Instagram post endpoint for those.
Why is view_count null?
Instagram does not always expose plays to logged-out visitors. In that case view_count is null, while likes and comments are usually still returned.
How much does the Instagram Reel Scraper API cost?
1 credit per successful request. Credits are bought in one-time packs and never expire. New accounts get 100 free credits. No payment details needed.
Am I charged for failed requests?
No. If the platform blocks the request, it times out or something fails on our side, the credits are refunded automatically. A definitive answer such as "this account does not exist" is billed because the lookup completed.
Can I re-read a result without paying again?
Yes. Send cache_days (1 to 14) and a repeat request for the same target within that window is served from your cache for free.
More Instagram endpoints
Start with 100 free credits.
Continue with Google, create an API key and send your first request in under a minute.