AI Pilot API
Mantenido por: Aether365 Team Audiencia: Desarrolladores Alcance: Endpoints de remediación de AI Pilot - generar, revisar y aplicar correcciones automatizadas
AI Pilot convierte los hallazgos fallidos de tus análisis Compliance y Exposure en correcciones automatizadas. A través de la API puedes generar un plan de remediación para un análisis, revisar los cambios propuestos y aplicar los que apruebes. Aplicar una corrección es siempre una llamada explícita que tú realizas: no se cambia nada hasta que lo solicitas.
Requisitos
Los endpoints de AI Pilot requieren la habilitación de AI Pilot (Pro o Enterprise) y una conexión de Microsoft 365 vinculada en modo AI Pilot (write-consent). Una conexión de solo lectura puede generar y leer planes, pero no puede aplicar correcciones. Las llamadas devuelven 403 AUTH_INSUFFICIENT_SCOPE cuando falta la habilitación.
Listar checks remediables automáticamente
Devuelve los IDs de check que AI Pilot sabe corregir automáticamente. Úsalo para decidir, hallazgo por hallazgo, si hay una corrección automatizada disponible.
GET /tenants/me/remediation/capabilitiesEjemplo de respuesta
json
{
"success": true,
"data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}Generar un plan de remediación
Construye un plan de remediación para un análisis completado: un elemento por cada hallazgo fallido corregible, cada uno con el valor actual, el valor seguro propuesto y el ajuste al que apunta. La lectura del valor actual usa el ámbito de lectura de la conexión de AI Pilot; no se escribe ningún cambio.
POST /tenants/me/scans/{scanId}/remediation-planEjemplo de solicitud
bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
-H "Authorization: Bearer ak_live_..."Ejemplo de respuesta
json
{
"success": true,
"data": {
"id": "plan_abc123",
"scanId": "scan_abc123",
"msTenantId": "00000000-0000-0000-0000-000000000000",
"status": "pending",
"createdAt": "2026-06-17T09:00:00Z",
"items": [
{
"id": "item_1",
"testId": "AE.1068",
"coveredTestIds": ["AE.1068", "CIS.M365.5.1.2.3"],
"actionKey": "require_mfa_admins",
"title": "Require MFA for administrator roles",
"settingKey": "conditionalAccess.requireMfaAdmins",
"currentValue": false,
"proposedValue": true,
"status": "pending",
"appliedBy": null,
"appliedAt": null,
"error": null
}
]
}
}Listar planes de remediación
Devuelve los planes de remediación del tenant, del más reciente al más antiguo, cada uno con sus elementos y un estado consolidado.
GET /tenants/me/remediation-plansValores de estado del plan
| Estado | Significado |
|---|---|
pending | Generado, todavía no se ha aplicado nada |
completed | Todos los elementos aplicados y verificados |
partially_applied | Algunos elementos aplicados, otros fallidos o aún pendientes |
failed | No se pudo aplicar ningún elemento |
Obtener un plan de remediación
GET /tenants/me/remediation-plans/{planId}Devuelve un único plan (con sus elementos) limitado a tu tenant. Un plan que pertenece a otro tenant devuelve 404 NOT_FOUND.
Aplicar un plan de remediación
Aplica los elementos seleccionados a través de la conexión de AI Pilot: cada ajuste se escribe mediante Microsoft Graph y luego se vuelve a leer para confirmar que el cambio surtió efecto. Los elementos que no listes quedan intactos, y un elemento ya verificado nunca se vuelve a aplicar.
POST /tenants/me/remediation-plans/{planId}/applyCuerpo de la solicitud
| Campo | Tipo | Descripción |
|---|---|---|
itemIds | string[] | IDs de los elementos del plan a aplicar |
Ejemplo de solicitud
bash
curl -X POST https://api.aether365.io/tenants/me/remediation-plans/plan_abc123/apply \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{ "itemIds": ["item_1", "item_2"] }'Ejemplo de respuesta
Se devuelve el plan completo, cada elemento con su status actualizado y, en caso de fallo, un error que explica el motivo.
json
{
"success": true,
"data": {
"id": "plan_abc123",
"status": "partially_applied",
"items": [
{
"id": "item_1",
"title": "Require MFA for administrator roles",
"status": "verified",
"appliedAt": "2026-06-17T09:05:00Z",
"error": null
},
{
"id": "item_2",
"title": "Disable legacy authentication",
"status": "failed",
"error": "Write consent is missing or has expired"
}
]
}
}Valores de estado de los elementos
| Estado | Significado |
|---|---|
verified | Aplicado y confirmado mediante una relectura |
applied | Aplicado; Microsoft aún no ha confirmado la propagación (se vuelve a comprobar más tarde) |
failed | No se pudo aplicar - consulta error (p. ej. falta el write-consent) |
pending | No aplicado en esta llamada |
La aprobación humana se preserva
No existe ningún atajo de "aplicar todo". Tú eliges el plan y los elementos exactos que se aplican, de modo que un flujo de trabajo automatizado sigue manteniendo a una persona (o una decisión deliberada) en el bucle.