İçeriğe geç
API Referansı
API Referansı

Suno Müzik Uzatma

Eş zamansız bir Görev oluşturmak için müzik uzatma uç noktasını kullanın.

01

Genel Bakış

Desteklenen bir modelle müzik uzatma uç noktasını kullanın. Durumunu almak için döndürülen Görev Kimliğini kullanın ya da aşağıda belgelenen teslimatlar için callback_url sağlayın.

Hızlı başlangıç

  1. Bir API anahtarı oluşturun ve RUNAPI_API_KEY olarak ayarlayın.
  2. Desteklenen bir model seçin ve gövdesi o modelin şemasıyla eşleşen bir POST isteği gönderin.
  3. Döndürülen görev kimliğini saklayın, ardından bir terminal durumuna ulaşana kadar yoklama yapın ya da aşağıda belgelenen geri çağırmaları işleyin.

Uç Nokta

POST /api/v1/suno/extend_music
Temel URL
https://runapi.ai
API sürümü
v1
Kimlik doğrulama
Authorization: Bearer YOUR_API_TOKEN
02

Desteklenen modeller

Güncel fiyatlandırma, hız sınırları ve ticari kullanım ayrıntıları için bir model sayfası açın.

03

İstek şeması

JSON gövdesi

Alanlar ve izin verilen değerler seçili modele göre değişir. Sağlandığında, callback_url aşağıda belgelenen Görev teslimatlarını alır.

suno-v420 alan
audio_idstring
İsteğe bağlı

Uzatılacak kaynak ses Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_urlstring
İsteğe bağlı

Uzatılacak kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_weightnumber
İsteğe bağlı

Ses ağırlığı (0-1).

Aralık: 0 - 1
callback_urlstring
İsteğe bağlı

Asenkron bildirimler için webhook URL'si.

continue_atnumber
İsteğe bağlı

Devam edilecek kaynaktaki saniye cinsinden konum. Özel parametre modunda zorunludur.

instrumentalboolean
İsteğe bağlı

True olduğunda, vokalsiz oluşturur.

lyricsstring
İsteğe bağlı

Tam şarkı sözleri. Yalnızca özel parametre modunda yüklenen sesi uzatırken kullanılabilir.

Sınır: 5000
modelstring
Zorunlu

Model tanımlayıcısı.

negative_tagsstring
İsteğe bağlı

Kaçınılacak stiller.

parameter_modestring
Zorunlu

Kaynak parçanın parametrelerini devral (source) veya özel parametreler belirt (custom).

İzin verilen değerler: source, custom
persona_idstring
İsteğe bağlı

Persona kimliği.

persona_typestring
İsteğe bağlı

Persona türü.

İzin verilen değerler: style, voice
promptstring
İsteğe bağlı

Uzatma özeti. lyrics ile birleştirilemez.

Sınır: 5000
stylestring
İsteğe bağlı

Stil ön ayarı. Özel parametre modunda zorunludur.

Sınır: 1000
style_weightnumber
İsteğe bağlı

Stil uyum ağırlığı (0-1).

Aralık: 0 - 1
task_idstring
İsteğe bağlı

Uzatılacak kaynak görev Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

titlestring
İsteğe bağlı

Şarkı başlığı. Özel parametre modunda zorunludur.

Sınır: 80
upload_urlstring
İsteğe bağlı

Genişletilecek yüklenen kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini girin.

vocal_genderstring
İsteğe bağlı

Vokal cinsiyeti.

İzin verilen değerler: male, female
weirdness_constraintnumber
İsteğe bağlı

Tuhaflık kısıtlaması (0-1).

Aralık: 0 - 1
suno-v4.520 alan
audio_idstring
İsteğe bağlı

Uzatılacak kaynak ses Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_urlstring
İsteğe bağlı

Uzatılacak kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_weightnumber
İsteğe bağlı

Ses ağırlığı (0-1).

Aralık: 0 - 1
callback_urlstring
İsteğe bağlı

Asenkron bildirimler için webhook URL'si.

continue_atnumber
İsteğe bağlı

Devam edilecek kaynaktaki saniye cinsinden konum. Özel parametre modunda zorunludur.

