Music and Lyrics
This page covers the platform's enabled SunoAPI-compatible endpoints. Lyrics and music are separate actions, and your account needs access to the corresponding models. Use your CertaEdge API Key; you do not need to give the client a key from another platform.
Set up authentication as described in the overview. These endpoints use /suno/... paths. Do not append /suno after /v1.
Lyrics: start with a minimal task
Create lyrics.json:
{
"prompt": "Write Chinese lyrics about walking through a city after the rain, including a verse and chorus."
}Submit:
curl -sS -X POST https://certaedge.com/suno/submit/lyrics \
-H "Authorization: Bearer $CERTAEDGE_API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @lyrics.jsonA successful native submission has this structure:
{
"code": "success",
"message": "",
"data": "task_EXAMPLE"
}Check code and save the actual data value. Here, data is the task ID, not the lyrics.
Music: provide a description and version
With music access enabled, create music.json:
{
"gpt_description_prompt": "Gentle piano and strings for a city scene after the rain, with no vocals.",
"make_instrumental": true,
"mv": "YOUR_ENABLED_MUSIC_VERSION"
}mv is an enabled music version value, not the suno_music name from the catalog. Use the version specified in the model's instructions. Do not send YOUR_ENABLED_MUSIC_VERSION literally; if no version is provided, confirm it with the platform first. make_instrumental: true requests instrumental music, subject to the selected version's capabilities.
curl -sS -X POST https://certaedge.com/suno/submit/music \
-H "Authorization: Bearer $CERTAEDGE_API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @music.jsonThe native submission path determines whether the action generates lyrics or music. You do not need to guess an additional model parameter to switch actions.
Query and read the results
Set the task ID in your current terminal:
export CERTAEDGE_TASK_ID='task_EXAMPLE'
curl -sS "https://certaedge.com/suno/fetch/$CERTAEDGE_TASK_ID" \
-H "Authorization: Bearer $CERTAEDGE_API_KEY"The outer code: success means the query succeeded. Also check data.status: only SUCCESS means generation succeeded; FAILURE means it failed. For other in-progress states, wait as described in the polling guide.
On success, inspect the task data. For lyrics, read the text it contains. Music may return multiple items and cover images; do not read only the first array item. To download audio or cover images, use the generic task artifacts API to list the actual artifacts and select the required items.
Flexible workflows
- Use a Dify workflow to prepare a music description before submitting the task.
- Use n8n to wait for the results and save audio and cover images.
- When using background Responses as a common interface, keep its
resp_...identifier. Do not mix it up with the native API'sdatafield.