Poll a job
June 3, 2026
Table of contents
Fetch one job record by its jobid. Use this to poll an async generation until status is completed or failed.
https://api.useapi.net/v1/flowmusic/jobs/
jobid
jobidis URL-encoded in the path (it contains:and@).
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
API tokenis required, see Setup useapi.net for details.
Responses
-
{ "jobid": "job:56ef7890-...-bot:flowmusic", "email": "[email protected]", "request": { "prompt": "...", "mode": "async" }, "created_at": "2026-05-31T19:57:23.954Z", "completed_at": "2026-05-31T19:59:43.118Z", "duration_ms": 139164, "status": "completed", "clips": [ { "clip": "user:1234-...-clip:...", "duration_s": 173.03, "image_url": "..." } ] }While still running, only
status: "pending"and the dispatch fields are present (noclips). -
401 Unauthorized — invalid API token.
-
403 — the jobid does not belong to your account.
-
404 — no job with that id (expired or never existed).
Model
The job record — the same shape returned by POST /music and POST /music/edit. operation is present only for edit jobs, clips appears once completed, and error appears when failed.
{
jobid: string // job:<uuid>-user:<id>-<email>-bot:flowmusic
email: string
operation?: 'effect' | 'extend' | 'replace' | 'cover' | 'remix' // edit jobs only
status: 'completed' | 'pending' | 'failed'
created_at: string // ISO 8601 timestamp
completed_at?: string // present when terminal
duration_ms?: number // wall-clock generation time
clips?: Array<{ // present once completed
clip: string // encoded clip asset id — use with /music/download and /music/edit
title: string | null
duration_s: number | null
lyrics: string | null
seed: number | null
lyrics_timing: Array<[number, number]> | null // timing markers, [start, end] seconds (vocal clips)
created_at: string
audio_url: string
wav_url: string
image_url: string | null
}>
error?: { // present when status is 'failed'
code: string
message: string
}
request: object // the original request body, echoed back verbatim
}
Examples
-
JOBID="job:56ef7890-...-bot:flowmusic" curl -H "Authorization: Bearer YOUR_API_TOKEN" \ "https://api.useapi.net/v1/flowmusic/jobs/$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=''))" "$JOBID")" -
import requests, urllib.parse jobid = 'job:56ef7890-...-bot:flowmusic' r = requests.get('https://api.useapi.net/v1/flowmusic/jobs/' + urllib.parse.quote(jobid, safe=''), headers={'Authorization': 'Bearer YOUR_API_TOKEN'}) print(r.status_code, r.json())