Browse API endpoints
Neural Analog API

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.

Get your API key

Create a free account to generate an API key for music downloads, audio restoration, mastering, stem splitting, MIDI, and file downloads.

Start for free

Base URL

API base URL
https://api.neuralanalog.com
JavaScript (Node.js)
import { 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. 1

    Import

    Receive an audio ID from a link or file.

  2. 2

    Poll

    Stop when is_complete or is_failed becomes true.

  3. 3

    Process

    Queue restoration, mastering, stems, or MIDI.

  4. 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.

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!
TG

The Grim Tower

Start with the AI music link importer