AI Pilot API
Onderhouden door: Aether365 Team Doelgroep: Ontwikkelaars Scope: Remediatie-endpoints van AI Pilot - automatische fixes genereren, beoordelen en toepassen
AI Pilot zet mislukte bevindingen uit je Compliance- en Exposure-scans om in automatische fixes. Via de API kun je een remediatieplan voor een scan genereren, de voorgestelde wijzigingen beoordelen en de fixes toepassen die je goedkeurt. Een fix toepassen is altijd een expliciete aanroep die jij doet: er wordt niets gewijzigd totdat je erom vraagt.
Vereisten
AI Pilot-endpoints vereisen de AI Pilot-rechten (Pro of Enterprise) en een Microsoft 365-verbinding die is gekoppeld in AI Pilot-modus (write-consent). Een alleen-lezen verbinding kan plannen genereren en lezen, maar geen fixes toepassen. Aanroepen geven 403 AUTH_INSUFFICIENT_SCOPE terug wanneer de rechten ontbreken.
Automatisch remedieerbare checks opvragen
Geeft de check-ID's terug die AI Pilot automatisch kan herstellen. Gebruik dit om per bevinding te bepalen of er een automatische fix beschikbaar is.
GET /tenants/me/remediation/capabilitiesVoorbeeldresponse
json
{
"success": true,
"data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}Een remediatieplan genereren
Bouwt een remediatieplan voor een voltooide scan: één item per herstelbare mislukte bevinding, elk met de huidige waarde, de voorgestelde veilige waarde en de instelling waarop het zich richt. Het lezen van de huidige waarde gebruikt de leesscope van de AI Pilot-verbinding; er wordt niets geschreven.
POST /tenants/me/scans/{scanId}/remediation-planVoorbeeldverzoek
bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
-H "Authorization: Bearer ak_live_..."Voorbeeldresponse
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
}
]
}
}Remediatieplannen opvragen
Geeft de remediatieplannen van de tenant terug, nieuwste eerst, elk met zijn items en samengevatte status.
GET /tenants/me/remediation-plansStatuswaarden van een plan
| Status | Betekenis |
|---|---|
pending | Gegenereerd, nog niets toegepast |
completed | Elk item toegepast en geverifieerd |
partially_applied | Sommige items toegepast, andere mislukt of nog open |
failed | Geen enkel item kon worden toegepast |
Een remediatieplan opvragen
GET /tenants/me/remediation-plans/{planId}Geeft één plan terug (met zijn items), beperkt tot jouw tenant. Een plan dat aan een andere tenant toebehoort geeft 404 NOT_FOUND terug.
Een remediatieplan toepassen
Past de geselecteerde items toe via de AI Pilot-verbinding: elke instelling wordt via Microsoft Graph geschreven en daarna opnieuw gelezen om te bevestigen dat de wijziging effect heeft gehad. Items die je niet opgeeft blijven ongemoeid, en een al geverifieerd item wordt nooit opnieuw toegepast.
POST /tenants/me/remediation-plans/{planId}/applyVerzoekbody
| Veld | Type | Beschrijving |
|---|---|---|
itemIds | string[] | ID's van de toe te passen planitems |
Voorbeeldverzoek
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"] }'Voorbeeldresponse
Het volledige plan wordt teruggegeven met de bijgewerkte status van elk item en, bij een fout, een error die uitlegt waarom.
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"
}
]
}
}Statuswaarden van een item
| Status | Betekenis |
|---|---|
verified | Toegepast en bevestigd door een herlezing |
applied | Toegepast; Microsoft heeft de propagatie nog niet bevestigd (later opnieuw gecontroleerd) |
failed | Kon niet worden toegepast - zie error (bijv. write consent ontbreekt) |
pending | Niet toegepast in deze aanroep |
Menselijke goedkeuring blijft behouden
Er is geen "alles toepassen"-sneltoets. Jij kiest het plan en de exacte items om toe te passen, dus een geautomatiseerde workflow houdt nog steeds een mens (of een bewuste beslissing) in de lus.