InstagramPOST /v1/instagram/reel

Instagram 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
All limits

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.

FieldTypeDescription
shortcodestringCanonical 11-char shortcode (from og:url)
linkstringReel URL (https://www.instagram.com/reel/<code>/)
media_idstring | null'<media_pk>_<owner_id>'; null if owner id missing
owner_usernamestring | nullUsername of the reel owner
owner_full_namestring | nullAuthor display name
owner_profile_pic_urlstring | nullAuthor profile picture URL
owner_is_verifiedboolean | nullAuthor has a verified badge
captionstringCaption, whitespace-collapsed (not truncated)
like_countinteger | nullNumber of likes
comment_countinteger | nullNumber of comments
like_and_view_counts_disabledboolean | nullOwner hid counts; like/view counts unreliable
view_countinteger | nullPlays; null when Instagram does not expose them to logged-out visitors
taken_atinteger | nullPublish time, Unix seconds
taken_at_textstring | nullDate text from og:description, e.g. 'May 25, 2026'
duration_secondsnumber | nullVideo length in seconds, 2 decimals
widthinteger | nullOriginal video width in pixels
heightinteger | nullOriginal video height in pixels
has_audioboolean | nullVideo has an audio track
audioobject | nullSound used in the reel; null if unknown
thumbnail_urlstring | nullCover image URL
video_urlstring | nullMP4 file URL (signed CDN link, expires)
video_url_expires_atstring | nullWhen 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/"}'
ParameterRequiredDescription
urlNoReel URL (/reel/, /reels/ and /p/ links work; a bare shortcode also works).
shortcodeNoReel 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.

Get 100 free credits