API referenceAgents

Delete an agent passport

Deprovisions an agent passport, addressed by id (uuid) or portable agentId (agt_...).

Endpoint
DELETE https://api.dairo.app/v1/agents/{id}

Deprovisions an agent passport, addressed by id (uuid) or portable agentId (agt_...). Nothing cascades: every reference to the passport — bound API keys, inboxes, sent messages, and audit entries — is retained with its agent attribution cleared to null, so historical sends stay intact but are no longer linked to the agent. Messages the agent already sent keep their signed provenance headers, but a later verify of those messages resolves unknown_agent once the attribution is gone. Returns a confirmation body { "object": "agent", "id", "agentId", "deleted": true } with HTTP 200. Requires the agents:write scope (a key restricted to specific inboxes cannot delete passports: 403), returns 404 when no in-scope passport matches, and records an agent.deleted entry in your audit log.

Scope: agents:write. Send the API key as a bearer token; Scopes lists what each one reaches.

Request

cURL
curl -X DELETE "https://api.dairo.app/v1/agents/3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer $DAIRO_API_KEY"

Path parameters

NameTypeRequiredDescription
idstringyesAgent UUID or portable agentId (agt_...).

Response

200 Success. Body: application/json, object.

FieldTypeRequiredDescription
object"agent"no
idstringno
agentIdstringno
deletedbooleanno
200
{
  "object": "agent",
  "id": "string",
  "agentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "deleted": true
}

Errors

Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.

StatusMeaning
400The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch).
401The API key is missing or invalid.
403The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted).
404No such resource in this account (resource_not_found).
422The request is well-formed but a field failed validation (validation_failed).
429Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached).
500An unexpected error; retry with backoff, then contact support (internal_error).

On this page