Documentación completa de la API REST para gestionar emisoras, archivos de audio, playlists y más.
Todas las solicitudes a la API requieren autenticación mediante API Key. Puedes generar tu API Key desde el Dashboard > Mi Perfil > API.
/api/v1/auth/login
Autentica un usuario y devuelve un token de acceso.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
email |
string | Sí | Email del usuario |
password |
string | Sí | Contraseña del usuario |
/api/v1/stations
Obtiene una lista de todas las emisoras activas.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
limit |
int | No | Límite de resultados (default: 20, max: 100) |
offset |
int | No | Offset para paginación (default: 0) |
search |
string | No | Búsqueda por nombre de emisora |
/api/v1/stations/{id}
Obtiene los detalles de una emisora específica.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
id |
int | Sí | ID de la emisora |
/api/v1/stations
Crea una nueva emisora. Requiere autenticación.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
name |
string | Sí | Nombre de la emisora (min: 3 caracteres) |
description |
string | No | Descripción de la emisora |
stream_url |
string | No | URL completa del stream |
server_host |
string | No | Host del servidor (sin http://) |
server_port |
int | No | Puerto del servidor (1-65535) |
mount_point |
string | No | Mount point (ej: /stream) |
protocol |
string | No | Protocolo: icecast, shoutcast, custom (default: icecast) |
bitrate |
int | No | Bitrate: 64, 128, 192, 256, 320 (default: 128) |
/api/v1/stations/{id}
Actualiza una emisora existente. Requiere autenticación y ser propietario.
/api/v1/stations/{id}
Elimina una emisora. Requiere autenticación y ser propietario.
/api/v1/audio
Obtiene una lista de archivos de audio del usuario autenticado.
/api/v1/audio/upload
Sube un nuevo archivo de audio. Requiere autenticación.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
file |
file | Sí | Archivo de audio (mp3, aac, ogg, wav, flac, opus) |
station_id |
int | No | ID de la emisora asociada |
/api/v1/playlists
Obtiene playlists del usuario autenticado.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
station_id |
int | No | Filtrar por emisora |
is_auto_dj |
boolean | No | Filtrar playlists Auto DJ |
/api/v1/playlists/{id}/tracks
Agrega un track a una playlist. Requiere autenticación.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
audio_file_id |
int | Sí | ID del archivo de audio |
order_position |
int | No | Posición en la playlist (default: automático) |
/api/v1/messages
Envía un mensaje de contacto. No requiere autenticación.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
name |
string | Sí | Nombre del remitente (min: 2 caracteres) |
email |
string | Sí | Email válido del remitente |
subject |
string | Sí | Asunto del mensaje (min: 5 caracteres) |
message |
string | Sí | Contenido del mensaje (min: 10 caracteres) |
/api/v1/stats/station/{id}
Obtiene estadísticas de una emisora específica.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
period |
string | No | Período: day, week, month, year (default: week) |
| Código | Significado | Descripción |
|---|---|---|
200 |
OK | Solicitud exitosa |
201 |
Created | Recurso creado exitosamente |
400 |
Bad Request | Parámetros inválidos o faltantes |
401 |
Unauthorized | Token inválido o faltante |
403 |
Forbidden | No tiene permisos para esta acción |
404 |
Not Found | Recurso no encontrado |
429 |
Too Many Requests | Límite de rate limit excedido |
500 |
Internal Server Error | Error interno del servidor |
La API tiene límites de solicitudes para prevenir abuso: