Download raw mp3 audio
June 3, 2026
Table of contents
Download a generated clip as raw mp3 audio — the response body is the audio bytes.
The full-quality m4a and wav are public URLs already on every clip, so they aren’t re-served here: read audio_url / wav_url from GET /music (or the job record) and download those directly.
https://api.useapi.net/v1/flowmusic/music/download
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
API tokenis required, see Setup useapi.net for details.
Query Parameters
idis required, an encoded clip asset ID (user:<id>-<email>-clip:<uuid>) or a completed jobid (resolves to the job’s first clip).formatis optional,mp3(the default and only value).
Stems are separate clips. When you separate a song’s stems in Flow Music it creates one clip per track — they show up in GET /music as
"<title> - drums","- bass","- vocals","- other". Download each one here with its ownid(or grab itsaudio_url/wav_url).
Responses
-
200 OK — the raw
audio/mpegbytes, with aContent-Dispositionfilename (<clip>.mp3). -
400 —
idis not a valid clip ID or jobid, orformatis unsupported.{ "error": "Parameter id not a valid clip ID or jobid", "code": 400 } -
401 Unauthorized — invalid API token.
-
409 — a jobid was given but the job is not completed yet.
-
596 Account Error
The account that owns the requested clip is in an error state and can’t be used — re-add it via POST /accounts. The
errorfield returns whatever reason was recorded for the account.{ "error": "Account [email protected] in error state: refresh token rejected", "code": 596 }
Model
This endpoint streams raw audio/mpeg bytes (not JSON), with a Content-Disposition filename. Only the error responses (400 / 409) return JSON { error, code }.
Examples
-
# Any clip — including a separated stem clip — downloads as mp3 by its id curl -H "Authorization: Bearer YOUR_API_TOKEN" \ "https://api.useapi.net/v1/flowmusic/music/download?id=user:[email protected]:12ab34cd-...&format=mp3" \ --output song.mp3 -
import requests, urllib.parse clip = 'user:[email protected]:12ab34cd-...' url = 'https://api.useapi.net/v1/flowmusic/music/download?id=' + urllib.parse.quote(clip) + '&format=mp3' r = requests.get(url, headers={'Authorization': 'Bearer YOUR_API_TOKEN'}) open('song.mp3', 'wb').write(r.content)
Try It
This endpoint returns raw audio bytes (not JSON), so the form below fetches the file with your token and plays it inline.