Sozdai LogoDocs
Docs/Musique/Texte vers image

Suno Music· Texte vers image

Texte vers image
POSThttps://api.foxwire.ai/v1/media/generations

#Soumettre une tâche

La génération de médias est asynchrone : vous obtenez immédiatement un identifiant de tâche, sans attendre.

bash
curl https://api.foxwire.ai/v1/media/generations \
  -H "Authorization: Bearer $CORRY_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "suno-music", "prompt": "calm ambient piano with soft melodies", "instrumental": true }'
# → { "id": "cmus7q0x9000108l3f5g2abcd", "status": "queued" }

#Paramètres de la requête

ParamètreTypeObligatoirePar défautDescription
versionstringNonV5_5
Suno engine version (the model is a parameter, not a separate endpoint). Default V5_5 (latest).
Options: V5_5, V5, V4_5PLUS, V4_5, V4_5ALL, V4
promptstringOui
Non-custom mode (default): a short idea, lyrics auto-written — max 500 chars. Custom mode (customMode: true): used as the exact lyrics — max 3000 chars on V4, 5000 on every other version.
customModebooleanNonfalse
Advanced control. When true, style+title required (and prompt as lyrics unless instrumental).
instrumentalbooleanNonfalse
Generate instrumental (no vocals).
stylestringNon
Genre/mood (required in custom mode). Max 200 chars on V4, 1000 on every other version. e.g. Synthwave, Jazz, Lo-fi.
titlestringNon
Track title (required in custom mode, max 80 chars).
negativeTagsstringNon
Styles/traits to avoid. e.g. Heavy Metal.
vocalGenderstringNon
Preferred vocal gender (custom mode only; best-effort).
Options: m, f
styleWeightnumberNon
How strongly to follow the style. Range 0–1, up to 2 decimals.
weirdnessConstraintnumberNon
Experimental/creative deviation. Range 0–1, up to 2 decimals.
audioWeightnumberNon
Balance weight for audio features vs. other factors. Range 0–1, up to 2 decimals.
personaIdstringNon
Apply a Persona/Voice to the generation. Custom mode only.
personaModelstringNon
Persona type. Only available on V5 and V5_5.
Options: style_persona, voice_persona
callback_urlstringNon
Optional public http(s) URL. We POST the task result here the moment generation finishes (success or failure).

#Poll for the result

Generation runs asynchronously — the submit call returns immediately with a task id. Poll this endpoint with that id every few seconds until status becomes succeeded (result ready) or a terminal error (failed / timeout).

GEThttps://api.foxwire.ai/v1/media/generations/{id}
bash
# take the id from the submit response, then poll every ~3s
curl https://api.foxwire.ai/v1/media/generations/cmus7q0x9000108l3f5g2abcd \
  -H "Authorization: Bearer $CORRY_KEY"
# repeat until "status" is "succeeded" (or "failed" / "timeout")

#Exemple de réponse

À la soumission

json
{
  "id": "cmus7q0x9000108l3f5g2abcd",
  "status": "queued",
  "type": "music",
  "model": "suno-music"
}

En cas de succès (après interrogation)

json
{
  "id": "cmus7q0x9000108l3f5g2abcd",
  "status": "succeeded",
  "type": "music",
  "model": "suno-music",
  "tracks": [
    {
      "id": "cmus7q9p1000208l3h6j3efgh",
      "title": "Paper Sunburn",
      "tags": "pop, upbeat, bright synth, punchy",
      "lyrics": "[Verse 1]\nCity lights on the dashboard glow\n...",
      "duration": 139.92,
      "streamUrl": "https://api.foxwire.ai/v1/media/stream/cmus7q9p1000208l3h6j3efgh/<token>",
      "audioUrl": "https://cdn.sozdai.ai/music/1782583687607-75e9dd8e8b89.mp3",
      "imageUrl": "https://cdn.sozdai.ai/music/cover/1782583641794-896ad6ebb572.jpeg"
    },
    {
      "id": "cmus7qam2000308l3k7m4ijkl",
      "title": "Paper Sunburn",
      "tags": "pop, upbeat, bright synth, punchy",
      "lyrics": "[Verse 1]\nCity lights on the dashboard glow\n...",
      "duration": 176.88,
      "streamUrl": "https://api.foxwire.ai/v1/media/stream/cmus7qam2000308l3k7m4ijkl/<token>",
      "audioUrl": "https://cdn.sozdai.ai/music/1782583693241-bfbcad7cf9d8.mp3",
      "imageUrl": "https://cdn.sozdai.ai/music/cover/1782583648301-bec46f245a73.jpeg"
    }
  ],
  "cost": "0.1200",
  "currency": "USD"
}

Champs de réponse

ChampTypeDescription
statusstringStatut de la tâche : queued / submitted / succeeded / failed / timeout.
typestringType de média : image / video / music.
modelstringLe modèle que vous avez demandé.
tracksarrayGenerated tracks (usually 2). Each track object has the fields below.
errorstringMessage d'erreur, présent lorsque la tâche a échoué.
coststringMontant facturé pour cette tâche — une chaîne en USD (ex. "0.1200"). Voir le champ currency.
currencystringCurrency of cost — always "USD".

Track object

ChampTypeDescription
idstringTrack id (used in streamUrl).
titlestringTrack title.
tagsstringStyle tags, comma-separated.
lyricsstringLyrics; "[Instrumental]" for instrumental tracks.
durationnumberDuration in seconds.
streamUrlstringPlay immediately while generating; redirects to the CDN file once stored.
audioUrlstringFinal mp3 on our CDN (present once ready).
imageUrlstringCover image on our CDN.

Listen while it generates

Tracks (with streamUrl, cover and lyrics) appear ~20–30s in, before the full song is ready — poll the task and start playing streamUrl right away. audioUrl (the final mp3 on our CDN) fills in when generation completes.