Social Media Downloader API: Instagram & Pinterest
Pricing
from $2.28 / 1,000 stored media files
Social Media Downloader API: Instagram & Pinterest
Social media downloader without login: download media from a list of social media links on Instagram and Pinterest (photos, reels, videos, pins) into your run's storage, one output shape for both. Call it from n8n, Make or the API; unsupported or failed links are free.
Pricing
from $2.28 / 1,000 stored media files
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Social Media Downloader: Instagram & Pinterest
Cross-platform social media post media downloader. Paste any mix of social post URLs (Instagram, Pinterest, and more) to route each post to its platform resolver, download images and video files into the run's key-value store, and return a single unified output shape for every platform.
Who it's for
Social media managers, content creators, media archiving pipelines, and data automation teams who need a single API to download high-resolution photos, video reels, carousel covers, and pin media across social networks without managing separate platform scrapers or session logins.
Why this one
- One input list, all platforms. Submit any mix of Instagram reels/posts, Pinterest pins, boards, or profile links in a single request.
- Unified output shape. Standardized dataset format across all platforms, including file dimensions, SHA-256 hashes, video duration, frame rates, and Key-Value Store download URLs.
- Durable Key-Value Store storage. Media files land directly in Apify Key-Value Store for high-speed retrieval.
- Zero-charge policy on misses. Unsupported platforms, failed downloads, or skipped duplicates return explicit error/skipped rows and trigger zero charges.
What you get
Each dataset row represents one stored media file in the Key-Value Store, providing:
platform: platform name (instagram,pinterest).inputUrl: original input URL supplied.postUrl&postId: canonical URL and post identifier.kind:image,video,gif, orcover.kvKey&kvUrl: Key-Value Store key and direct download URL.- Technical media metadata (
bytes,sha256,width,height,duration_s,fps,codec,hasAudio). - Caption & author metadata (
text,author,createdAt) and platform-specificextraattributes.
Supported platforms
| Platform | Domain / URL Pattern | Supported? | Status / Notes |
|---|---|---|---|
instagram.com/p/..., /reel/..., /tv/... | Yes | Post photos, video reels, IGTV, carousel cover stills. Logged out via RESIDENTIAL proxy. | |
pinterest.com/..., pin.it/... | Yes | Single image pins, video pins (MP4/HLS), story/idea pin pages, board feeds, profile feeds. | |
reddit.com/..., redd.it/... | No | Downloader not registered yet (error: "platform-not-supported-yet"). Never billed. | |
| X (Twitter) | x.com/..., twitter.com/... | No | Downloader not registered yet (error: "platform-not-supported-yet"). Never billed. |
| Telegram | t.me/..., telegram.me/... | No | Downloader not registered yet (error: "platform-not-supported-yet"). Never billed. |
| Bluesky | bsky.app/... | No | Downloader not registered yet (error: "platform-not-supported-yet"). Never billed. |
| TikTok | tiktok.com/... | No | Not supported logged out (error: "platform-not-supported"). Never billed. |
| YouTube | youtube.com/..., youtu.be/... | No | Not supported logged out (error: "platform-not-supported"). Never billed. |
How to use
- In the Apify Console. Open the actor page and click Start — the
urlsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~social-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"urls":["https://www.instagram.com/p/DdG4RIxIPyf/","https://www.pinterest.com/pin/1110137376931239840/"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"urls": ["https://www.instagram.com/p/DdG4RIxIPyf/","https://www.pinterest.com/pin/1110137376931239840/"]}
Paste any mix of post, reel, or pin URLs across supported social media platforms (Instagram, Pinterest). Each media file downloads into the key-value store with one common output shape. Accepted formats: https://www.instagram.com/p/DdG4RIxIPyf/, https://www.pinterest.com/pin/1110137376931239840/.
Output
| query | found | status | platform | inputUrl | postUrl | postId | kind | mediaIndex | kvKey | kvUrl | originalMediaUrl | bytes | sha256 | width | height | duration_s | fps | codec | hasAudio | text | author | createdAt | extra | error | skipped | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| https://www.instagram.com/p/DdG4RIxIPyf/ | true | OK | <duration (s)> | <caption / text> | 1970-01-01T00:00:00.000Z |
Example runs
1. Mixed Instagram Reel & Pinterest Pin Download
{"urls": ["https://www.instagram.com/p/DdG4RIxIPyf/","https://www.pinterest.com/pin/1110137376931239840/"],"kinds": "all","maxMb": 100}
2. Pinterest Board Video Extraction
{"urls": ["https://www.pinterest.com/marthastewart/scandinavian-design/"],"kinds": "videos","maxPerSource": 10}
3. Multi-Source Ingestion with Deduplication
{"urls": ["https://www.instagram.com/p/DdG4RIxIPyf/","https://www.instagram.com/p/DdG4RIxIPyf/","https://www.reddit.com/r/pics/comments/example"],"skipDuplicates": true}
Pricing
- File stored: $6 per 1,000 social media media files
- Megabyte downloaded: $0.005 per MB
Plus a $0.01 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~social-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"urls":["https://www.instagram.com/p/DdG4RIxIPyf/","https://www.pinterest.com/pin/1110137376931239840/"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~social-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"urls":["https://www.instagram.com/p/DdG4RIxIPyf/","https://www.pinterest.com/pin/1110137376931239840/"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~social-media-downloader/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"urls":["{{social media media file}}"]}, mapping the row's social media media file into the urls array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Social Media Downloader: Instagram & Pinterest Media API" — the agent will find and run this actor.
Use-case variant candidate: none
