Agent Estate Wills, death certificates, and compliance snapshots for agent lifecycle management — Phase 4 of the Aira accountability stack.
All endpoints require a Bearer token (Authorization: Bearer aira_live_xxxxx). Base URL: https://api.airaproof.com/api/v1
PUT /api/v1/estate/agents/{agent_slug}/will
Authorization : Bearer aira_live_xxxxx
Creates or updates the will for an agent. The will defines what happens when the agent is decommissioned — successor assignment, data retention policy, and notification rules.
Field Type Required Description successor_slugstring No Agent slug that inherits responsibilities succession_policystring Yes transfer_to_successor, archive, or deletedata_retention_daysinteger No How long to retain action records after death notify_emailsstring[] No Email addresses to notify on death instructionsstring No Free-text instructions for succession
Field Type Description typestring email, webhook, or slacktargetstring Email address, webhook URL, or Slack channel
curl -X PUT https://api.airaproof.com/api/v1/estate/agents/procurement-agent/will \
-H "Authorization: Bearer aira_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"successor_slug": "procurement-agent-v2",
"succession_policy": "transfer_to_successor",
"data_retention_days": 2555,
"notify_emails": [
{ "type": "email", "target": "ops@example.com" },
{ "type": "webhook", "target": "https://example.com/hooks/agent-death" }
]
}'
{
"agent_slug" : "procurement-agent" ,
"will" : {
"successor_slug" : "procurement-agent-v2" ,
"succession_policy" : "transfer_to_successor" ,
"data_retention_days" : 2555 ,
"notify_emails" : [
{ "type" : "email" , "target" : "ops@example.com" },
{ "type" : "webhook" , "target" : "https://example.com/hooks/agent-death" }
],
"updated_at" : "2026-03-24T10:00:00.000Z"
}
}
Status Code Description 400 INVALID_POLICYPolicy must be transfer, archive, or destroy 404 AGENT_NOT_FOUNDAgent does not exist 404 SUCCESSOR_NOT_FOUNDSuccessor agent slug does not exist
GET /api/v1/estate/agents/{agent_slug}/will
Authorization : Bearer aira_live_xxxxx
Returns the current will for an agent, or 404 if no will has been set.
{
"agent_slug" : "procurement-agent" ,
"will" : {
"successor_slug" : "procurement-agent-v2" ,
"succession_policy" : "transfer_to_successor" ,
"data_retention_days" : 2555 ,
"notify_emails" : [
{ "type" : "email" , "target" : "ops@example.com" },
{ "type" : "webhook" , "target" : "https://example.com/hooks/agent-death" }
],
"updated_at" : "2026-03-24T10:00:00.000Z"
}
}
POST /api/v1/estate/agents/{agent_slug}/death-certificate
Authorization : Bearer aira_live_xxxxx
Issues a death certificate for a decommissioned agent. The agent must already be decommissioned via POST /agents/{slug}/decommission before a death certificate can be issued. If a will exists, succession is triggered automatically.
Field Type Required Description causestring Yes Cause of death (e.g. replaced, deprecated, security_incident, end_of_life) notesstring No Additional context
curl -X POST https://api.airaproof.com/api/v1/estate/agents/procurement-agent/death-certificate \
-H "Authorization: Bearer aira_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"cause": "replaced",
"notes": "Replaced by procurement-agent-v2 with EU directive compliance"
}'
{
"agent_slug" : "procurement-agent" ,
"death_certificate" : {
"certificate_id" : "dc_01J9G..." ,
"cause" : "replaced" ,
"notes" : "Replaced by procurement-agent-v2 with EU directive compliance" ,
"issued_at" : "2026-03-24T12:30:00.000Z" ,
"issued_by" : "user_01J9C..."
},
"succession" : {
"triggered" : true ,
"successor_slug" : "procurement-agent-v2" ,
"succession_policy" : "transfer_to_successor" ,
"transfer_receipt_id" : "rct_01J9G..."
}
}
Status Code Description 404 AGENT_NOT_FOUNDAgent does not exist 409 ALREADY_DECEASEDDeath certificate already issued 422 NOT_DECOMMISSIONEDAgent must be decommissioned before a death certificate can be issued
GET /api/v1/estate/agents/{agent_slug}/death-certificate
Authorization : Bearer aira_live_xxxxx
Returns the death certificate for an agent, or 404 if none has been issued.
{
"agent_slug" : "procurement-agent" ,
"death_certificate" : {
"certificate_id" : "dc_01J9G..." ,
"cause" : "replaced" ,
"notes" : "Replaced by procurement-agent-v2 with EU directive compliance" ,
"issued_at" : "2026-03-24T12:30:00.000Z" ,
"issued_by" : "user_01J9C..."
},
"succession" : {
"triggered" : true ,
"successor_slug" : "procurement-agent-v2" ,
"succession_policy" : "transfer_to_successor" ,
"transfer_receipt_id" : "rct_01J9G..."
}
}
POST /api/v1/estate/compliance
Authorization : Bearer aira_live_xxxxx
Creates a point-in-time compliance snapshot for an agent against a regulatory framework. Snapshots are immutable once created.
Field Type Required Description frameworkstring Yes Regulatory framework (e.g. eu_ai_act, sr_11_7, gdpr, iso_42001) agent_slugstring Yes Agent to evaluate findingsobject[] Yes Compliance findings (see below) overall_statusstring Yes compliant, non_compliant, or partialnotesstring No Auditor notes
Field Type Description requirementstring Specific requirement (e.g. Art. 12 — Automatic logging) statusstring pass, fail, or partialevidencestring Description of evidence or action IDs
curl -X POST https://api.airaproof.com/api/v1/estate/compliance \
-H "Authorization: Bearer aira_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"framework": "eu_ai_act",
"agent_slug": "procurement-agent",
"findings": [
{
"requirement": "Art. 12 — Automatic logging",
"status": "pass",
"evidence": "All actions notarized with cryptographic receipts"
},
{
"requirement": "Art. 14 — Human oversight",
"status": "pass",
"evidence": "Human authorization required for transactions > €1,000"
}
],
"overall_status": "compliant",
"notes": "Reviewed by external compliance team"
}'
{
"snapshot_uuid" : "cs_01J9H..." ,
"framework" : "eu_ai_act" ,
"agent_slug" : "procurement-agent" ,
"overall_status" : "compliant" ,
"finding_count" : 2 ,
"pass_count" : 2 ,
"fail_count" : 0 ,
"created_at" : "2026-03-24T17:00:00.000Z" ,
"created_by" : "user_01J9C..."
}
Status Code Description 400 EMPTY_FINDINGSAt least one finding is required 404 AGENT_NOT_FOUNDAgent does not exist
GET /api/v1/estate/compliance?page=1&per_page=20
Authorization : Bearer aira_live_xxxxx
Returns a paginated list of compliance snapshots.
Parameter Type Description pageinteger Page number (default: 1) per_pageinteger Items per page (default: 20, max: 100) frameworkstring Filter by framework agent_slugstring Filter by agent
{
"snapshots" : [
{
"snapshot_uuid" : "cs_01J9H..." ,
"framework" : "eu_ai_act" ,
"agent_slug" : "procurement-agent" ,
"overall_status" : "compliant" ,
"finding_count" : 2 ,
"created_at" : "2026-03-24T17:00:00.000Z"
}
],
"pagination" : {
"page" : 1 ,
"per_page" : 20 ,
"total" : 12
}
}