Button API
Embed a direct downloader button while keeping existing /api/button/ behavior available.
Use the same downloader backend through REST calls, embedded cards, widgets, and button integrations.
Replace VIDEO_ID and YOUR_API_KEY, run the request, then pass the returned id to /ajax/progress.php. At progress 1000, use download_url only when success is 1 or true; otherwise stop and show the error.
curl --get "https://p.savenow.to/ajax/download.php" \
--data-urlencode "url=https://www.youtube.com/watch?v=VIDEO_ID" \
--data "format=mp3" \
--data "apikey=YOUR_API_KEY"Embed a direct downloader button while keeping existing /api/button/ behavior available.
Use card and widget variants for richer downloader pages.
Move from loader.to embed URLs to the VDA public documentation and API key flow at /loader-to-button-api.
Drop a hosted downloader interface into a page when speed matters more than full UI control.
Use a larger framed downloader surface with simple query parameters.
Add a downloader button next to search results, video pages, or your own content.
Start from React or Laravel examples for Button, Card, and Widget API launches.
Use REST when you need full control over polling, states, billing behavior, and error handling.
Download the archive, add URL and ad parameters, then review branding and analytics before production.
Start with a React or Laravel template for Button, Card, or Widget API integrations.
Use p.savenow.to for public API examples unless your dashboard shows a custom account hostname.
Open the dashboard, create a top-up payment, or redeem a coupon. Balance changes are shown in the account history.
Yes. The .php compatibility endpoints remain active for existing integrations and embedded clients.