Zum Inhalt springen
API-Referenz
API-Referenz

Suno Musik verlängern

Verwende den Extend Music-Endpunkt, um einen asynchronen Task zu erstellen.

01

Übersicht

Verwende den Extend Music-Endpunkt mit einem unterstützten Modell. Verwende die zurückgegebene Task-ID, um den Zustand abzurufen, oder gib callback_url für die unten dokumentierten Zustellungen an.

Schnellstart

  1. Erstellen Sie einen API-Schlüssel und setzen Sie ihn als RUNAPI_API_KEY.
  2. Wählen Sie ein unterstütztes Modell und senden Sie eine POST-Anfrage, deren Body dem Schema dieses Modells entspricht.
  3. Speichern Sie die zurückgegebene Task-ID und fragen Sie den Status ab, bis ein Endzustand erreicht ist, oder verarbeiten Sie die unten dokumentierten Callbacks.

Endpunkt

POST /api/v1/suno/extend_music
Basis-URL
https://runapi.ai
API-Version
v1
Authentifizierung
Authorization: Bearer YOUR_API_TOKEN
02

Unterstützte Modelle

Öffnen Sie eine Modellseite für aktuelle Preise, Ratenlimits und Details zur kommerziellen Nutzung.

03

Anfrage-Schema

JSON-Body

Felder und zulässige Werte hängen vom ausgewählten Modell ab. Wenn angegeben, empfängt callback_url die unten dokumentierten Task-Zustellungen.

suno-v420 Felder
audio_idstring
Optional

Quell-Audio-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_urlstring
Optional

Quell-Audio-URL zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_weightnumber
Optional

Audiogewichtung (0–1).

Bereich: 0 - 1
callback_urlstring
Optional

Webhook-URL für asynchrone Benachrichtigungen.

continue_atnumber
Optional

Sekunden in der Quelle, ab denen fortgesetzt werden soll. Im benutzerdefinierten Parametermodus erforderlich.

instrumentalboolean
Optional

Wenn „true", ohne Gesang generieren.

lyricsstring
Optional

Exakter Liedtext. Nur erlaubt, wenn hochgeladenes Audio im benutzerdefinierten Parametermodus erweitert wird.

Grenzwert: 5000
modelstring
Erforderlich

Modell-Slug.

negative_tagsstring
Optional

Zu vermeidende Stile.

parameter_modestring
Erforderlich

Die Parameter des Quell-Tracks übernehmen (source) oder eigene angeben (custom).

Zulässige Werte: source, custom
persona_idstring
Optional

Persona-ID.

persona_typestring
Optional

Persona-Typ.

Zulässige Werte: style, voice
promptstring
Optional

Erweiterungskurzfassung. Kann nicht mit lyrics kombiniert werden.

Grenzwert: 5000
stylestring
Optional

Stil-Preset. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 1000
style_weightnumber
Optional

Gewichtung der Stiltreue (0–1).

Bereich: 0 - 1
task_idstring
Optional

Quell-Task-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

titlestring
Optional

Songtitel. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 80
upload_urlstring
Optional

URL der hochgeladenen Quellaudio zum Verlängern. Geben Sie eines von task_id, audio_id, audio_url oder upload_url an.

vocal_genderstring
Optional

Vokales Geschlecht.

Zulässige Werte: male, female
weirdness_constraintnumber
Optional

Einschränkung für Seltsamkeit (0–1).

Bereich: 0 - 1
suno-v4.520 Felder
audio_idstring
Optional

Quell-Audio-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_urlstring
Optional

Quell-Audio-URL zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_weightnumber
Optional

Audiogewichtung (0–1).

Bereich: 0 - 1
callback_urlstring
Optional

Webhook-URL für asynchrone Benachrichtigungen.

continue_atnumber
Optional

Sekunden in der Quelle, ab denen fortgesetzt werden soll. Im benutzerdefinierten Parametermodus erforderlich.

instrumentalboolean
Optional

Wenn „true", ohne Gesang generieren.

lyricsstring
Optional

Exakter Liedtext. Nur erlaubt, wenn hochgeladenes Audio im benutzerdefinierten Parametermodus erweitert wird.

