Instagram Downloader Api avatar

Instagram Downloader Api

Pricing

from $20.00 / 1,000 results

Go to Apify Store
Instagram Downloader Api

Instagram Downloader Api

Download photos, videos, reels, and carousels from Instagram posts. Extracts detailed metadata for videos and images.

Pricing

from $20.00 / 1,000 results

Rating

5.0

(1)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

110

Total users

24

Monthly active users

48 days

Issues response

7 days ago

Last modified

Share

Download photos, videos, reels, and carousel posts from Instagram with full technical metadata. Supply direct post URLs or Instagram usernames and receive media files saved to Apify's key-value store alongside structured dataset records with resolution, duration, file size, and source post details.

What this actor does

  • Download from post URLs — provide direct /p/, /reel/, or /tv/ links to download specific posts
  • Scrape by username — supply Instagram handles to automatically discover and download recent posts
  • Carousel support — downloads every image in a multi-photo post as separate files
  • Video metadata — captures resolution, duration, FPS, codec, bitrate, and file size for each video
  • Image metadata — captures dimensions, file extension, and file size for each image
  • Cloud storage — media is uploaded to Apify's key-value store with a public download URL returned in the dataset
  • Reliable — built-in retry logic and automatic managed session rotation

Authentication

This actor requires Instagram session cookies to access post media. Authentication is handled automatically using a managed pool of shared Instagram sessions — no credentials or configuration are required from the user.

Output per media file

One dataset record is created per downloaded media file. A carousel post with 5 images produces 5 records.

Always present

  • filename — saved file name including extension (e.g. 3918833148741120108.jpg)
  • post_url — source Instagram post URL
  • username — Instagram handle of the post creator
  • typeimage or video
  • download_statusfinished when the file was successfully downloaded and stored
  • downloaded_at — ISO 8601 timestamp of when the file was downloaded
  • storage_key — key name used in Apify's key-value store
  • download_url — public URL to access or download the file from Apify's key-value store
  • media_meta_data — object containing technical file details (see below)

Fields inside media_meta_data — always present

  • width — media width in pixels
  • height — media height in pixels
  • ext — file extension (jpg, mp4, etc.)
  • filesize_bytes — file size in bytes
  • aspect_ratio — width-to-height ratio (rounded to 2 decimal places)

Fields inside media_meta_data — present only for videos

  • fps — frames per second
  • duration — video length in seconds
  • video_codec — codec identifier (e.g. avc1)
  • total_bitrate_kbps — total bitrate in kilobits per second

Input

FieldTypeDefaultDescription
postUrlsarrayDirect Instagram post, reel, or IGTV URLs to download. Supports /p/, /reel/, and /tv/ formats
usernamesarrayInstagram handles whose recent posts should be downloaded (e.g. leomessi, natgeo)
maxPosts_per_usernameinteger10Maximum number of recent posts to download per username. Range 1–100

At least one of postUrls or usernames must be provided.

Example: download specific posts by URL

{
"postUrls": [
"https://www.instagram.com/leomessi/p/DZifppZj_cB/",
"https://www.instagram.com/natgeo/reel/DYhkH24lf3j/"
]
}

Example: download recent posts from usernames

{
"usernames": ["natgeo", "leomessi"],
"maxPosts_per_username": 5
}

Example: combine direct URLs with username scraping

{
"postUrls": ["https://www.instagram.com/leomessi/p/DZifppZj_cB/"],
"usernames": ["natgeo"],
"maxPosts_per_username": 3
}

Example output

{
"filename": "3918833148741120108.jpg",
"post_url": "https://www.instagram.com/leomessi/p/DZifppZj_cB/",
"username": "leomessi",
"type": "image",
"download_status": "finished",
"downloaded_at": "2026-07-02T18:46:36.768000",
"storage_key": "3918833148741120108.jpg",
"download_url": "https://api.apify.com/v2/key-value-stores/abc123/records/3918833148741120108.jpg",
"media_meta_data": {
"width": 1080,
"height": 1350,
"ext": "jpg",
"filesize_bytes": 284672,
"aspect_ratio": 0.8
}
}

Known limitations

  • Public posts only — private account posts are not accessible. The actor detects private profiles and skips them with an error record.
  • Stories not supported — only permanent posts, reels, and IGTV are downloaded. Stories are excluded.
  • Download URLs are temporary — files in Apify's key-value store follow standard Apify dataset retention. Export files before they expire if you need permanent storage.
  • Username post discovery — post discovery from a profile scrolls up to 100 posts; the exact number available depends on how many posts Instagram surfaces in the feed.

Use cases

  • Content archiving — save a creator's posts offline or back them up before deletion
  • Brand monitoring — download posts from competitors or partners for analysis and reporting
  • Social media research — collect video and image datasets from specific accounts for AI training or analysis
  • Marketing asset collection — pull media from user-generated content campaigns for review
  • Influencer analysis — download recent posts to assess visual content quality and engagement patterns
  • Bulk media export — migrate Instagram media libraries to other platforms or storage systems

FAQ

Do I need an Instagram account or cookies to use this actor? No. Authentication is handled automatically using a managed pool of shared Instagram sessions. No credentials or configuration are required.

Can I download from private accounts? No. Private account posts are not publicly accessible. The actor detects private profiles and outputs an error record with the profile metadata instead of downloading media.

How many posts can I download per run? There is no hard cap on the number of post URLs you can supply directly. For username-based scraping, the maxPosts_per_username field controls how many recent posts are fetched per profile (up to 100).

Are carousel posts (multiple images) supported? Yes. Each image in a carousel is downloaded as a separate file and produces its own dataset record. A 5-image carousel produces 5 records and 5 key-value store entries.

How long are the downloaded files available? Files are stored in Apify's key-value store and follow standard Apify dataset retention policies. Export them before they expire if you need permanent storage.

How fresh is the data? Data is scraped live at the time of the run. Media files and metadata reflect the current state of each post at the moment of scraping.

Is this actor affiliated with Instagram or Meta? No. This is an independent third-party tool that automates interaction with the public Instagram website. It is not endorsed by or affiliated with Meta Platforms, Inc.

Other Instagram Scrapers

Want to get other data from Instagram? Check out our complete suite of Instagram scrapers:

ActorDescription
Instagram Post ScraperScrape public posts, reels, IGTV, and carousel posts from direct URLs — no login or cookies required
Instagram Comment ScraperScrape comments from any Instagram post or reel
Instagram Profile ScraperExtract profile data, bio, follower counts, and more
Instagram Followers & Following ScraperScrape followers and following lists from any profile
Instagram Tagged Posts ScraperCollect posts where a user has been tagged
Instagram Hashtag ScraperScrape posts and profiles by hashtag
Instagram Story DownloaderDownload stories from Instagram profiles
Instagram Keyword ScraperSearch and scrape posts by keyword
Instagram Keyword Search ScraperSearch Instagram accounts and posts by keyword
Instagram Transcript ScraperExtract transcripts from Instagram video content