Gestión de Transmisiones
Gestiona operaciones en transmisiones como iniciar, detener, reiniciar y eliminar.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "stream" |
| sub | string | Sí | Acción a realizar: "start", "stop", "restart", "delete" |
| stream_id | integer | Sí | ID de la transmisión |
| server_id | integer | Sí | ID del servidor donde se encuentra la transmisión |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
Ejemplo de respuesta de error:
{
"result": false
}
- Requiere permisos de administrador con "edit_stream"
- Las acciones "start" y "stop" controlan la transmisión del stream
- "restart" equivale a detener y volver a iniciar la transmisión
- "delete" eliminará la transmisión del sistema
Gestiona operaciones en películas VOD como iniciar, detener y eliminar.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "movie" |
| sub | string | Sí | Acción a realizar: "start", "stop", "delete" |
| stream_id | integer | Sí | ID de la película |
| server_id | integer | Sí | ID del servidor donde se encuentra la película |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_movie"
- La acción "delete" eliminará la película y sus archivos relacionados
- Cuando se elimina la última referencia a una película, también se elimina el archivo de película asociado
Gestiona operaciones en episodios de series como iniciar, detener y eliminar.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "episode" |
| sub | string | Sí | Acción a realizar: "start", "stop", "delete" |
| stream_id | integer | Sí | ID del episodio |
| server_id | integer | Sí | ID del servidor donde se encuentra el episodio |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_episode"
- La acción "delete" eliminará el episodio, sus referencias en series_episodes y sus archivos relacionados
Gestión de Usuarios
Gestiona operaciones en usuarios como eliminar, activar, desactivar, banear y desbanear.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "user" |
| sub | string | Sí | Acción a realizar: "delete", "enable", "disable", "ban", "unban", "kill" |
| user_id | integer | Sí | ID del usuario |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Los revendedores solo pueden gestionar usuarios bajo su control
- Los administradores necesitan permisos "edit_user"
- "delete" elimina al usuario y todos sus dispositivos
- "enable"/"disable" activa/desactiva la cuenta del usuario
- "ban"/"unban" solo está disponible para administradores
- "kill" termina todas las conexiones activas del usuario
Gestión de Actividad de Usuarios
Termina una conexión específica de usuario usando su ID de proceso.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "user_activity" |
| sub | string | Sí | Debe ser "kill" |
| pid | integer | Sí | ID del proceso a terminar |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Los revendedores solo pueden terminar procesos de usuarios bajo su control
- Los administradores necesitan permisos "connection_logs"
- Ejecuta "kill -9" en el proceso especificado en el servidor
Gestión de Procesos
Termina un proceso específico en un servidor.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "process" |
| server | integer | Sí | ID del servidor donde se ejecuta el proceso |
| pid | integer | Sí | ID del proceso a terminar |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "process_monitor"
- Ejecuta "kill -9" en el proceso especificado en el servidor
- Este endpoint es útil para el monitoreo y gestión de procesos del sistema
Gestión de Revendedores
Gestiona revendedores registrados, permitiendo eliminar, activar, desactivar y restablecer 2FA.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "reg_user" |
| sub | string | Sí | Acción a realizar: "delete", "reset" (2FA), "enable", "disable" |
| user_id | integer | Sí | ID del revendedor |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Los revendedores solo pueden gestionar subrevendedores bajo su control
- Los administradores necesitan permisos "edit_reguser"
- La acción "delete" elimina al revendedor y devuelve los créditos a su propietario
- La acción "reset" elimina la configuración 2FA del revendedor
- "enable"/"disable" activa/desactiva la cuenta del revendedor
Gestión de Tickets
Gestiona tickets de soporte, permitiendo eliminar, cerrar, reabrir y marcar como leído/no leído.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "ticket" |
| sub | string | Sí | Acción a realizar: "delete", "close", "reopen", "unread", "read" |
| ticket_id | integer | Sí | ID del ticket |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Los revendedores solo pueden gestionar tickets relacionados con sus clientes
- Los administradores necesitan permisos "ticket"
- La acción "delete" elimina el ticket y todas sus respuestas
- Las acciones "close"/"reopen" cambian el estado del ticket
- Las acciones "read"/"unread" cambian el estado de lectura del ticket
Gestión de Dispositivos MAG
Gestiona dispositivos MAG, permitiendo eliminarlos del sistema.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "mag" |
| sub | string | Sí | Debe ser "delete" |
| mag_id | integer | Sí | ID del dispositivo MAG |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Los revendedores solo pueden gestionar dispositivos MAG bajo su control
- Los administradores necesitan permisos "edit_mag"
- La acción "delete" elimina el dispositivo MAG y el usuario asociado
Gestiona eventos de dispositivos MAG, permitiendo eliminarlos.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "mag_event" |
| sub | string | Sí | Debe ser "delete" |
| mag_id | integer | Sí | ID del evento MAG |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "manage_events"
- La acción "delete" elimina el evento MAG especificado
Gestión de EPG
Gestiona fuentes EPG (Electronic Program Guide), permitiendo eliminarlas.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "epg" |
| sub | string | Sí | Debe ser "delete" |
| epg_id | integer | Sí | ID de la fuente EPG |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_epg"
- La acción "delete" elimina la fuente EPG y su configuración asociada
Gestión de Perfiles de Transcodificación
Gestiona perfiles de transcodificación, permitiendo eliminarlos.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "profile" |
| sub | string | Sí | Debe ser "delete" |
| profile_id | integer | Sí | ID del perfil de transcodificación |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "tprofiles"
- La acción "delete" elimina el perfil de transcodificación especificado
Gestión de Series
Gestiona series, permitiendo eliminarlas junto con todos sus episodios.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "series" |
| sub | string | Sí | Debe ser "delete" |
| series_id | integer | Sí | ID de la serie |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_series"
- La acción "delete" elimina la serie, todos sus episodios y archivos asociados
- También se eliminan las referencias en bouquets
Estadísticas del Sistema
Obtiene estadísticas detalladas del sistema o de un servidor específico.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "stats" |
| server_id | integer | No | ID del servidor (opcional, si no se proporciona, devuelve estadísticas globales) |
Devuelve un objeto JSON con estadísticas detalladas del sistema o servidor.
Ejemplo de respuesta para un servidor:
{
"cpu": 25,
"mem": 38,
"uptime": "5 days, 3:45",
"total_running_streams": 120,
"bytes_sent": 2500000000,
"bytes_received": 1500000000,
"offline_streams": 5,
"open_connections": 350,
"total_connections": 1200,
"online_users": 180,
"total_users": 500,
"total_streams": 150,
"network_guaranteed_speed": 1000
}
- Requiere permisos de administrador con "index"
- CPU y memoria se expresan en porcentajes
- Bytes enviados/recibidos se expresan en bytes
- Cuando no se especifica server_id, la respuesta incluye un array "servers" con estadísticas de todos los servidores
Búsqueda en TMDB
Busca películas, series o temporadas en la base de datos de TMDB.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "tmdb_search" |
| type | string | Sí | Tipo de búsqueda: "movie", "series" o "season" |
| term | string | Sí | Término de búsqueda o ID de TMDB para temporadas |
| season | integer | Condicional | Número de temporada (requerido si type="season") |
Devuelve un objeto JSON con los resultados de la búsqueda de TMDB.
Ejemplo de respuesta exitosa para películas:
{
"result": true,
"data": [
{
"id": 550,
"title": "El Club de la Lucha",
"original_title": "Fight Club",
"release_date": "1999-10-15",
"poster_path": "/rr7E0NoGKxvbkb89eR1GwfoYjpA.jpg",
"overview": "Un empleado de oficina insomne..."
},
// Más resultados...
]
}
- Requiere permisos de administrador con "add_series", "edit_series", "add_movie", "edit_movie", "add_episode" o "edit_episode"
- Utiliza la API de TMDB para obtener metadatos
- Para búsquedas de tipo "season", "term" debe ser el ID de TMDB de la serie
Gestión de Copias de Seguridad
Gestiona las copias de seguridad de la base de datos, permitiendo crear, restaurar y eliminar.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "backup" |
| sub | string | Sí | Acción a realizar: "backup" (crear), "restore" (restaurar), "delete" (eliminar) |
| filename | string | Condicional | Nombre del archivo de copia de seguridad (requerido para restore y delete) |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta para crear copia:
{
"result": true,
"data": {
"filename": "backup_2025-05-27_21-59-50.sql",
"timestamp": 1717033190,
"date": "2025-05-27 21:59:50"
}
}
- Requiere permisos de administrador con "database"
- Las copias de seguridad excluyen tablas de logs y datos EPG para reducir tamaño
- La acción "backup" crea una nueva copia de seguridad y elimina las más antiguas si se supera el límite configurado
- La acción "restore" reemplaza la base de datos actual con la copia seleccionada
Gestión de Carpetas de Vigilancia
Gestiona carpetas de vigilancia (watch folders) para importación automática de contenido.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "folder" |
| sub | string | Sí | Debe ser "delete" |
| folder_id | integer | Sí | ID de la carpeta de vigilancia |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "folder_watch"
- La acción "delete" elimina la configuración de la carpeta de vigilancia
Bloqueo de User Agents
Gestiona user agents bloqueados en el sistema.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "useragent" |
| sub | string | Sí | Debe ser "delete" |
| ua_id | integer | Sí | ID del user agent bloqueado |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "block_uas"
- La acción "delete" elimina la regla de bloqueo del user agent
Bloqueo de ISPs
Gestiona ISPs bloqueados en el sistema.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "isp" |
| sub | string | Sí | Debe ser "delete" |
| isp_id | integer | Sí | ID del ISP bloqueado |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "block_isps"
- La acción "delete" elimina la regla de bloqueo del ISP
Bloqueo de IPs
Gestiona IPs bloqueadas en el sistema.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "ip" |
| sub | string | Sí | Debe ser "delete" |
| ip | integer | Sí | ID de la IP bloqueada |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "block_ips"
- La acción "delete" elimina la regla de bloqueo de la IP y elimina la regla de iptables en todos los servidores
Gestión de Servidores
Gestiona servidores de streaming, permitiendo eliminar, matar conexiones, iniciar y detener todas las transmisiones.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "server" |
| sub | string | Sí | Acción a realizar: "delete", "kill", "start", "stop" |
| server_id | integer | Sí | ID del servidor |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_server"
- La acción "delete" elimina el servidor solo si puede ser eliminado (can_delete=1)
- La acción "kill" termina todas las conexiones activas en el servidor
- Las acciones "start"/"stop" inician/detienen todas las transmisiones en el servidor
Gestión de Paquetes
Gestiona paquetes de suscripción, permitiendo eliminar y modificar atributos.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "package" |
| sub | string | Sí | Acción a realizar: "delete", "is_trial", "is_official", "can_gen_mag", "can_gen_e2", "only_mag", "only_e2" |
| package_id | integer | Sí | ID del paquete |
| value | integer | Condicional | Valor a establecer (0 o 1) para las acciones de cambio de atributos |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_package"
- La acción "delete" elimina el paquete
- Las demás acciones modifican atributos específicos del paquete:
- "is_trial": Define si el paquete es de prueba
- "is_official": Define si el paquete es oficial
- "can_gen_mag": Define si se pueden generar dispositivos MAG
- "can_gen_e2": Define si se pueden generar dispositivos Enigma2
- "only_mag": Define si el paquete es exclusivo para MAG
- "only_e2": Define si el paquete es exclusivo para Enigma2
Obtener Información de Paquete
Obtiene información detallada sobre un paquete y sus bouquets.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "get_package" |
| package_id | integer | Sí | ID del paquete |
| user_id | integer | No | ID del usuario (opcional, para calcular fecha de expiración) |
Devuelve un objeto JSON con información detallada del paquete y sus bouquets.
Ejemplo de respuesta exitosa:
{
"result": true,
"bouquets": [
{
"id": 1,
"bouquet_name": "Deportes",
"bouquet_channels": [123, 124, 125],
"bouquet_series": []
},
{
"id": 2,
"bouquet_name": "Películas",
"bouquet_channels": [],
"bouquet_series": [10, 11, 12]
}
],
"data": {
"id": 5,
"bouquets": "[1,2]",
"cost_credits": 10,
"official_duration": 30,
"official_duration_in": "days",
"max_connections": 1,
"can_gen_mag": 1,
"can_gen_e2": 1,
"only_mag": 0,
"only_e2": 0,
"exp_date": "2025-06-26"
}
}
- Si el paquete no existe, devuelve
{"result": false} - El campo "exp_date" se calcula basado en la duración del paquete
- Si se proporciona user_id, la fecha de expiración se calcula a partir de la fecha actual del usuario
- Los costos pueden ser modificados por la configuración override_packages del revendedor
Obtiene información detallada sobre un paquete de prueba y sus bouquets.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "get_package_trial" |
| package_id | integer | Sí | ID del paquete |
Devuelve un objeto JSON con información detallada del paquete de prueba y sus bouquets.
La estructura es similar a la respuesta de get_package, pero con datos de trial.
Gestión de Grupos
Gestiona grupos de miembros, permitiendo eliminar y modificar atributos.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "group" |
| sub | string | Sí | Acción a realizar: "delete", "is_banned", "is_admin", "is_reseller" |
| group_id | integer | Sí | ID del grupo |
| value | integer | Condicional | Valor a establecer (0 o 1) para las acciones de cambio de atributos |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_group"
- La acción "delete" solo elimina grupos que pueden ser eliminados (can_delete=1)
- Las demás acciones modifican atributos específicos del grupo:
- "is_banned": Define si el grupo está prohibido
- "is_admin": Define si el grupo tiene permisos de administrador
- "is_reseller": Define si el grupo tiene permisos de revendedor
Gestión de Bouquets
Gestiona bouquets (agrupaciones de canales), permitiendo eliminarlos.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "bouquet" |
| sub | string | Sí | Debe ser "delete" |
| bouquet_id | integer | Sí | ID del bouquet |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_bouquet"
- La acción "delete" elimina el bouquet del sistema
- No se eliminan las transmisiones o series asociadas, solo la agrupación
Gestión de Categorías
Gestiona categorías de transmisiones, permitiendo eliminarlas.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "category" |
| sub | string | Sí | Debe ser "delete" |
| category_id | integer | Sí | ID de la categoría |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "edit_cat"
- La acción "delete" elimina la categoría
- Las transmisiones asociadas no se eliminan, pero quedarán sin categoría asignada
Obtener Transmisiones
Obtiene información detallada sobre transmisiones específicas.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "streams" |
| stream_ids | JSON string | Sí | Array JSON de IDs de transmisiones |
Devuelve un objeto JSON con información detallada de las transmisiones solicitadas.
Ejemplo de respuesta exitosa:
{
"result": true,
"data": [
{
"id": 123,
"stream_display_name": "Canal Deportes HD",
"stream_source": "rtmp://example.com/live/stream1",
"type": 1,
"category_id": 5,
"stream_icon": "http://example.com/icon.jpg",
"epg_channel_id": "sports.tv",
"added": "2023-05-01",
"custom_sid": "",
"tv_archive": 0,
"direct_source": 0,
"tv_archive_duration": 0
},
// Más transmisiones...
]
}
- Requiere permisos de administrador con "streams"
- El parámetro stream_ids debe ser un array JSON como "[123,456,789]"
- Devuelve información completa sobre cada transmisión solicitada
Dashboard de Reventa
Obtiene estadísticas resumidas para el dashboard de un revendedor.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "reseller_dashboard" |
Devuelve un objeto JSON con estadísticas resumidas para el revendedor.
Ejemplo de respuesta exitosa:
{
"open_connections": 150,
"online_users": 45,
"active_accounts": 200,
"credits": 500
}
- Solo disponible para cuentas de revendedor, no para administradores
- Las estadísticas solo incluyen usuarios bajo el control del revendedor
- Los créditos son los disponibles para el revendedor
Forzar Actualización EPG
Fuerza la actualización inmediata de los datos EPG (Electronic Program Guide).
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "force_epg" |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "epg"
- Ejecuta el script cron de EPG inmediatamente sin esperar al siguiente ciclo programado
- La actualización completa puede tardar varios minutos dependiendo de la cantidad de datos
Limpiar Registros
Elimina registros (logs) del sistema dentro de un rango de fechas especificado.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "clear_logs" |
| type | string | Sí | Tipo de registros a limpiar: "client_logs", "stream_logs", "user_activity", "credits_log", "reg_userlog", "watch_output" |
| from | string | No | Fecha de inicio en formato YYYY-MM-DD. Si se omite, se eliminan todos los registros hasta 'to' |
| to | string | No | Fecha de fin en formato YYYY-MM-DD. Si se omite, se eliminan todos los registros desde 'from' |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador específicos según el tipo de registro
- Si se omiten tanto 'from' como 'to', se eliminan todos los registros del tipo especificado
- Esta operación es irreversible, asegúrese de hacer una copia de seguridad si es necesario
- Los rangos de fechas son inclusivos
Enviar Evento a Dispositivo MAG
Envía eventos a dispositivos MAG como mensajes, reproducción de canales o reinicio.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "send_event" |
| data | JSON string | Sí | Objeto JSON con la configuración del evento |
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| id | integer | Sí | ID del dispositivo MAG |
| type | string | Sí | Tipo de evento: "send_msg", "play_channel", "reboot", "reset_stb_lock" |
| message | string | Condicional | Mensaje a mostrar para "send_msg" o ID del canal para "play_channel" |
| reboot_portal | integer | Condicional | Si se debe reiniciar el portal después de "send_msg" (0 o 1) |
| need_confirm | integer | Condicional | Si el usuario debe confirmar el mensaje (0 o 1) |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "manage_events"
- El evento se coloca en una cola y se procesa cuando el dispositivo MAG se conecta
- Ejemplo de data para enviar mensaje:
{"id":123,"type":"send_msg","message":"Mensaje importante","need_confirm":1,"reboot_portal":0} - Ejemplo de data para reproducir canal:
{"id":123,"type":"play_channel","message":"456"}donde 456 es el ID del canal
Autenticación de API
Autenticación en el panel de administración para obtener acceso a la API.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "login" |
| username | string | Sí | Nombre de usuario del administrador o revendedor |
| password | string | Sí | Contraseña de la cuenta |
Devuelve un objeto JSON con la información de sesión y token de acceso.
Ejemplo de respuesta exitosa:
{
"result": true,
"auth_token": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"user_info": {
"id": 1,
"username": "admin",
"group_id": 1,
"is_admin": 1,
"is_reseller": 0,
"allowed_pages": [...],
"allowed_actions": [...]
}
}
Ejemplo de respuesta fallida:
{
"result": false,
"message": "Credenciales inválidas"
}
- El token de autenticación debe incluirse en todas las solicitudes API posteriores
- Los tokens tienen un tiempo de caducidad basado en la configuración del sistema
- La información de usuario incluye permisos específicos que determinan qué endpoints puede acceder
- Se recomienda almacenar el token de forma segura y no compartirlo
Estadísticas de Usuario
Obtiene estadísticas detalladas sobre la actividad de un usuario específico.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "user_statistics" |
| user_id | integer | Sí | ID del usuario |
| range | string | No | Rango de tiempo: "day", "week", "month", "year". Por defecto: "day" |
Devuelve un objeto JSON con estadísticas detalladas de uso.
Ejemplo de respuesta exitosa:
{
"result": true,
"data": {
"connections": [
{"time": "2023-05-01 10:00:00", "count": 5},
{"time": "2023-05-01 11:00:00", "count": 8},
// Más datos...
],
"total_connections": 120,
"unique_ips": 15,
"stream_categories": [
{"category": "Deportes", "count": 45},
{"category": "Películas", "count": 30},
// Más datos...
],
"devices": [
{"type": "Android", "count": 75},
{"type": "iOS", "count": 30},
// Más datos...
]
}
}
- Requiere permisos de administrador o ser el revendedor del usuario
- Las estadísticas incluyen patrones de uso, dispositivos preferidos y categorías más vistas
- Los datos se agregan según el rango de tiempo seleccionado
- Para rangos grandes (año), los datos pueden estar más agregados que para rangos pequeños (día)
Gestión de Series
Permite gestionar series completas, incluyendo obtener información y eliminar series.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "series" |
| sub | string | Sí | Acción a realizar: "get_info", "delete" |
| series_id | integer | Sí | ID de la serie |
Para "get_info":
{
"result": true,
"data": {
"id": 123,
"title": "Breaking Bad",
"plot": "Un profesor de química diagnosticado con cáncer...",
"releaseDate": "2008-01-20",
"cover": "http://example.com/covers/breaking_bad.jpg",
"genre": "Drama, Crimen",
"cast": "Bryan Cranston, Aaron Paul, Anna Gunn",
"director": "Vince Gilligan",
"seasons": 5,
"episodes": 62,
"tmdb_id": 1396,
"rating": 9.4
}
}
Para "delete":
{
"result": true
}
- Requiere permisos de administrador con "edit_series"
- La acción "delete" elimina la serie y todos sus episodios asociados
- "get_info" devuelve todos los detalles disponibles sobre la serie, incluyendo metadatos de TMDB si están disponibles
- Esta API gestiona series completas, para gestionar episodios individuales use el endpoint de episodios
Gestión de Dispositivos Enigma
Gestiona dispositivos Enigma2, permitiendo borrar dispositivos o reiniciarlos.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "enigma" |
| sub | string | Sí | Acción a realizar: "delete", "reboot" |
| device_id | integer | Sí | ID del dispositivo Enigma |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true
}
- Requiere permisos de administrador con "manage_e2"
- La acción "delete" elimina el dispositivo de la base de datos
- La acción "reboot" envía una señal de reinicio al dispositivo si está en línea
- Para que el reinicio funcione, el dispositivo debe tener configurado correctamente el acceso remoto
Panel de Configuración
Permite leer y modificar la configuración global del sistema.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "settings" |
| sub | string | Sí | Acción a realizar: "get", "set" |
| key | string | Sí | Clave de configuración a leer o modificar |
| value | string | Condicional | Valor a establecer (requerido solo para "set") |
Para "get":
{
"result": true,
"data": {
"key": "server_name",
"value": "Main Server"
}
}
Para "set":
{
"result": true
}
- Requiere permisos de administrador con "settings"
- Algunas configuraciones críticas pueden requerir reiniciar ciertos servicios para aplicarse
- Claves comunes incluyen: "server_name", "allow_registrations", "message_of_day", "auto_update"
- Tenga cuidado al modificar configuraciones del sistema, ya que pueden afectar la funcionalidad global
Reiniciar Servicios
Permite reiniciar servicios específicos del sistema o todos los servicios a la vez.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | Debe ser "restart_services" |
| service | string | Sí | Servicio a reiniciar: "nginx", "php", "mysql", "stream", "all" |
Devuelve un objeto JSON con un campo result indicando éxito o fracaso.
Ejemplo de respuesta exitosa:
{
"result": true,
"message": "Servicio reiniciado correctamente"
}
- Requiere permisos de administrador con "restart_services"
- El reinicio de servicios puede causar interrupciones temporales en el sistema
- Servicios disponibles para reiniciar:
- nginx: Reinicia el servidor web
- php: Reinicia el procesador PHP
- mysql: Reinicia el servidor de base de datos
- stream: Reinicia los servicios de streaming
- all: Reinicia todos los servicios del sistema
- El reinicio completo puede tardar varios minutos
- Es recomendable realizar esta operación en momentos de baja demanda