Grenzwert: 5000
modelstring
Erforderlich

Modell-Slug.

negative_tagsstring
Optional

Zu vermeidende Stile.

parameter_modestring
Erforderlich

Die Parameter des Quell-Tracks übernehmen (source) oder eigene angeben (custom).

Zulässige Werte: source, custom
persona_idstring
Optional

Persona-ID.

persona_typestring
Optional

Persona-Typ.

Zulässige Werte: style, voice
promptstring
Optional

Erweiterungskurzfassung. Kann nicht mit lyrics kombiniert werden.

Grenzwert: 5000
stylestring
Optional

Stil-Preset. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 1000
style_weightnumber
Optional

Gewichtung der Stiltreue (0–1).

Bereich: 0 - 1
task_idstring
Optional

Quell-Task-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

titlestring
Optional

Songtitel. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 80
upload_urlstring
Optional

URL der hochgeladenen Quellaudio zum Verlängern. Geben Sie eines von task_id, audio_id, audio_url oder upload_url an.

vocal_genderstring
Optional

Vokales Geschlecht.

Zulässige Werte: male, female
weirdness_constraintnumber
Optional

Einschränkung für Seltsamkeit (0–1).

Bereich: 0 - 1
suno-v4.5-all20 Felder
audio_idstring
Optional

Quell-Audio-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_urlstring
Optional

Quell-Audio-URL zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_weightnumber
Optional

Audiogewichtung (0–1).

Bereich: 0 - 1
callback_urlstring
Optional

Webhook-URL für asynchrone Benachrichtigungen.

continue_atnumber
Optional

Sekunden in der Quelle, ab denen fortgesetzt werden soll. Im benutzerdefinierten Parametermodus erforderlich.

instrumentalboolean
Optional

Wenn „true", ohne Gesang generieren.

lyricsstring
Optional

Exakter Liedtext. Nur erlaubt, wenn hochgeladenes Audio im benutzerdefinierten Parametermodus erweitert wird.

Grenzwert: 5000
modelstring
Erforderlich

Modell-Slug.

negative_tagsstring
Optional

Zu vermeidende Stile.

parameter_modestring
Erforderlich

Die Parameter des Quell-Tracks übernehmen (source) oder eigene angeben (custom).

Zulässige Werte: source, custom
persona_idstring
Optional

Persona-ID.

persona_typestring
Optional

Persona-Typ.

Zulässige Werte: style, voice
promptstring
Optional

Erweiterungskurzfassung. Kann nicht mit lyrics kombiniert werden.

Grenzwert: 5000
stylestring
Optional

Stil-Preset. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 1000
style_weightnumber
Optional

Gewichtung der Stiltreue (0–1).

Bereich: 0 - 1
task_idstring
Optional

Quell-Task-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

titlestring
Optional

Songtitel. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 80
upload_urlstring
Optional

URL der hochgeladenen Quellaudio zum Verlängern. Geben Sie eines von task_id, audio_id, audio_url oder upload_url an.

vocal_genderstring
Optional

Vokales Geschlecht.

Zulässige Werte: male, female
weirdness_constraintnumber
Optional

Einschränkung für Seltsamkeit (0–1).

Bereich: 0 - 1
suno-v4.5-plus20 Felder
audio_idstring
Optional

Quell-Audio-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_urlstring
Optional

Quell-Audio-URL zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_weightnumber
Optional

Audiogewichtung (0–1).

Bereich: 0 - 1
callback_urlstring
Optional

Webhook-URL für asynchrone Benachrichtigungen.

continue_atnumber
Optional

Sekunden in der Quelle, ab denen fortgesetzt werden soll. Im benutzerdefinierten Parametermodus erforderlich.

instrumentalboolean
Optional

Wenn „true", ohne Gesang generieren.

lyricsstring
Optional

Exakter Liedtext. Nur erlaubt, wenn hochgeladenes Audio im benutzerdefinierten Parametermodus erweitert wird.

Grenzwert: 5000
modelstring
Erforderlich

Modell-Slug.

