Obtener el estado del modo de ataque

GET /v1/attack-protection/attack-mode · permiso attack-protection:read

Devuelve si el entorno está en modo de ataque y los periodos de modo de ataque que comenzaron en los últimos 90 días o que siguen abiertos, del más reciente al más antiguo (como máximo 100; more indica que existen periodos más antiguos dentro de ese intervalo).

Mientras el entorno esté en modo de ataque, cada paso de contraseña y de código de un solo uso exige un desafío de bot más estricto, independientemente de lo que indique bot_protection.mode. El inicio de sesión con clave de acceso y con redes sociales no se somete a desafío. Un periodo se abre de una de tres formas:

active es true solo mientras un periodo aplicado (would_have: false) cubra todo el entorno; en ese caso, active_until es el fin más tardío de esos periodos. Un periodo cuyo fin ya pasó, pero que la limpieza todavía no ha cerrado, aparece como finalizado en ends_at. Quién abrió un periodo manual consta en el registro de auditoría de gestión, no en esta respuesta.

Respuesta

200 OK

Campo Tipo Descripción
active boolean El entorno está ahora en modo de ataque.
active_until string (date-time) o null Cuándo termina el modo de ataque actual, salvo que se prolongue un periodo automático; null cuando active es false.
periods[] array Periodos, del más reciente al más antiguo.
periods[].id string Identificador del periodo, con el prefijo atm_.
periods[].scope string environment u org_domain.
periods[].org_domain string o null El dominio de correo electrónico de la organización de un periodo org_domain.
periods[].trigger string auto, manual_customer o manual_platform.
periods[].would_have boolean true: registrado en modo log, no aplicado.
periods[].trigger_value integer o null Intentos fallidos en la ventana de 5 minutos que abrieron un periodo auto; null en periodos manuales.
periods[].threshold integer o null El umbral que superó esa ventana; null en periodos manuales.
periods[].started_at string (date-time) Cuándo comenzó el periodo.
periods[].ends_at string (date-time) Cuándo termina el periodo por sí mismo. Un periodo auto se prolonga mientras continúe el ataque.
periods[].ended_at string (date-time) o null Cuándo terminó el periodo; null mientras siga abierto.
more boolean Existen periodos más antiguos en los últimos 90 días.
{
  "active": true,
  "active_until": "2026-10-20T10:00:00Z",
  "periods": [
    {
      "id": "atm_01jaz8m5c3f6t9w2y4b7d0g3k6",
      "scope": "environment",
      "org_domain": null,
      "trigger": "manual_customer",
      "would_have": false,
      "trigger_value": null,
      "threshold": null,
      "started_at": "2026-10-20T09:00:00Z",
      "ends_at": "2026-10-20T10:00:00Z",
      "ended_at": null
    }
  ],
  "more": false
}

Errores

Cada error es un cuerpo application/problem+json con un code estable.

HTTP code Cuándo
401 unauthenticated La clave de API falta, no es válida o ha sido revocada.
403 insufficient_permissions La clave no tiene el permiso attack-protection:read.
429 rate_limited Se superó el límite de frecuencia; respete Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintente más tarde.

Ejemplo

curl https://api.eu.keenauth.com/v1/attack-protection/attack-mode \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

CLI: keenauth attack-protection attack-mode get