Get API Key Get API
Docs

Section replacement

- Replace a section of a song (infill).

  • Reference the source track: specified by task_id + audio_index, no need to record any extra id
  • Async task: submitting returns a task_id; poll GET /v1/music/tasks/:task_id for the result
Info

Source Audio Reference: No additional IDs are needed for tracks based on existing songs. Just pass task_id (the task ID from the previous run of this task) + audio_index (which result track in the data.result.music[] list, 1-based, default is 1).

Request example

curl -X POST https://api.openveer.com/v1/music/generations/replaceMusic \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  --data '{
    "model": "suno",
    "task_id": "task_01ABC",
    "audio_index": 1,
    "start_s": 30,
    "end_s": 45,
    "infill_lyrics": "A new verse of lyrics"
  }'

Response example

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K"
    }
  ]
}

Authorizations

Authorization string

All endpoints require authentication using a Bearer Token

Get an API Key:

Visit the API Key management page to get your API Key

Add the following to the request headers when using it:

Authorization: Bearer YOUR_API_KEY

Body

model string

Audio model. Currently pass suno (defaults to suno if omitted).

task_id string

Our task_id of the job that produced the source track. If missing or the source cannot be resolved, a 400 is returned at submission time.

audio_index integer

Selects a track from the source task's data.result.music[] array (1-based; default 1).

infill_lyrics string

Lyrics for the replacement section.

start_s number

Replacement start point (seconds). If missing, returns 400 immediately.

end_s number

end time (in seconds). Must satisfy 0 ≤ start_s < end_s; the source duration is known and cannot exceed it.

version string

Public version: v6 / v6-wild / v6-mini. Defaults to v6; omit this field when using custom_model_id.

custom_model_id string

The full UUID returned by the model-creation task. Mutually exclusive with version.

prompt string

Context lyrics.

title string

Title.

tags string

Style tags.

negative_tags string

Style tags to exclude.

variety string

Style variation: off / normal / high / extra / max. Optional.

max_mode boolean

Enables Max mode and is billed at twice the standard price.

audio_format string

Output audio format: mp3 / m4a / wav. This endpoint does not support a target-duration field.

Note

prompt is the original lyrics context, infill_lyrics is the new lyrics after replacement. Do not send custom, instrumental, auto_lyrics or the old edit session fields.

Note

Get Result: This is an asynchronous task. After submission, you will receive task_id and then poll GET /v1/music/tasks/{task_id} every 3–5 seconds until status becomes completed or failed (music generation usually takes 30–120 seconds; while generation is in progress, status may be pending or processing, and progress is an integer from 0 to 100 and is not guaranteed to change at fixed intervals). Once completed, read the replaced track's audio_url from data.result.music[]. In case of failure, data.error.message provides the reason and the deducted amount will be automatically refunded.

Response

code integer

Response status code

data array
Returned data array
status string

Task status

  * submitted - Submitted
task_id string

Unique task identifier (used to poll GET /v1/music/tasks/{task_id} for the result)

This documentation is built and hosted on Mintlify, a developer documentation platform.