Ir al contenido

API de promociones

Cómo funcionan las promociones: Promociones. El equivalente en la CLI es dtvsol promo …. Autenticación y errores: consulte la descripción general de la API.

Todas las promociones (activas ahora o no) y la velocidad actual de cada plan — o en otro momento con at.

Nombre En Tipo Notas
at query string YYYY-MM-DD HH:MM (hora local del router): las velocidades en ese momento, como vista previa.
Ventana de terminal
curl -s "http://ROUTER-IP:8880/promotions" -H "X-API-Key: YOUR_API_KEY"
{
"ok": true,
"at": "2026-10-03 sat 23:30",
"preview": false,
"promotions": [
{"name": "nights", "enabled": true, "down": 3.0, "up": 1.0, "max_mbps": 1000, "days": [],
"from": "22:00", "to": "06:00", "start": null, "end": null, "plans": [], "comment": "",
"active": true, "words": "×3 down ×1 up, up to 1000 Mb/s, every day, 22:00–06:00, all plans"}
],
"plans": {
"plan_100_100": {"down_mbps": 300, "up_mbps": 100, "base_down_mbps": 100, "base_up_mbps": 100,
"promotions": ["nights"]}
},
"applied": {"speeds": {"plan_100_100": [300, 100]}, "at": "2026-10-03 23:30:00", "router_shaped": 12}
}

Agrega una promoción, o cambia la que tiene ese nombre (solo cambian los campos indicados).

Nombre En Tipo Notas
name body string 1–40 letras, dígitos, -, _. Obligatorio.
down, up body number Multiplicadores de 1 a 10 (1 = sin cambio). Al menos uno mayor que 1.
max_mbps body integer El tope en Mbit/s; 0 o null = ninguno.
days body array or string sun mon tue wed thu fri sat; vacío o all = todos los días.
from, to body string HH:MM, ambos o ninguno (ninguno = el día completo).
start, end body string YYYY-MM-DD, el primer y el último día.
plans body array or string Nombres de planes; vacío = todos los planes.
enabled body boolean Predeterminado true; false la conserva sin ponerla en marcha.
comment body string Hasta 120 caracteres.
Ventana de terminal
curl -s -X POST "http://ROUTER-IP:8880/promotions" -H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "saturday", "down": 2, "up": 2, "days": ["sat"]}'

{"ok": true, "message": "promotion saturday: ×2, sat, all plans", "promotion": {…}, "active": false, "applied": {"changed": false}}; 400 para un valor que no es válido, 404 para un plan desconocido.

Elimina una promoción; las velocidades vuelven de inmediato. 404 cuando no existe ninguna con ese nombre.

Cada servicio en cada OLT registrada, y si su service-port está en las tablas de velocidad propias de su plan (que una promoción puede aumentar solo para ese plan).

Nombre En Tipo Notas
olt query string Solo esta OLT.
{
"ok": true,
"olts": {
"olt-1": {
"shared": 1,
"services": [
{"id": "svc_1a2b3c4d", "name": "…", "plan": "plan_100_100", "pon": "0/1/3", "ont_id": 5,
"download_table": "dtvsol-r107520", "upload_table": "dtvsol-r107520", "own_tables": false}
]
}
}
}

Ejecuta plan-sync en la OLT y luego mueve cada servicio que aún está en una tabla compartida a las tablas propias de su plan, uno tras otro.

Nombre En Tipo Notas
olt body string La OLT. Obligatorio.
confirm body boolean Sin él, solo la lista de lo que se movería (dry_run: true, would_move).

{"ok": true, "moved": ["svc_…"], "failed": []}; 502 con los servicios que fallaron.

Igual que POST /promotions con el nombre en la ruta; con {"delete": true} elimina la promoción, como lo hace DELETE /promotions/{name}.

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