Submit one public Instagram Reel
Pass the complete public Reel URL in the normal url parameter. The documented download endpoint creates one job for that Reel.
Send a public Instagram Reel URL and get it back as an MP4 file. One request creates one job; private, removed, or restricted posts can fail.
Use the shared API host unless the dashboard shows an account-specific hostname.
curl --get "https://p.savenow.to/ajax/download.php" \
--data-urlencode "url=https://www.instagram.com/reel/DaBiXu4hlK2/" \
--data "format=720" \
--data "apikey=YOUR_API_KEY"
Pass the complete public Reel URL in the normal url parameter. The documented download endpoint creates one job for that Reel.
Use format=720 to get the Reel as an MP4 with H.264 video and AAC audio. Instagram Reels are supported as video output.
Keep the returned id or progress_url with the source URL. Poll until progress reaches 1000, then require success=1 or true and a non-empty download_url.
Private, removed, login-required, age-restricted, or region-restricted Reels can fail. A public Reel that works today does not establish access to another account’s posts.
Validate the submitted URL and create a separate download job for each Reel.
Create account API jobs from a server and read VDA_API_KEY from protected configuration.
Show the terminal error and ask the user to check that the Reel is public and available instead of retrying indefinitely.
Public Reels download as MP4 video.
Files use H.264 video and AAC audio, which play almost everywhere.
Private or login-restricted posts are not available.
url
Required
Use the complete public Instagram Reel URL.
format=720
Video output
Returns the Reel as an MP4 file.
apikey
Required for account API jobs
Authenticate account download requests with a server-side dashboard key.
progress_url
Response
Poll the returned job until it finishes or reports a terminal error.
download_url
Ready file
Fetch only the non-empty URL from the successful terminal response for this job.
curl --get "https://p.savenow.to/ajax/download.php" --data-urlencode "url=https://www.instagram.com/reel/DaBiXu4hlK2/" --data "format=720" --data "apikey=YOUR_API_KEY"
const apiKey = process.env.VDA_API_KEY;
if (!apiKey) throw new Error('Set VDA_API_KEY on the server.');
const params = new URLSearchParams({
url: 'https://www.instagram.com/reel/DaBiXu4hlK2/',
format: '720',
apikey: apiKey,
});
const response = await fetch('https://p.savenow.to/ajax/download.php?' + params);
if (!response.ok) throw new Error('Download request failed: ' + response.status);
const job = await response.json();
if (!job.success || !job.id) throw new Error(job.message || 'The Reel job was not accepted.');
console.log({ id: job.id, progressUrl: job.progress_url });
import os
import requests
response = requests.get(
"https://p.savenow.to/ajax/download.php",
params={
"url": "https://www.instagram.com/reel/DaBiXu4hlK2/",
"format": "720",
"apikey": os.environ["VDA_API_KEY"],
},
timeout=30,
)
response.raise_for_status()
job = response.json()
if not job.get("success") or not job.get("id"):
raise RuntimeError(job.get("message") or "The Reel job was not accepted.")
print({"id": job["id"], "progress_url": job.get("progress_url")})
Use a dashboard key for account API jobs and keep it server-side.
Get an API keySee the documented download parameters, progress response, and terminal success checks.
Read API docsThe same download endpoint also handles public TikTok videos as MP4 or MP3.
Read the TikTok guideDownload YAML or JSON specs and inspect downloader, progress, and subtitle endpoints.
Read docsKeep button, card, widget, and REST paths reachable for existing users and migrations.
View resourcesYes. Send the public Reel URL in the url parameter with format=720 to get an MP4. Private or restricted Reels are not available.
Instagram is supported for MP4 video output. If you need audio only, extract it from the MP4 in your own pipeline.
No. Only public Reels are supported. Private, login-required, removed, or otherwise restricted posts fail.
No. The documented metadata-only function accepts YouTube URLs. Use the download response fields for the Reel job itself.