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.