Ir al contenido

API de planes

Un plan es una velocidad de bajada/subida con nombre, expresada en Mbit/s. Los clientes y los servicios hacen referencia a un plan por su nombre; el router limita su tráfico a esa velocidad, y cada OLT registrada mantiene perfiles y tablas de velocidad correspondientes a ese plan (consulte la API de OLT).

La URL base, la autenticación (X-API-Key), el formato de errores y la API de acciones se describen en la descripción general de la API.

Cuando se crea, modifica o elimina un plan, el router sincroniza los perfiles de cada OLT registrada en segundo plano (una OLT a la vez, el mismo trabajo que POST /olt/sync). La respuesta no espera a que termine; su campo olt indica cuántas OLT se están actualizando, o es null cuando no hay ninguna OLT registrada.

Lista los planes, cada uno con la cantidad de clientes que lo usan. Cualquier método distinto de POST y DELETE sobre /plans responde la misma lista.

Ventana de terminal
curl -H "X-API-Key: YOUR_API_KEY" "http://ROUTER-IP:8880/plans"
{
"count": 2,
"plans": [
{
"name": "plan_100_50",
"down_mbps": 100,
"up_mbps": 50,
"comment": "Home 100",
"created": "2026-09-01 10:00:00",
"clients": 12
},
{
"name": "plan_300_150",
"down_mbps": 300,
"up_mbps": 150,
"comment": "",
"created": "2026-09-01 10:05:00",
"clients": 0
}
]
}

El conteo clients abarca únicamente los clientes basados en MAC.

Crea un plan nuevo (201). Si ya existe un plan con ese nombre, se reemplazan sus down_mbps, up_mbps y comment (200) y cada cliente con limitación de velocidad se ajusta de inmediato a las nuevas velocidades.

Nombre En Tipo Notas
name body string Obligatorio. Letras, dígitos, _ y -, de 1 a 40 caracteres.
down_mbps body integer Obligatorio. 1–100000.
up_mbps body integer Obligatorio. 1–100000.
comment body string Texto libre opcional.
Ventana de terminal
curl -X POST -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "plan_100_50", "down_mbps": 100, "up_mbps": 50, "comment": "Home 100"}' \
"http://ROUTER-IP:8880/plans"
{
"ok": true,
"code": 201,
"message": "Plan created",
"plan": {
"name": "plan_100_50",
"down_mbps": 100,
"up_mbps": 50,
"comment": "Home 100",
"created": "2026-09-28 12:00:00"
},
"olt": "profiles are being created on 1 OLT(s) in the background"
}

Una actualización responde "code": 200, "message": "Plan updated" y "olt": "profiles are being updated on …". Errores: 400 para un nombre no válido o velocidades fuera de rango.

Se rechaza con 409 mientras algún cliente siga usando el plan. El nombre también puede enviarse en el cuerpo como name (en ese caso también funciona DELETE /plans).

Nombre En Tipo Notas
name path string El plan que se eliminará.
name body string Alternativa a la ruta; tiene prioridad cuando está presente.
Ventana de terminal
curl -X DELETE -H "X-API-Key: YOUR_API_KEY" "http://ROUTER-IP:8880/plans/plan_300_150"
{
"ok": true,
"code": 200,
"message": "Plan deleted",
"olt": "profiles are being removed on 1 OLT(s) in the background"
}

Errores: 404 cuando ningún plan tiene ese nombre; 409 cuando hay clientes que lo usan:

{
"ok": false,
"code": 409,
"error": "Plan 'plan_100_50' is used by 12 client(s); reassign them first",
"clients": ["AA:BB:CC:DD:EE:FF", "..."]
}

Para asignar un plan a un cliente, use POST /plan de la API de clientes; para cambiar el plan de un servicio, use la API de servicios.

Acción Parámetros de consulta Equivale a
action=plan-list — GET /plans
action=plan-add name, down_mbps, up_mbps, comment POST /plans
action=plan-del name DELETE /plans/{name}

Este sitio fue escrito con ayuda de IA y revisado por nuestro equipo.