Skip to main content
POST
  1. After submission, a task_id will be returned. If you provided a callback_url, when the task status becomes finished or failed, a POST request will be sent to the callback_url.
  2. Regardless of whether callback_url is provided, you can retrieve the response result through the unified Query Music Detail endpoint.
Provide exactly one source: either a task_id plus audio_id, or an uploaded upload_url plus mv. Uploaded audio can be edited directly. The replacement interval must be at least 10 seconds and cannot exceed 50% of the source duration.

Usage Guide

  • This endpoint replaces a specific time range of an existing music track with new content
  • Useful for editing verses, choruses, or any specific part of a generated track
  • The replacement content is generated based on your prompt and style tags

Parameter Details

  • task_id and audio_id: Required together when editing a previously generated track; omit both when using upload_url
  • upload_url and mv: Required together when editing uploaded audio; mutually exclusive with task_id and audio_id
  • tags (required): Style tags for the replacement section
  • title (required): Title for the resulting track
  • infill_start_s (required): Start time in seconds (minimum 0, up to 2 decimals)
  • infill_end_s (required): End time in seconds (must be greater than start time)
  • full_lyrics (required): Complete lyrics for the entire track after modification

Developer Notes

  • Ensure infill_end_s is always greater than infill_start_s
  • The time range should be within the duration of the original track
  • Use full_lyrics when you want to maintain lyrical consistency across the entire track

Optional parameters

  • negative_tags (string): Styles to exclude from the replacement section
  • prompt (string): Description of the replacement content (lyrics or musical description)
  • callback_url (string): Webhook URL for receiving completion notifications

Authorizations

Authorization
string
header
required

All API endpoints require Bearer Token authentication.

Create an API key: sign in to PoYo, open Dashboard → API Key at poyo.ai/dashboard/api-key, and click to create a key.

Add it to the request header:

Body

application/json
model
enum<string>
required

API model identifier.

Must be replace-section for this endpoint.

Available options:
replace-section
Example:

"replace-section"

input
object
required

Input parameters for section replacement

callback_url
string<uri>

Webhook callback URL for result notifications

Example:

"https://your-domain.com/callback"

Response

200 - application/json

Task submitted successfully

code
enum<integer>
required

Business status code. 200 means success; any other value means the request failed. Always check this field: some validation errors return HTTP 200 with code: 400 in the body.

  • 200: Success
  • 400: Invalid request parameters
  • 401: Missing or invalid API key
  • 402: Insufficient credits
  • 403: Permission denied
  • 404: Resource not found
  • 408: Request timeout
  • 429: Rate limit exceeded
  • 500: Internal server error
  • 502: Upstream service error
  • 503: Service unavailable

See Error Codes for details.

Available options:
200,
400,
401,
402,
403,
404,
408,
429,
500,
502,
503
Example:

200

data
object
required