Download Instagram Videos
The raw Instagram endpoints return fresh signed CDN URLs you can download directly. Cached endpoints likeGET /v1/posts do not expose video URLs — those would be stale by the time you fetch them.
Single video
CallGET /v1/raw/instagram/post/:shortcode (1 credit, $0.01). The response includes video_url (single best stream) and video_versions[] (multi-bitrate variants).
video_versions[] if you need a specific bitrate or resolution — each entry includes a url and a type field identifying the stream quality.
All recent videos from a creator (bulk)
CallGET /v1/raw/instagram/profile/:username (0.5 credits, $0.005). The posts[] array returns up to 12 recent posts with video_url for each video post.
This is the cheapest bulk-download path — a single profile call covers up to 12 posts, significantly cheaper than calling the single-post endpoint per shortcode.
Carousel posts with videos
For carousel posts that contain video items, each slide is exposed incarousel_items[]. Filter by is_video to isolate the video items:
URL lifetime
video_url and video_versions[].url are signed Instagram CDN URLs valid for approximately 24 hours from the moment of the API call. Download promptly. If you need to retain videos long-term, store them on your own infrastructure — re-requesting the same shortcode after the URLs expire costs an additional credit.
Cost summary
| Pattern | Endpoint | Credits | Cost |
|---|---|---|---|
| Single video | GET /v1/raw/instagram/post/{shortcode} | 1 | $0.01 |
| Up to 12 videos from one creator | GET /v1/raw/instagram/profile/{username} | 0.5 | $0.005 |
| Carousel (per post) | GET /v1/raw/instagram/post/{shortcode} | 1 | $0.01 |
Implementation advice
- Prefer the profile endpoint for bulk work. If you want the recent video content from a specific creator, one profile call is cheaper than calling the post endpoint per shortcode.
- Download before storing the URL. Don’t cache the signed URL itself — it expires. Either download the file immediately or re-fetch the URL when you need it.
- Check
is_videobefore downloading. Both profileposts[]and carouselcarousel_items[]contain mixed photo and video items. Filtering onis_video: trueavoids requesting video fields that aren’t present on photo posts.