API · b2b

social media downloader API

one REST API to download videos, photos and audio from six platforms. the same engine behind fastsaver.io and @fastsaver_bot, as a service for your product.

what it does

you send a public post url. you get back JSON with a direct file link, a thumbnail, the dimensions and the caption. no scraping, no headless browsers, no cookies to babysit.

auth

every request carries your key in an X-Api-Key header. that’s the whole auth story: no OAuth, no tokens to refresh. you can manage your keys in the dashboard.

quick start

one GET request covers tiktok, instagram, facebook, x and pinterest:

curl "https://api.fastsaver.io/v1/fetch?url=https://www.instagram.com/reel/DRVO0TKkWPD/" \
  -H "X-Api-Key: YOUR_KEY"

the response is flat JSON with direct file links:

{
  "ok": true,
  "id": "DRVO0TKkWPD",
  "source": "instagram",
  "type": "video",
  "download_url": "https://scontent.cdninstagram.com/v/512204981_n.mp4?…",
  "thumbnail_url": "https://scontent.cdninstagram.com/v/512204981_n.jpg?…",
  "width": 1080,
  "height": 1920,
  "duration": 31,
  "caption": "golden hour in lisbon"
}

response fields

  • ok — true on success
  • id — the post id on the source platform
  • source — tiktok, instagram, facebook, x or pinterest
  • type — video, image or album
  • download_url — direct link to the clean file, no watermark
  • thumbnail_url — poster image
  • width, height, duration — pixels and seconds; duration only for video
  • caption — the post text, handy for filenames
  • music_url — tiktok only: the sound track as mp3
  • items[] — albums and carousels: one entry per slide with type, download_url, thumbnail_url, width, height

errors

failures come back as { ok: false, detail } with a plain http status.

  • 401 — bad or missing key
  • 400 — no credits left, or the url isn’t a supported post
  • 429 — too many requests per minute, back off and retry
  • fetch.failed — the post is private, removed or otherwise unreachable
{ "ok": false, "detail": "fetch.failed" }

youtube is two steps

youtube files come in many qualities, so you pick one first. GET /v1/youtube/info lists the formats with their filesize. then POST /v1/youtube/download with the format you want returns a download_url and a filename. format audio gives you an m4a file.

curl "https://api.fastsaver.io/v1/youtube/info?url=https://youtu.be/dQw4w9WgXcQ" \
  -H "X-Api-Key: YOUR_KEY"

curl -X POST https://api.fastsaver.io/v1/youtube/download \
  -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{ "url": "https://youtu.be/dQw4w9WgXcQ", "format": "1080p" }'

endpoints

  • GET /v1/fetch?url=… — tiktok, instagram, facebook, x, pinterest
  • GET /v1/youtube/info?url=… — list available formats
  • POST /v1/youtube/download — resolve the format you picked

credits and pricing

one successful call costs one credit. every new key starts with 1,000 free credits, enough to build and test without a card. paid plans start at $9/month, see pricing. public posts only, same rule as the website and the bot.

guides

frequently asked questions

Which platforms does the API support?
TikTok, Instagram, YouTube, Facebook, X (Twitter) and Pinterest. Videos, photos, albums, TikTok sounds and YouTube audio.
Does the TikTok endpoint remove the watermark?
Yes. download_url points at the clean source file, and music_url gives you the sound as an mp3.
Can I get YouTube audio on its own?
Yes. Call /v1/youtube/download with format "audio" and you get an m4a file. It plays in every music app.
Can it download private content?
No. Public posts only, by design. Private, removed or age-gated posts come back as fetch.failed.
What does it cost?
Every new key starts with 1,000 free credits. Paid plans start at $9 per month. No card needed to try it.

just want to download something? use the downloader.