Documentación API Completa - Panel de Administración IPTV

Documentación completa de los endpoints para la gestión de IPTV, usuarios y administración del sistema

Gestión de Transmisiones

GET /admin/api.php?action=stream&sub={accion}&stream_id={id}&server_id={servidor}

Gestiona operaciones en transmisiones como iniciar, detener, reiniciar y eliminar.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "stream"
sub string Acción a realizar: "start", "stop", "restart", "delete"
stream_id integer ID de la transmisión
server_id integer ID del servidor donde se encuentra la transmisión
Respuesta

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
}
Notas
  • 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
GET /admin/api.php?action=movie&sub={accion}&stream_id={id}&server_id={servidor}

Gestiona operaciones en películas VOD como iniciar, detener y eliminar.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "movie"
sub string Acción a realizar: "start", "stop", "delete"
stream_id integer ID de la película
server_id integer ID del servidor donde se encuentra la película
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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
GET /admin/api.php?action=episode&sub={accion}&stream_id={id}&server_id={servidor}

Gestiona operaciones en episodios de series como iniciar, detener y eliminar.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "episode"
sub string Acción a realizar: "start", "stop", "delete"
stream_id integer ID del episodio
server_id integer ID del servidor donde se encuentra el episodio
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=user&sub={accion}&user_id={id}

Gestiona operaciones en usuarios como eliminar, activar, desactivar, banear y desbanear.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "user"
sub string Acción a realizar: "delete", "enable", "disable", "ban", "unban", "kill"
user_id integer ID del usuario
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=user_activity&sub=kill&pid={pid}

Termina una conexión específica de usuario usando su ID de proceso.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "user_activity"
sub string Debe ser "kill"
pid integer ID del proceso a terminar
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=process&server={id_servidor}&pid={pid}

Termina un proceso específico en un servidor.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "process"
server integer ID del servidor donde se ejecuta el proceso
pid integer ID del proceso a terminar
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=reg_user&sub={accion}&user_id={id}

Gestiona revendedores registrados, permitiendo eliminar, activar, desactivar y restablecer 2FA.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "reg_user"
sub string Acción a realizar: "delete", "reset" (2FA), "enable", "disable"
user_id integer ID del revendedor
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=ticket&sub={accion}&ticket_id={id}

Gestiona tickets de soporte, permitiendo eliminar, cerrar, reabrir y marcar como leído/no leído.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "ticket"
sub string Acción a realizar: "delete", "close", "reopen", "unread", "read"
ticket_id integer ID del ticket
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=mag&sub=delete&mag_id={id}

Gestiona dispositivos MAG, permitiendo eliminarlos del sistema.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "mag"
sub string Debe ser "delete"
mag_id integer ID del dispositivo MAG
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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
GET /admin/api.php?action=mag_event&sub=delete&mag_id={id}

Gestiona eventos de dispositivos MAG, permitiendo eliminarlos.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "mag_event"
sub string Debe ser "delete"
mag_id integer ID del evento MAG
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • Requiere permisos de administrador con "manage_events"
  • La acción "delete" elimina el evento MAG especificado

Gestión de EPG

GET /admin/api.php?action=epg&sub=delete&epg_id={id}

Gestiona fuentes EPG (Electronic Program Guide), permitiendo eliminarlas.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "epg"
sub string Debe ser "delete"
epg_id integer ID de la fuente EPG
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=profile&sub=delete&profile_id={id}

Gestiona perfiles de transcodificación, permitiendo eliminarlos.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "profile"
sub string Debe ser "delete"
profile_id integer ID del perfil de transcodificación
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • Requiere permisos de administrador con "tprofiles"
  • La acción "delete" elimina el perfil de transcodificación especificado

Gestión de Series

GET /admin/api.php?action=series&sub=delete&series_id={id}

Gestiona series, permitiendo eliminarlas junto con todos sus episodios.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "series"
sub string Debe ser "delete"
series_id integer ID de la serie
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=stats&server_id={id}

Obtiene estadísticas detalladas del sistema o de un servidor específico.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "stats"
server_id integer No ID del servidor (opcional, si no se proporciona, devuelve estadísticas globales)
Respuesta

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
}
Notas
  • 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

GET /admin/api.php?action=tmdb_search&type={tipo}&term={termino}&season={temporada}

Busca películas, series o temporadas en la base de datos de TMDB.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "tmdb_search"
type string Tipo de búsqueda: "movie", "series" o "season"
term string Término de búsqueda o ID de TMDB para temporadas
season integer Condicional Número de temporada (requerido si type="season")
Respuesta

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...
    ]
}
Notas
  • 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

GET /admin/api.php?action=backup&sub={accion}&filename={nombre}

Gestiona las copias de seguridad de la base de datos, permitiendo crear, restaurar y eliminar.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "backup"
sub string 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)
Respuesta

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"
    }
}
Notas
  • 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

GET /admin/api.php?action=folder&sub=delete&folder_id={id}

Gestiona carpetas de vigilancia (watch folders) para importación automática de contenido.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "folder"
sub string Debe ser "delete"
folder_id integer ID de la carpeta de vigilancia
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • Requiere permisos de administrador con "folder_watch"
  • La acción "delete" elimina la configuración de la carpeta de vigilancia

Bloqueo de User Agents

GET /admin/api.php?action=useragent&sub=delete&ua_id={id}

Gestiona user agents bloqueados en el sistema.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "useragent"
sub string Debe ser "delete"
ua_id integer ID del user agent bloqueado
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • Requiere permisos de administrador con "block_uas"
  • La acción "delete" elimina la regla de bloqueo del user agent

Bloqueo de ISPs

GET /admin/api.php?action=isp&sub=delete&isp_id={id}

