Ir al contenido

API y CLI — primeros pasos

Todo lo que haces en el panel de PlusPanel pasa por una única API REST pública, /api/v1. Puedes llamar a la misma API desde scripts, desde tus propios sistemas, desde la herramienta de línea de comandos pluspanel y desde las bibliotecas cliente para Go y TypeScript. Está disponible en todas las ediciones, incluida la Free.

  • Los mismos permisos que en el panel. Una petición solo se permite si el usuario que está detrás puede hacer lo mismo en el panel. Una clave de API puede restringir esos permisos, nunca ampliarlos.
  • Auditada. Cada cambio hecho con una clave de API queda en el registro de auditoría, con el id de la clave.
  • Un único contrato. La referencia de la API se genera a partir del mismo documento OpenAPI con el que se construye el plano de control, así que siempre está al día.

En el panel, abre Ajustes → API y elige Crear clave de API. Ponle un nombre, elige sus scopes (para una primera prueba bastan servers:read y accounts:read) y, si quieres, una fecha de caducidad y una lista de IP permitidas. La clave se muestra una sola vez: cópiala en tu gestor de secretos. Tiene este aspecto:

ppk_k3nmw2x7q4tz_8lV0m1Q2… (ppk_<id de clave>_<secreto>)

Las claves se explican en detalle en Autenticación y claves de API.

La API está en la dirección de tu panel, bajo /api/v1. Envía la clave como bearer token:

Ventana de terminal
export PLUSPANEL_URL="https://panel.example.com"
export PLUSPANEL_API_KEY="ppk_…"
curl -fsS "$PLUSPANEL_URL/api/v1/servers?limit=20" \
-H "Authorization: Bearer $PLUSPANEL_API_KEY"

La respuesta es JSON. Las colecciones se paginan con un cursor:

{
"items": [
{
"id": "6f1c2d3e-…",
"name": "web-01",
"status": "enrolled",
"public_ipv4": "203.0.113.10",
"created_at": "2026-10-19T09:12:44Z"
}
],
"next_cursor": "eyJ…"
}

Después, lista las cuentas de alojamiento a las que tienes acceso, en todos los servidores:

Ventana de terminal
curl -fsS "$PLUSPANEL_URL/api/v1/accounts" -H "Authorization: Bearer $PLUSPANEL_API_KEY"

Y lanza un sitio WordPress en una de ellas. Las peticiones que modifican algo aceptan un Idempotency-Key, así que un reintento tras un error de red nunca crea un segundo sitio:

Ventana de terminal
curl -fsS -X POST "$PLUSPANEL_URL/api/v1/accounts/$ACCOUNT_ID/sites" \
-H "Authorization: Bearer $PLUSPANEL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"primary_domain": "shop.example.com", "title": "Shop", "admin_email": "owner@example.com"}'

El sitio se crea en el acto (installing) y la respuesta incluye el job_id que lo instala. Para esta llamada la clave necesita el scope sites:write.

Ventana de terminal
curl -fsSL https://get.pluspanel.net/cli.sh | sh
pluspanel login --api-url "$PLUSPANEL_URL" # apruebas en el navegador, con tu 2FA
pluspanel servers list
pluspanel accounts list -o json | jq -r '.items[].id'

Consulta la página de la CLI para instalarla en Windows, verificar la firma, usar perfiles y trabajar en CI.