Skip to content
API documentation

Derive a clip

POST/api/v1/suno/clips/{clipId}/derive

Authentication · x-api-key

Extend or cover an existing Suno clip. Extend includes automatic Concat finalization in the same task and charge; use the resource with role=final as the complete song. There is no public Concat endpoint.

Request

clipIdpath · Required
string

Idempotency-Keyheader · Optional
string

Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.

Maximum characters: 255.
Preferheader · Optional
"respond-async"

Set to respond-async to skip the acknowledgement wait and return the generation receipt immediately.

Unknown fields are not accepted.

  • Request · actionRequired

    "extend" | "cover"

    extend continues an existing clip and automatically concatenates the selected continuation into one final song; cover reinterprets an existing clip.

  • Request · configOptional

    object

    Standard task configuration: priority, tags, metadata, and webhookUrl.

    4 fields
    • Request · config.metadataOptional

      object

      Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.

    • Request · config.priorityOptional

      number

      Task priority 1-10 (higher = sooner). Default 5.

      Minimum: 1. Maximum: 10. Default: 5.

    • Request · config.tagsOptional

      array<string>

      Free-form labels for filtering. Up to 20, 100 chars each.

      Maximum items: 20.

      1 field
      • Request · config.tags[]Each item

        string

        Maximum characters: 100.

    • Request · config.webhookUrlOptional

      string

      URL to receive task.* lifecycle events via the central webhook service.

      Format: uri.

  • Request · continueAtOptional

    number

    Timestamp in seconds to continue from. Values beyond the source duration are forwarded unchanged and Suno continues from the clip end.

    Minimum: 0.

  • Request · continuedAlignedPromptOptional

    string

    Optional aligned continuation prompt for action=extend.

    Maximum characters: 5000.

  • Request · controlSlidersOptional

    object

    Optional bounded generation-control weights.

    3 fields
  • Request · isInstrumentalOptional

    boolean

    Optional instrumental intent for the derived result.

  • Request · isRemixOptional

    boolean

    Optional remix intent for the derived result.

  • Request · modelOptional

    "chirp-hawk" | "chirp-hawk-wild" | "chirp-goose" | "chirp-auk-turbo" | "chirp-v4" | "chirp-auk" | "chirp-bluejay" | "chirp-crow" | "chirp-fenix"

    Current models: chirp-hawk, chirp-hawk-wild, chirp-goose. Legacy generation names and underscore spellings remain accepted: auk-turbo executes on goose; v4, auk, bluejay, crow and fenix execute on hawk. Requested model pricing and the legacy feature envelope are preserved. Omitted model retains the chirp-fenix pricing identity and executes on chirp-hawk.

    Default: "chirp-fenix".

  • Request · negativeTagsOptional

    string

    Negative music-style tags or exclusions.

    Maximum characters: 1000.

  • Request · promptOptional

    string

    Primary creative or operation instruction.

    Maximum characters: 5000.

  • Request · tagsOptional

    string

    Style tags or caller labels, as defined by this schema.

    Maximum characters: 1000.

  • Request · titleOptional

    string

    Optional customer-facing title.

    Maximum characters: 100.

Responses

200 OK

application/json

Unknown fields are not accepted.

400 Bad Request

application/json

  • Response 400 · errorRequired

    object
    3 fields
    • Response 400 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 400 · error.messageRequired

      string

      Human readable error message

    • Response 400 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 400 · successRequired

    false

    Always false for error responses

401 Unauthorized

application/json

  • Response 401 · errorRequired

    object
    3 fields
    • Response 401 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 401 · error.messageRequired

      string

      Human readable error message

    • Response 401 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 401 · successRequired

    false

    Always false for error responses

402 Payment Required

application/json

  • Response 402 · errorRequired

    object
    3 fields
    • Response 402 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 402 · error.messageRequired

      string

      Human readable error message

    • Response 402 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 402 · successRequired

    false

    Always false for error responses

403 Forbidden

Forbidden: the API key lacks the required scope or its IP policy rejects this request. Forbidden: API-key scope/IP restrictions or billing hold. A positive balance does not bypass payment review. Check GET /api/v1/account/credits billingStatus before further paid requests.

application/json

  • Response 403 · errorRequired

    object
    3 fields
    • Response 403 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 403 · error.messageRequired

      string

      Human readable error message

    • Response 403 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 403 · successRequired

    false

    Always false for error responses

422 Unprocessable Entity

application/json

  • Response 422 · errorRequired

    object
    3 fields
    • Response 422 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 422 · error.messageRequired

      string

      Human readable error message

    • Response 422 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 422 · successRequired

    false

    Always false for error responses

429 Too Many Requests

Request allowance or task admission capacity exceeded. Follow Retry-After when present; otherwise wait for active tasks and use bounded backoff. Limits do not guarantee throughput. For SSE, this is the HTTP connection response, not an event.

application/json

  • Response 429 · errorRequired

    object
    3 fields
    • Response 429 · error.codeRequired

      string

      RATE_LIMITED for request and task admission rejections.

    • Response 429 · error.messageRequired

      string
    • Response 429 · error.detailsOptional

      object

      Optional and scope-dependent. Request limits supply scope/policy/type/limit/current/retryAfterSec. Task admission supplies inFlight/limit/tier, plus scope=apiKey for a key cap. IP rejection can omit details. In-flight rejection does not promise Retry-After.

      8 fields
  • Response 429 · successRequired

    false

    Default: false.

500 Internal Server Error

application/json

  • Response 500 · errorRequired

    object
    3 fields
    • Response 500 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 500 · error.messageRequired

      string

      Human readable error message

    • Response 500 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 500 · successRequired

    false

    Always false for error responses

503 Service Unavailable

application/json

  • Response 503 · errorRequired

    object
    3 fields
    • Response 503 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 503 · error.messageRequired

      string

      Human readable error message

    • Response 503 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 503 · successRequired

    false

    Always false for error responses

Interactive API Explorer → · OpenAPI JSON