Gestiona ISPs bloqueados en el sistema.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "isp"
sub string Debe ser "delete"
isp_id integer ID del ISP bloqueado
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • Requiere permisos de administrador con "block_isps"
  • La acción "delete" elimina la regla de bloqueo del ISP

Bloqueo de IPs

GET /admin/api.php?action=ip&sub=delete&ip={id}

Gestiona IPs bloqueadas en el sistema.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "ip"
sub string Debe ser "delete"
ip integer ID de la IP bloqueada
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=server&sub={accion}&server_id={id}

Gestiona servidores de streaming, permitiendo eliminar, matar conexiones, iniciar y detener todas las transmisiones.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "server"
sub string Acción a realizar: "delete", "kill", "start", "stop"
server_id integer ID del servidor
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=package&sub={accion}&package_id={id}&value={valor}

Gestiona paquetes de suscripción, permitiendo eliminar y modificar atributos.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "package"
sub string Acción a realizar: "delete", "is_trial", "is_official", "can_gen_mag", "can_gen_e2", "only_mag", "only_e2"
package_id integer ID del paquete
value integer Condicional Valor a establecer (0 o 1) para las acciones de cambio de atributos
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=get_package&package_id={id}&user_id={id_usuario}

Obtiene información detallada sobre un paquete y sus bouquets.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "get_package"
package_id integer ID del paquete
user_id integer No ID del usuario (opcional, para calcular fecha de expiración)
Respuesta

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"
    }
}
Notas
  • 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
GET /admin/api.php?action=get_package_trial&package_id={id}

Obtiene información detallada sobre un paquete de prueba y sus bouquets.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "get_package_trial"
package_id integer ID del paquete
Respuesta

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

GET /admin/api.php?action=group&sub={accion}&group_id={id}&value={valor}

Gestiona grupos de miembros, permitiendo eliminar y modificar atributos.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "group"
sub string Acción a realizar: "delete", "is_banned", "is_admin", "is_reseller"
group_id integer ID del grupo
value integer Condicional Valor a establecer (0 o 1) para las acciones de cambio de atributos
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=bouquet&sub=delete&bouquet_id={id}

Gestiona bouquets (agrupaciones de canales), permitiendo eliminarlos.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "bouquet"
sub string Debe ser "delete"
bouquet_id integer ID del bouquet
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=category&sub=delete&category_id={id}

Gestiona categorías de transmisiones, permitiendo eliminarlas.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "category"
sub string Debe ser "delete"
category_id integer ID de la categoría
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=streams&stream_ids={json}

Obtiene información detallada sobre transmisiones específicas.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "streams"
stream_ids JSON string Array JSON de IDs de transmisiones
Respuesta

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...
    ]
}
Notas
  • 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

GET /admin/api.php?action=reseller_dashboard

Obtiene estadísticas resumidas para el dashboard de un revendedor.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "reseller_dashboard"
Respuesta

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
}
Notas
  • 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

GET /admin/api.php?action=force_epg

Fuerza la actualización inmediata de los datos EPG (Electronic Program Guide).

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "force_epg"
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=clear_logs&type={tipo}&from={fecha_inicio}&to={fecha_fin}

Elimina registros (logs) del sistema dentro de un rango de fechas especificado.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "clear_logs"
type string 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'
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=send_event&data={json}

Envía eventos a dispositivos MAG como mensajes, reproducción de canales o reinicio.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "send_event"
data JSON string Objeto JSON con la configuración del evento
Parámetros del objeto JSON data
Parámetro Tipo Requerido Descripción
id integer ID del dispositivo MAG
type string 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)
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

POST /admin/api.php?action=login

Autenticación en el panel de administración para obtener acceso a la API.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "login"
username string Nombre de usuario del administrador o revendedor
password string Contraseña de la cuenta
Respuesta

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"
}
Notas
  • 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

GET /admin/api.php?action=user_statistics&user_id={id}&range={rango}

Obtiene estadísticas detalladas sobre la actividad de un usuario específico.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "user_statistics"
user_id integer ID del usuario
range string No Rango de tiempo: "day", "week", "month", "year". Por defecto: "day"
Respuesta

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...
        ]
    }
}
Notas
  • 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

GET /admin/api.php?action=series&sub={accion}&series_id={id}

Permite gestionar series completas, incluyendo obtener información y eliminar series.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "series"
sub string Acción a realizar: "get_info", "delete"
series_id integer ID de la serie
Respuesta

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
}
Notas
  • 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

GET /admin/api.php?action=enigma&sub={accion}&device_id={id}

Gestiona dispositivos Enigma2, permitiendo borrar dispositivos o reiniciarlos.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "enigma"
sub string Acción a realizar: "delete", "reboot"
device_id integer ID del dispositivo Enigma
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=settings&sub={accion}&key={clave}&value={valor}

Permite leer y modificar la configuración global del sistema.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "settings"
sub string Acción a realizar: "get", "set"
key string Clave de configuración a leer o modificar
value string Condicional Valor a establecer (requerido solo para "set")
Respuesta

Para "get":

{
    "result": true,
    "data": {
        "key": "server_name",
        "value": "Main Server"
    }
}

Para "set":

{
    "result": true
}
Notas
  • 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

GET /admin/api.php?action=restart_services&service={servicio}

Permite reiniciar servicios específicos del sistema o todos los servicios a la vez.

Parámetros
Parámetro Tipo Requerido Descripción
action string Debe ser "restart_services"
service string Servicio a reiniciar: "nginx", "php", "mysql", "stream", "all"
Respuesta

Devuelve un objeto JSON con un campo result indicando éxito o fracaso.

Ejemplo de respuesta exitosa:

{
    "result": true,
    "message": "Servicio reiniciado correctamente"
}
Notas
  • 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