REST API · CLI · Bulk endpoint
Download videos from your terminal
A small REST API for scripting bulk downloads. Free tier, instant key issuance, no signup beyond an email.
Get a free API key
Free tier: 200 requests / month. Plenty for personal scripts and one-off batches.
Quick start
Replace $SAVE47_KEY with the token issued above.
Probe a URL (metadata only)
curl 'https://save47-api-production.up.railway.app/v1/probe?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ' \
-H "Authorization: Bearer $SAVE47_KEY"Download a file
curl -L --output video.mp4 \
'https://save47-api-production.up.railway.app/download?url=<URL>&formatId=1080p' \
-H "Authorization: Bearer $SAVE47_KEY"Bulk probe (up to 50 URLs)
curl -X POST 'https://save47-api-production.up.railway.app/v1/bulk' \
-H "Authorization: Bearer $SAVE47_KEY" \
-H 'Content-Type: application/json' \
-d '{"urls": ["https://youtu.be/abc", "https://youtu.be/def"], "concurrency": 4}'Use the CLI
# install
npm i -g save47-cli
# configure
save47 login $SAVE47_KEY
# download
save47 download "https://www.tiktok.com/@user/video/123"
# bulk
save47 bulk urls.txt --concurrency 4 --out ./downloadsEndpoint reference
GET
/v1/probeReturns metadata + available formats for a URL. Cached for 10 minutes.
GET
/downloadStreams the media file. Set Authorization to skip per-IP rate limit and Turnstile.
POST
/v1/bulkBody: { urls: string[], concurrency?: 1-8 }. Returns metadata for each URL.
GET
/v1/meReturns your key info: id, plan, monthly quota, label, created timestamp.
FAQ
Submit your email on this page. A free-tier key is issued instantly with a generous monthly quota for personal projects and scripting.