Add music downloading and audio processing to your app
Download songs from supported music links or upload audio files. Then restore low-quality sound, master tracks, split stems, convert audio to MIDI, and return the finished files to your users.
Make the first request
Start for free and generate an API key. Keep the key on your server, then download one public music link. The complete examples show how to start the job, poll its status, handle errors, and save the file.
Create a free account to generate an API key for music downloads, audio restoration, mastering, stem splitting, MIDI, and file downloads.
Start for freeBase URL
https://api.neuralanalog.comimport { writeFile } from "node:fs/promises";
const API_URL = "https://api.neuralanalog.com";
const API_KEY = process.env.NEURALANALOG_API_KEY;
async function waitForCompletion(objectType, objectId) {
while (true) {
const response = await fetch(`${API_URL}/status/${objectType}/${objectId}`, {
headers: { "X-API-Key": API_KEY },
});
if (!response.ok) {
throw new Error(`Status check failed with ${response.status}`);
}
const status = await response.json();
if (status.is_failed) {
throw new Error(status.error_message || `${objectType} processing failed`);
}
if (status.is_complete) {
return status;
}
await new Promise((resolve) => setTimeout(resolve, 5000));
}
}
const requestResponse = await fetch(`${API_URL}/from-link`, {
method: "POST",
headers: {
"X-API-Key": API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"url": "https://suno.com/song/example"
}),
});
if (!requestResponse.ok) {
throw new Error(`Import failed with ${requestResponse.status}`);
}
const result = await requestResponse.json();
const jobId = result["audio_id"];
const status = await waitForCompletion("audio", jobId);
const downloadResponse = await fetch(
`${API_URL}/download/audio/${jobId}`,
{ headers: { "X-API-Key": API_KEY }, redirect: "follow" },
);
if (!downloadResponse.ok) {
throw new Error(`Download failed with ${downloadResponse.status}`);
}
await writeFile("original.wav", Buffer.from(await downloadResponse.arrayBuffer()));Choose the input endpoint
Both input methods return an audio ID and enter the same asynchronous processing flow. Check the supported imports before sending a public music URL.
What can you build with the audio API?
Add one feature or combine several. The same API key, audio IDs, status response, and download flow make the integration simple to reuse in a web app, backend, desktop tool, script, or agent. For a machine-readable index of the API documentation, use llms.txt.
Download and restore AI music
Download songs from Suno, Udio, and other supported sites. Restore missing frequencies and compression damage before users save the WAV.
Build a stem splitter or MIDI tool
Split vocals, drums, bass, guitar, or a custom sound. Convert full songs or isolated instruments into editable MIDI.
Run reliable background jobs
Use reusable polling code, explicit failure states, and signed downloads to handle long-running audio work robustly.
How background audio jobs work
Downloads and processing jobs return immediately so your server does not wait on one long request. Save the returned ID, poll with a delay, and download the file after completion.
- 1
Import
Receive an audio ID from a link or file.
- 2
Poll
Stop when is_complete or is_failed becomes true.
- 3
Process
Queue restoration, mastering, stems, or MIDI.
- 4
Download
Follow the signed redirect and save the binary file.
Choose an audio API endpoint
Each endpoint solves one user task and includes reusable server-side JavaScript, Python, and cURL examples.
postSuno, Udio & AI Music Downloader APIDownload audio from public Suno, Udio, Mureka, TopMediaAI, FlowMusic, Treblo, and other supported music links.postAudio Upload APIUpload an audio file from your app before restoring, mastering, splitting, transcribing, or downloading it.getAudio Job Status APICheck whether an audio download, restoration, master, stem split, or MIDI conversion is still running, finished, or failed.getAudio Preset Catalog APIList every restoration, mastering, stem-separation, and transcription preset with its use cases and parameters.postRun Audio Preset APIRun one restoration, mastering, stem-separation, or transcription preset through a single processing endpoint.postAudio Restoration & Upscaling APIRestore low-quality music, speech, or stems by rebuilding missing frequencies and reducing compression or recording artifacts.postAudio Mastering APIMake songs louder, balance their tone, and export mastered WAV files for streaming or release.postAI Stem Separation APISplit a song into vocals, drums, bass, guitar, instrumental, or another sound your app needs.postAudio to MIDI Transcription APIConvert a song or isolated instrument stem into editable MIDI for a DAW, practice tool, or music app.postBatch Audio Export APICreate a tracked ZIP containing existing artifacts or backend-rendered Studio mixes for selected tracks.getAudio & MIDI File Download APIDownload one completed original, restored WAV, master, stem, or MIDI file by its ID.Hear results created by users
These examples show outputs from the same processing system exposed through the API.
Usage and common errors
Processing minutes depend on input duration and the selected operation. Included minutes are used before any extra minutes.
Authentication
Send X-API-Key with every request. Keep the key in an environment variable on a trusted server.
Failure handling
Handle authentication and 422 validation responses immediately. For queued work, stop polling on is_failed and surface the returned error message.
Processing used by 60,000+ music makers
Results people rely on
“I've been loving the app. The audio restoration works amazing on my suno songs”
Jordi
Audio Super Resolution
“Neural Analog makes me feel like a monkey with an AK-47, in the best way possible”
AristA
Acapella extraction
“Amazing tool for audio. Clean, simple, and effective. I would spend hours in RX to get the same results. Give it a try. I can save you hours of production time.”
Dan Campbell ~Riffster
“Love it! Makes everything crisp!”
The Grim Tower