negative_tagsstring
Optional

Zu vermeidende Stile.

parameter_modestring
Erforderlich

Die Parameter des Quell-Tracks übernehmen (source) oder eigene angeben (custom).

Zulässige Werte: source, custom
persona_idstring
Optional

Persona-ID.

persona_typestring
Optional

Persona-Typ.

Zulässige Werte: style, voice
promptstring
Optional

Erweiterungskurzfassung. Kann nicht mit lyrics kombiniert werden.

Grenzwert: 5000
stylestring
Optional

Stil-Preset. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 1000
style_weightnumber
Optional

Gewichtung der Stiltreue (0–1).

Bereich: 0 - 1
task_idstring
Optional

Quell-Task-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

titlestring
Optional

Songtitel. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 80
upload_urlstring
Optional

URL der hochgeladenen Quellaudio zum Verlängern. Geben Sie eines von task_id, audio_id, audio_url oder upload_url an.

vocal_genderstring
Optional

Vokales Geschlecht.

Zulässige Werte: male, female
weirdness_constraintnumber
Optional

Einschränkung für Seltsamkeit (0–1).

Bereich: 0 - 1
suno-v520 Felder
audio_idstring
Optional

Quell-Audio-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_urlstring
Optional

Quell-Audio-URL zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_weightnumber
Optional

Audiogewichtung (0–1).

Bereich: 0 - 1
callback_urlstring
Optional

Webhook-URL für asynchrone Benachrichtigungen.

continue_atnumber
Optional

Sekunden in der Quelle, ab denen fortgesetzt werden soll. Im benutzerdefinierten Parametermodus erforderlich.

instrumentalboolean
Optional

Wenn „true", ohne Gesang generieren.

lyricsstring
Optional

Exakter Liedtext. Nur erlaubt, wenn hochgeladenes Audio im benutzerdefinierten Parametermodus erweitert wird.

Grenzwert: 5000
modelstring
Erforderlich

Modell-Slug.

negative_tagsstring
Optional

Zu vermeidende Stile.

parameter_modestring
Erforderlich

Die Parameter des Quell-Tracks übernehmen (source) oder eigene angeben (custom).

Zulässige Werte: source, custom
persona_idstring
Optional

Persona-ID.

persona_typestring
Optional

Persona-Typ.

Zulässige Werte: style, voice
promptstring
Optional

Erweiterungskurzfassung. Kann nicht mit lyrics kombiniert werden.

Grenzwert: 5000
stylestring
Optional

Stil-Preset. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 1000
style_weightnumber
Optional

Gewichtung der Stiltreue (0–1).

Bereich: 0 - 1
task_idstring
Optional

Quell-Task-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

titlestring
Optional

Songtitel. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 80
upload_urlstring
Optional

URL der hochgeladenen Quellaudio zum Verlängern. Geben Sie eines von task_id, audio_id, audio_url oder upload_url an.

vocal_genderstring
Optional

Vokales Geschlecht.

Zulässige Werte: male, female
weirdness_constraintnumber
Optional

Einschränkung für Seltsamkeit (0–1).

Bereich: 0 - 1
suno-v5.520 Felder
audio_idstring
Optional

Quell-Audio-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_urlstring
Optional

Quell-Audio-URL zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

audio_weightnumber
Optional

Audiogewichtung (0–1).

Bereich: 0 - 1
callback_urlstring
Optional

Webhook-URL für asynchrone Benachrichtigungen.

continue_atnumber
Optional

Sekunden in der Quelle, ab denen fortgesetzt werden soll. Im benutzerdefinierten Parametermodus erforderlich.

instrumentalboolean
Optional

Wenn „true", ohne Gesang generieren.

lyricsstring
Optional

Exakter Liedtext. Nur erlaubt, wenn hochgeladenes Audio im benutzerdefinierten Parametermodus erweitert wird.

Grenzwert: 5000
modelstring
Erforderlich

Modell-Slug.

negative_tagsstring
Optional

Zu vermeidende Stile.

parameter_modestring
Erforderlich

Die Parameter des Quell-Tracks übernehmen (source) oder eigene angeben (custom).