instrumentalboolean
İsteğe bağlı

True olduğunda, vokalsiz oluşturur.

lyricsstring
İsteğe bağlı

Tam şarkı sözleri. Yalnızca özel parametre modunda yüklenen sesi uzatırken kullanılabilir.

Sınır: 5000
modelstring
Zorunlu

Model tanımlayıcısı.

negative_tagsstring
İsteğe bağlı

Kaçınılacak stiller.

parameter_modestring
Zorunlu

Kaynak parçanın parametrelerini devral (source) veya özel parametreler belirt (custom).

İzin verilen değerler: source, custom
persona_idstring
İsteğe bağlı

Persona kimliği.

persona_typestring
İsteğe bağlı

Persona türü.

İzin verilen değerler: style, voice
promptstring
İsteğe bağlı

Uzatma özeti. lyrics ile birleştirilemez.

Sınır: 5000
stylestring
İsteğe bağlı

Stil ön ayarı. Özel parametre modunda zorunludur.

Sınır: 1000
style_weightnumber
İsteğe bağlı

Stil uyum ağırlığı (0-1).

Aralık: 0 - 1
task_idstring
İsteğe bağlı

Uzatılacak kaynak görev Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

titlestring
İsteğe bağlı

Şarkı başlığı. Özel parametre modunda zorunludur.

Sınır: 80
upload_urlstring
İsteğe bağlı

Genişletilecek yüklenen kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini girin.

vocal_genderstring
İsteğe bağlı

Vokal cinsiyeti.

İzin verilen değerler: male, female
weirdness_constraintnumber
İsteğe bağlı

Tuhaflık kısıtlaması (0-1).

Aralık: 0 - 1
suno-v4.5-all20 alan
audio_idstring
İsteğe bağlı

Uzatılacak kaynak ses Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_urlstring
İsteğe bağlı

Uzatılacak kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_weightnumber
İsteğe bağlı

Ses ağırlığı (0-1).

Aralık: 0 - 1
callback_urlstring
İsteğe bağlı

Asenkron bildirimler için webhook URL'si.

continue_atnumber
İsteğe bağlı

Devam edilecek kaynaktaki saniye cinsinden konum. Özel parametre modunda zorunludur.

instrumentalboolean
İsteğe bağlı

True olduğunda, vokalsiz oluşturur.

lyricsstring
İsteğe bağlı

Tam şarkı sözleri. Yalnızca özel parametre modunda yüklenen sesi uzatırken kullanılabilir.

Sınır: 5000
modelstring
Zorunlu

Model tanımlayıcısı.

negative_tagsstring
İsteğe bağlı

Kaçınılacak stiller.

parameter_modestring
Zorunlu

Kaynak parçanın parametrelerini devral (source) veya özel parametreler belirt (custom).

İzin verilen değerler: source, custom
persona_idstring
İsteğe bağlı

Persona kimliği.

persona_typestring
İsteğe bağlı

Persona türü.

İzin verilen değerler: style, voice
promptstring
İsteğe bağlı

Uzatma özeti. lyrics ile birleştirilemez.

Sınır: 5000
stylestring
İsteğe bağlı

Stil ön ayarı. Özel parametre modunda zorunludur.

Sınır: 1000
style_weightnumber
İsteğe bağlı

Stil uyum ağırlığı (0-1).

Aralık: 0 - 1
task_idstring
İsteğe bağlı

Uzatılacak kaynak görev Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

titlestring
İsteğe bağlı

Şarkı başlığı. Özel parametre modunda zorunludur.

Sınır: 80
upload_urlstring
İsteğe bağlı

Genişletilecek yüklenen kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini girin.

vocal_genderstring
İsteğe bağlı

Vokal cinsiyeti.

İzin verilen değerler: male, female
weirdness_constraintnumber
İsteğe bağlı

Tuhaflık kısıtlaması (0-1).

Aralık: 0 - 1
suno-v4.5-plus20 alan
audio_idstring
İsteğe bağlı

Uzatılacak kaynak ses Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_urlstring
İsteğe bağlı

Uzatılacak kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_weightnumber
İsteğe bağlı

Ses ağırlığı (0-1).

