An identity is a named persona an agent acts as, governed by the policy layer.
The identity object
string
Unique id (e.g.
idn_01H...).string
Human-readable name.
string | null
What this persona is for; helps agents choose between multiple identities.
string[]
Inbox addresses on verified domains.
string[]
Provisioned numbers in E.164.
string[]
Web domains attached to the identity.
string[]
IDs of authorized third-party connections.
object
Arbitrary key/value pairs.
string
Creation timestamp.
string
When the persona was last changed.
Create an identity
POST /v1/identities
string
required
Human-readable name.
string
What the persona does. Defaults to
null.object
Arbitrary key/value pairs.
emails, phones, domains and connections are reads of sub-resources minted through their own routes — inboxes, numbers and connections — and sending either list here is refused with validation_failed.
List, retrieve, delete
Update an identity
PATCH /v1/identities/{id}
string
New human-readable name.
string
New description. Send
null to clear it.object
Replaces the metadata object wholesale.
emails, phones, domains, connections — cannot be patched here; manage them through their own routes.
Binding identities to agents
The grant is a many-to-many edge, and it hangs off the agent — the question it answers is which personas that agent may act as. Four routes, read from either side.Attach an identity
POST /v1/agents/{id}/identities — scope agents:write
string
required
The
idn_ identity to grant.attached: true and created: false, so a re-run of a provisioning script is safe.
not_found (404) for an unknown agent or identity; insufficient_scope (403) without agents:write.
Detach an identity
DELETE /v1/agents/{id}/identities/{identity_id} — scope agents:write
Removes the grant. The identity itself is untouched and stays available to any other agent that holds it. Sessions already running under the persona are not interrupted; the next session cannot select it.
List an agent’s identities
GET /v1/agents/{id}/identities — scope agents:read. A paginated list of full identity objects — which personas may this agent wear.
List an identity’s agents
GET /v1/identities/{id}/agents — scope agents:read. A paginated list of agent references — who may wear this persona. The reverse direction of the same edge, and the one to check before deleting an identity.
Sub-resources
Next: vaults
Write-only credentials injected at the network boundary.