Every music generation job moves through a defined set of status values. Understanding the lifecycle lets you write polling logic that reacts correctly to each state and extracts the right fields when a job finishes. This page describes each status, specifies which fields are available at each stage, and provides a complete reference for theDocumentation Index
Fetch the complete documentation index at: https://docs.whisul.com/llms.txt
Use this file to discover all available pages before exploring further.
result object returned when generation completes.
Status lifecycle
- running
- completed
- failed
The job has been accepted and generation is in progress. The Whisul backend is actively processing your prompt.What to expect:
statusis"running"resultisnullerrorisnullfinished_atis not presentstarted_atis populated
GET /jobs/{job_id} at a reasonable interval until status changes. See the polling guide for recommended intervals.Timestamp fields
Both endpoints return timing information for the job.| Field | Type | When present | Description |
|---|---|---|---|
started_at | string | Always | The time the job began processing. Format: YYYY-MM-DD HH:MM:SS (UTC). |
finished_at | string | completed or failed only | The time the job finished. Not present while the job is running. |
Result object fields
Theresult object is only present when status is "completed". For all other statuses, result is null.
| Field | Type | Description |
|---|---|---|
title | string | The AI-generated title for the song. |
bpm | number | The tempo of the generated track in beats per minute. |
duration | string | The length of the song in m:ss format — for example, "2:47". |
song_url | string | A URL to the generated audio file. |
image_url | string | A URL to the AI-generated cover artwork for the song. |
tags | string | A comma-separated string of descriptive tags characterizing the song’s style, genre, and instrumentation — for example, "trap, dark, 808s, synth, bass". |
result fields are only guaranteed to be populated when status is "completed". Do not attempt to read result fields before confirming the status value.