Aralık: 0 - 1
callback_urlstring
İsteğe bağlı

Asenkron bildirimler için webhook URL'si.

continue_atnumber
İsteğe bağlı

Devam edilecek kaynaktaki saniye cinsinden konum. Özel parametre modunda zorunludur.

instrumentalboolean
İsteğe bağlı

True olduğunda, vokalsiz oluşturur.

lyricsstring
İsteğe bağlı

Tam şarkı sözleri. Yalnızca özel parametre modunda yüklenen sesi uzatırken kullanılabilir.

Sınır: 5000
modelstring
Zorunlu

Model tanımlayıcısı.

negative_tagsstring
İsteğe bağlı

Kaçınılacak stiller.

parameter_modestring
Zorunlu

Kaynak parçanın parametrelerini devral (source) veya özel parametreler belirt (custom).

İzin verilen değerler: source, custom
persona_idstring
İsteğe bağlı

Persona kimliği.

persona_typestring
İsteğe bağlı

Persona türü.

İzin verilen değerler: style, voice
promptstring
İsteğe bağlı

Uzatma özeti. lyrics ile birleştirilemez.

Sınır: 5000
stylestring
İsteğe bağlı

Stil ön ayarı. Özel parametre modunda zorunludur.

Sınır: 1000
style_weightnumber
İsteğe bağlı

Stil uyum ağırlığı (0-1).

Aralık: 0 - 1
task_idstring
İsteğe bağlı

Uzatılacak kaynak görev Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

titlestring
İsteğe bağlı

Şarkı başlığı. Özel parametre modunda zorunludur.

Sınır: 80
upload_urlstring
İsteğe bağlı

Genişletilecek yüklenen kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini girin.

vocal_genderstring
İsteğe bağlı

Vokal cinsiyeti.

İzin verilen değerler: male, female
weirdness_constraintnumber
İsteğe bağlı

Tuhaflık kısıtlaması (0-1).

Aralık: 0 - 1
suno-v520 alan
audio_idstring
İsteğe bağlı

Uzatılacak kaynak ses Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_urlstring
İsteğe bağlı

Uzatılacak kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_weightnumber
İsteğe bağlı

Ses ağırlığı (0-1).

Aralık: 0 - 1
callback_urlstring
İsteğe bağlı

Asenkron bildirimler için webhook URL'si.

continue_atnumber
İsteğe bağlı

Devam edilecek kaynaktaki saniye cinsinden konum. Özel parametre modunda zorunludur.

instrumentalboolean
İsteğe bağlı

True olduğunda, vokalsiz oluşturur.

lyricsstring
İsteğe bağlı

Tam şarkı sözleri. Yalnızca özel parametre modunda yüklenen sesi uzatırken kullanılabilir.

Sınır: 5000
modelstring
Zorunlu

Model tanımlayıcısı.

negative_tagsstring
İsteğe bağlı

Kaçınılacak stiller.

parameter_modestring
Zorunlu

Kaynak parçanın parametrelerini devral (source) veya özel parametreler belirt (custom).

İzin verilen değerler: source, custom
persona_idstring
İsteğe bağlı

Persona kimliği.

persona_typestring
İsteğe bağlı

Persona türü.

İzin verilen değerler: style, voice
promptstring
İsteğe bağlı

Uzatma özeti. lyrics ile birleştirilemez.

Sınır: 5000
stylestring
İsteğe bağlı

Stil ön ayarı. Özel parametre modunda zorunludur.

Sınır: 1000
style_weightnumber
İsteğe bağlı

Stil uyum ağırlığı (0-1).

Aralık: 0 - 1
task_idstring
İsteğe bağlı

Uzatılacak kaynak görev Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

titlestring
İsteğe bağlı

Şarkı başlığı. Özel parametre modunda zorunludur.

Sınır: 80
upload_urlstring
İsteğe bağlı

Genişletilecek yüklenen kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini girin.

vocal_genderstring
İsteğe bağlı

Vokal cinsiyeti.

İzin verilen değerler: male, female
weirdness_constraintnumber
İsteğe bağlı

Tuhaflık kısıtlaması (0-1).

Aralık: 0 - 1
suno-v5.520 alan
audio_idstring
İsteğe bağlı

