Referencia de API
Fish Audio Listar voces
Usa el endpoint de listado de voces para recibir un resultado en la misma respuesta.
01
Descripción general
Usa el endpoint de listado de voces y lee el resultado de la misma respuesta.
Inicio rápido
- Cree una Clave de API y establézcala como RUNAPI_API_KEY.
- Envíe una solicitud POST cuyo cuerpo coincida con el esquema de la solicitud.
- Lea el resultado en el cuerpo de la respuesta exitosa.
Endpoint
- URL base
https://runapi.ai- Versión de la API
v1- Autenticación
Authorization: Bearer YOUR_API_TOKEN
02
Modelos compatibles
Abra una página de modelo para conocer los precios actuales, los límites de velocidad y los detalles de uso comercial.
03
Cuerpo JSONEsquema de solicitud
Envíe únicamente los campos declarados para este endpoint.
Cuerpo de la solicitud2 campos
page_numberinteger
Opcional
Valor predeterminado:
1
Límite: 1
page_sizeinteger
Opcional
Valor predeterminado:
10
Rango: 1 - 100
04
HTTP 200Respuesta de éxito
GET /api/v1/fish_audio/voices
Esquema de respuesta
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
},
"page_number": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"total": {
"type": "integer"
},
"voices": {
"items": {
"properties": {
"name": {
"type": "string"
},
"state": {
"enum": [
"created",
"training",
"trained",
"failed"
],
"type": "string"
},
"voice_id": {
"type": "string"
}
},
"required": [
"voice_id",
"state"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
}
},
"required": [
"voices",
"total",
"page_number",
"page_size",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"page_number": 1,
"page_size": 10,
"total": 1,
"voices": [
{
"name": "Studio Narrator",
"state": "trained",
"voice_id": "voice_reference_narrator"
}
]
}
05
HTTP 401Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"error": "Authentication required"
}
06
HTTP 400Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"oneOf": [
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Resumen de validación legible por personas.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Mensajes de validación con clave por campo de solicitud público, con un array de cadenas legibles por personas para cada campo.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Ejemplo de respuesta
JSON
{
"error": "page_number must be greater than or equal to 1"
}
07
HTTP 402Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"error": "Insufficient balance"
}
08
HTTP 429Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"error": "API key credit limit exceeded"
}
09
HTTP 409Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"error": "The request uses features that are not supported for the selected model"
}
10
HTTP 429Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"error": "Rate limit reached. Please retry later."
}
11
HTTP 503Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"error": "Service under maintenance, please try again later"
}
12
HTTP 504Errores
GET /api/v1/fish_audio/voices
Esquema de respuesta
JSON
{
"properties": {
"error": {
"description": "Mensaje de error legible por personas.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Ejemplo de respuesta
JSON
{
"error": "The request timed out"
}
13
Ejemplos de código generados
Usa cURL directamente o instala un SDK para tu lenguaje. Cada muestra envía la solicitud validada que se muestra en esta referencia.
Instalar
Shell
pip install runapi-fish-audio
PYTHON
import os
from runapi.fish_audio import FishAudioClient
client = FishAudioClient(api_key=os.environ["RUNAPI_API_KEY"])
result = client.list_voices.run(
page_number=1,
page_size=10
)