Referência de API
Suno Expansões de estilo
Expand a short style description into richer genre and style tags.
01
Visão geral
Use o endpoint style expansions e leia o resultado na mesma resposta.
Início rápido
- Crie uma Chave de API e defina-a como RUNAPI_API_KEY.
- Envie uma requisição POST cujo corpo corresponda ao schema da requisição.
- Leia o resultado do corpo da resposta bem-sucedida.
Endpoint
- URL base
https://runapi.ai- Versão da API
v1- Autenticação
Authorization: Bearer YOUR_API_TOKEN
02
Modelos suportados
Abra uma página de modelo para ver preços atuais, limites de taxa e detalhes de uso comercial.
03
Corpo JSONEsquema de solicitação
Envie apenas os campos declarados para este endpoint.
Corpo da solicitação1 campo
descriptionstring
Obrigatório
Descrição de estilo para expandir em tags de gênero.
04
HTTP 200Resposta de sucesso
POST /api/v1/style_expansions
Esquema de resposta
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
},
"style": {
"type": "string"
}
},
"required": [
"style",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"style": "electronic pop, dance, upbeat"
}
05
HTTP 401Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"error": "Authentication required"
}
06
HTTP 400Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"oneOf": [
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Resumo de validação legível por humanos.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Mensagens de validação com chaves por campo de requisição público, com um array de strings legíveis por humanos para cada campo.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Exemplo de resposta
JSON
{
"error": "Validation failed",
"errors": {
"description": [
"is required"
]
}
}
07
HTTP 402Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"error": "Insufficient balance"
}
08
HTTP 429Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"error": "API key credit limit exceeded"
}
09
HTTP 409Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"error": "The request uses features that are not supported for the selected model"
}
10
HTTP 429Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"error": "Rate limit reached. Please retry later."
}
11
HTTP 503Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"error": "Service under maintenance, please try again later"
}
12
HTTP 504Erros
POST /api/v1/style_expansions
Esquema de resposta
JSON
{
"properties": {
"error": {
"description": "Mensagem de erro legível por humanos.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemplo de resposta
JSON
{
"error": "The request timed out"
}
13
Exemplos de Código Gerados
Use cURL diretamente ou instale um SDK para a sua linguagem. Cada exemplo submete a requisição validada mostrada nesta referência.
Instalar
Shell
pip install runapi-suno
PYTHON
import os
from runapi.suno import SunoClient
client = SunoClient(api_key=os.environ["RUNAPI_API_KEY"])
result = client.style_expansions.run(
description="An upbeat pop track with electronic beats."
)