Uzatılacak kaynak ses Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_urlstring
İsteğe bağlı

Uzatılacak kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

audio_weightnumber
İsteğe bağlı

Ses ağırlığı (0-1).

Aralık: 0 - 1
callback_urlstring
İsteğe bağlı

Asenkron bildirimler için webhook URL'si.

continue_atnumber
İsteğe bağlı

Devam edilecek kaynaktaki saniye cinsinden konum. Özel parametre modunda zorunludur.

instrumentalboolean
İsteğe bağlı

True olduğunda, vokalsiz oluşturur.

lyricsstring
İsteğe bağlı

Tam şarkı sözleri. Yalnızca özel parametre modunda yüklenen sesi uzatırken kullanılabilir.

Sınır: 5000
modelstring
Zorunlu

Model tanımlayıcısı.

negative_tagsstring
İsteğe bağlı

Kaçınılacak stiller.

parameter_modestring
Zorunlu

Kaynak parçanın parametrelerini devral (source) veya özel parametreler belirt (custom).

İzin verilen değerler: source, custom
persona_idstring
İsteğe bağlı

Persona kimliği.

persona_typestring
İsteğe bağlı

Persona türü.

İzin verilen değerler: style, voice
promptstring
İsteğe bağlı

Uzatma özeti. lyrics ile birleştirilemez.

Sınır: 5000
stylestring
İsteğe bağlı

Stil ön ayarı. Özel parametre modunda zorunludur.

Sınır: 1000
style_weightnumber
İsteğe bağlı

Stil uyum ağırlığı (0-1).

Aralık: 0 - 1
task_idstring
İsteğe bağlı

Uzatılacak kaynak görev Kimliği. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini sağlayın.

titlestring
İsteğe bağlı

Şarkı başlığı. Özel parametre modunda zorunludur.

Sınır: 80
upload_urlstring
İsteğe bağlı

Genişletilecek yüklenen kaynak ses URL'si. task_id, audio_id, audio_url veya upload_url seçeneklerinden birini girin.

vocal_genderstring
İsteğe bağlı

Vokal cinsiyeti.

İzin verilen değerler: male, female
weirdness_constraintnumber
İsteğe bağlı

Tuhaflık kısıtlaması (0-1).

Aralık: 0 - 1
04

Kabul oluştur

HTTP 202

POST /api/v1/suno/extend_music

Yanıt şeması
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
}

Yanıt örneği

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

Yoklama işleniyor

HTTP 200

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

Yanıt şeması
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
}

Yanıt örneği

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

Yoklama tamamlandı

HTTP 200

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

Yanıt şeması
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
}

Yanıt örneği

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

Yoklama başarısız oldu

HTTP 200

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

Yanıt şeması
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
}

Yanıt örneği

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

Müşteri geri çağırması: işleniyor

HTTP 200

POST callback_url

Yanıt şeması
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
}

Yanıt örneği

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

Müşteri geri çağırması: tamamlandı

HTTP 200

POST callback_url

Yanıt şeması
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
}

Yanıt örneği

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

Müşteri geri çağırması: başarısız oldu

HTTP 200

POST callback_url

Yanıt şeması
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
}

Yanıt örneği

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

Hatalar

HTTP 401

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 401

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

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 400

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "İnsan tarafından okunabilir hata mesajı.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "İnsan tarafından okunabilir doğrulama özeti.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Herkese açık istek alanına göre anahtarlanan doğrulama mesajları; her alan için insan tarafından okunabilir dizelerden oluşan bir dizi içerir.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Yanıt örneği

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

Hatalar

HTTP 402

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 429

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 409

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 429

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 503

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 504

POST /api/v1/suno/extend_music

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Hatalar

HTTP 404

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

Yanıt şeması
JSON
{
  "properties": {
    "error": {
      "description": "İnsan tarafından okunabilir hata mesajı.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Yanıt örneği

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

Oluşturulan Kod Örnekleri

Doğrudan cURL kullanın veya diliniz için bir SDK yükleyin. Her örnek, bu başvuruda gösterilen doğrulanmış isteği gönderir.

Yükle

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"
)