Zulässige Werte: source, custom
persona_idstring
Optional

Persona-ID.

persona_typestring
Optional

Persona-Typ.

Zulässige Werte: style, voice
promptstring
Optional

Erweiterungskurzfassung. Kann nicht mit lyrics kombiniert werden.

Grenzwert: 5000
stylestring
Optional

Stil-Preset. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 1000
style_weightnumber
Optional

Gewichtung der Stiltreue (0–1).

Bereich: 0 - 1
task_idstring
Optional

Quell-Task-ID zum Verlängern. Geben Sie einen der folgenden Werte an: task_id, audio_id, audio_url oder upload_url.

titlestring
Optional

Songtitel. Im benutzerdefinierten Parametermodus erforderlich.

Grenzwert: 80
upload_urlstring
Optional

URL der hochgeladenen Quellaudio zum Verlängern. Geben Sie eines von task_id, audio_id, audio_url oder upload_url an.

vocal_genderstring
Optional

Vokales Geschlecht.

Zulässige Werte: male, female
weirdness_constraintnumber
Optional

Einschränkung für Seltsamkeit (0–1).

Bereich: 0 - 1
04

Annahme erstellen

HTTP 202

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    },
    "task_replayed": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "status",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "processing"
}
05

Abfrage wird verarbeitet

HTTP 200

GET /api/v1/suno/extend_music/:id

