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.
POST /generate endpoint accepts a text prompt describing the music you want and enqueues a generation job. Because music generation is asynchronous, the response does not include the finished song — it returns a job_id and a poll_url you use to check progress. When the job completes, the result contains a song_url, cover art, BPM, duration, and descriptive tags.
Base URL: https://whisul.com/api
Request
Authentication
Every request must include your API key as a Bearer token in theAuthorization header.
Request body
Send a JSON body with the following field:A plain-language description of the song you want to generate. Describe the genre, mood, instruments, tempo, or any other characteristics — for example,
"an upbeat trap beat with 808s and a dark synth melody".Example request
Response
202 Accepted
The request was accepted and the generation job is queued. The response body contains the job identifier and a polling URL.A human-readable confirmation that the task was received.
The unique identifier for this generation job. Store this value — you need it to poll for status and retrieve the result.
The relative path to the job status endpoint for this job. Append this to the base URL to construct the full polling URL:
https://whisul.com/api + poll_url.Error codes
| Status | Meaning | What to do |
|---|---|---|
400 Bad Request | The request body is missing or invalid — for example, the prompt field is absent or empty. | Check your request body and ensure prompt is a non-empty string. |
401 Unauthorized | The Authorization header is missing or the API key is invalid. | Verify your API key and confirm the header is formatted as Bearer <your_api_key>. |
429 Too Many Requests | You have exceeded your rate limit. | Wait before retrying. See the error codes reference for retry guidance. |