Antwort-Schema
JSON
{
  "properties": {
    "audios": {
      "items": {
        "properties": {
          "audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "duration": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "image_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "lyrics": {
            "type": "string"
          },
          "model_name": {
            "type": "string"
          },
          "stream_audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    },
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "generation_stage": {
      "enum": [
        "text_generated",
        "first_audio_ready"
      ],
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "generation_stage": "text_generated",
  "id": "tsk_reference_demo",
  "status": "processing"
}
06

Abfrage abgeschlossen

HTTP 200

GET /api/v1/suno/extend_music/:id

Antwort-Schema
JSON
{
  "properties": {
    "audios": {
      "items": {
        "properties": {
          "audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "duration": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "image_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "lyrics": {
            "type": "string"
          },
          "model_name": {
            "type": "string"
          },
          "stream_audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    },
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "generation_stage": {
      "enum": [
        "text_generated",
        "first_audio_ready",
        "all_audios_ready",
        "failed"
      ],
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "audios",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "audios": [
    {
      "audio_url": "https://file.runapi.ai/reference-audio.mp3",
      "id": "audio_reference"
    }
  ],
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "id": "tsk_reference_demo",
  "status": "completed"
}
07

Abfrage fehlgeschlagen

HTTP 200

GET /api/v1/suno/extend_music/:id

Antwort-Schema
JSON
{
  "properties": {
    "billing": {
      "properties": {
        "refund": {
          "oneOf": [
            {
              "properties": {
                "refunded_at": {
                  "type": "string"
                }
              },
              "required": [
                "refunded_at"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "reservation": {
          "oneOf": [
            {
              "properties": {
                "amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "amount_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        },
        "settlement": {
          "oneOf": [
            {
              "properties": {
                "amount_micro_cents": {
                  "type": "integer"
                },
                "charged_amount_cents": {
                  "type": "integer"
                }
              },
              "required": [
                "charged_amount_cents",
                "amount_micro_cents"
              ],
              "type": "object",
              "unevaluatedProperties": false
            },
            {
              "enum": [
                null
              ]
            }
          ]
        }
      },
      "required": [
        "reservation",
        "settlement",
        "refund"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    "error": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error",
    "billing"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "billing": {
    "refund": null,
    "reservation": null,
    "settlement": null
  },
  "error": "Task processing failed.",
  "id": "tsk_reference_demo",
  "status": "failed"
}
08

Kunden-Callback: wird verarbeitet

HTTP 200

POST callback_url

Antwort-Schema
JSON
{
  "properties": {
    "audios": {
      "items": {
        "properties": {
          "audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "duration": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "image_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "lyrics": {
            "type": "string"
          },
          "model_name": {
            "type": "string"
          },
          "stream_audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    },
    "generation_stage": {
      "enum": [
        "text_generated",
        "first_audio_ready"
      ],
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "processing"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "generation_stage": "text_generated",
  "id": "tsk_reference_demo",
  "status": "processing"
}
09

Kunden-Callback: abgeschlossen

HTTP 200

POST callback_url

Antwort-Schema
JSON
{
  "properties": {
    "audios": {
      "items": {
        "properties": {
          "audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "duration": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "image_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "lyrics": {
            "type": "string"
          },
          "model_name": {
            "type": "string"
          },
          "stream_audio_url": {
            "type": "string",
            "x-runapi-generated-media": true
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    },
    "generation_stage": {
      "enum": [
        "text_generated",
        "first_audio_ready",
        "all_audios_ready",
        "failed"
      ],
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "audios"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "audios": [
    {
      "audio_url": "https://file.runapi.ai/reference-audio.mp3",
      "id": "audio_reference"
    }
  ],
  "id": "tsk_reference_demo",
  "status": "completed"
}
10

Kunden-Callback: fehlgeschlagen

HTTP 200

POST callback_url

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "properties": {
            "code": {
              "type": "string"
            },
            "limit_cents": {
              "type": "integer"
            },
            "message": {
              "type": "string"
            },
            "reset_at": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "used_cents": {
              "type": "integer"
            },
            "window": {
              "enum": [
                "1h",
                "1d",
                "7d",
                "daily",
                "weekly",
                "monthly",
                "lifetime"
              ],
              "type": "string"
            }
          },
          "required": [
            "code",
            "message"
          ],
          "type": "object",
          "unevaluatedProperties": false
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "failed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": {
    "code": "generation_failed",
    "message": "Task processing failed."
  },
  "id": "tsk_reference_demo",
  "status": "failed"
}
11

Fehler

HTTP 401

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "Authentication required"
}
12

Fehler

HTTP 401

GET /api/v1/suno/extend_music/:id

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "Authentication required"
}
13

Fehler

HTTP 400

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "Für Menschen lesbare Fehlermeldung.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "Menschenlesbare Validierungszusammenfassung.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Validierungsmeldungen nach öffentlichem Anforderungsfeld gegliedert, mit einem Array menschenlesbarer Zeichenketten für jedes Feld.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Antwortbeispiel

JSON
{
  "error": "model must be one of: suno-v4, suno-v4.5, suno-v4.5-all, suno-v4.5-plus, suno-v5, suno-v5.5"
}
14

Fehler

HTTP 402

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "Insufficient balance"
}
15

Fehler

HTTP 429

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "API key credit limit exceeded"
}
16

Fehler

HTTP 409

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "The request uses features that are not supported for the selected model"
}
17

Fehler

HTTP 429

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "Rate limit reached. Please retry later."
}
18

Fehler

HTTP 503

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "Service under maintenance, please try again later"
}
19

Fehler

HTTP 504

POST /api/v1/suno/extend_music

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "The request timed out"
}
20

Fehler

HTTP 404

GET /api/v1/suno/extend_music/:id

Antwort-Schema
JSON
{
  "properties": {
    "error": {
      "description": "Für Menschen lesbare Fehlermeldung.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Antwortbeispiel

JSON
{
  "error": "Task with id 'tsk_reference_demo' not found"
}
21

Generierte Code-Beispiele

Verwende cURL direkt oder installiere ein SDK für deine Programmiersprache. Jedes Beispiel übermittelt die in dieser Referenz gezeigte validierte Anfrage.

Installieren

Shell
pip install runapi-suno
PYTHON
import os
from runapi.suno import SunoClient

client = SunoClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.extend_music.create(
  model="suno-v5",
  upload_url="https://cdn.runapi.ai/public/samples/music.mp3",
  parameter_mode="custom",
  instrumental=False,
  prompt="Continue the arrangement with a brighter chorus.",
  style="Acoustic pop with warm piano.",
  title="Brighter Chorus",
  continue_at=60,
  persona_id="persona_reference",
  persona_type="style"
)