API key scopes
Every API key holds scopes, and every operation it can reach needs one of them. A key that lacks the scope an operation needs is refused with INSUFFICIENT_SCOPE, which names the missing scope. A scope ending in :write also grants the matching :read scope.
org:read
Section titled “org:read”Read the organization's org units through the public API.
Kind:read
org:write
Section titled “org:write”Create, change and delete org units through the public API.
Kind: write · Also grants: org:read
POST /api/public/v1/org-unitsDELETE /api/public/v1/org-units/{unit_id}PATCH /api/public/v1/org-units/{unit_id}
zones:read
Section titled “zones:read”Read Autonomy Zones, their Ask behaviour, their dictionary and agents' zone assignments through the public API.
Kind:read
GET /api/public/v1/agents/{agent_id}/zoneGET /api/public/v1/org-units/{unit_id}/zone/previewGET /api/public/v1/zonesGET /api/public/v1/zones/{zone_id}GET /api/public/v1/zones/{zone_id}/agentsGET /api/public/v1/zones/{zone_id}/ask-settingsGET /api/public/v1/zones/{zone_id}/dictionary
zones:write
Section titled “zones:write”Create and change Autonomy Zones, their Ask behaviour and their dictionary, and assign agents to zones through the public API.
Kind: write · Also grants: zones:read
DELETE /api/public/v1/agents/{agent_id}/zonePUT /api/public/v1/agents/{agent_id}/zonePOST /api/public/v1/org-units/{unit_id}/zoneDELETE /api/public/v1/zones/{zone_id}PATCH /api/public/v1/zones/{zone_id}/ask-settingsDELETE /api/public/v1/zones/{zone_id}/defaultPUT /api/public/v1/zones/{zone_id}/defaultPOST /api/public/v1/zones/{zone_id}/dictionary/tablesDELETE /api/public/v1/zones/{zone_id}/dictionary/tables/{name}DELETE /api/public/v1/zones/{zone_id}/dictionary/tables/{name}/valuesPOST /api/public/v1/zones/{zone_id}/dictionary/tables/{name}/values
policies:read
Section titled “policies:read”Read intent policies and stated policy through the public API.
Kind:read
policies:write
Section titled “policies:write”Change intent policies and stated policy through the public API.
Kind: write · Also grants: policies:read
POST /api/public/v1/policies/statedDELETE /api/public/v1/policies/{public_id}PATCH /api/public/v1/policies/{public_id}PATCH /api/public/v1/policies/{public_id}/ask-settingsPOST /api/public/v1/policies/{public_id}/copyPOST /api/public/v1/policies/{public_id}/editDELETE /api/public/v1/policies/{public_id}/intent-policies/{intent_policy_id}/cases/{case_id}DELETE /api/public/v1/policies/{public_id}/intent-policies/{intent_policy_id}/decisivePOST /api/public/v1/policies/{public_id}/promotePATCH /api/public/v1/policies/{public_id}/titlePOST /api/public/v1/policies/{public_id}/versions/{version}/applyPOST /api/public/v1/zones/{zone_id}/policy-attachmentsDELETE /api/public/v1/zones/{zone_id}/policy-attachments/{public_id}
proposals:read
Section titled “proposals:read”Read learning proposals through the public API.
Kind:read
proposals:write
Section titled “proposals:write”Accept and dismiss learning proposals through the public API.
Kind: write · Also grants: proposals:read
POST /api/public/v1/learning-proposals/{public_id}/acceptPOST /api/public/v1/learning-proposals/{public_id}/dismiss
presets:read
Section titled “presets:read”Read the organization's policy presets and their rules through the public API.
Kind:read
presets:write
Section titled “presets:write”Change the organization's policy presets and their rules through the public API.
Kind: write · Also grants: presets:read
POST /api/public/v1/policy-presetsDELETE /api/public/v1/policy-presets/{key}PATCH /api/public/v1/policy-presets/{key}POST /api/public/v1/policy-presets/{key}/rulesDELETE /api/public/v1/policy-presets/{key}/rules/{rule_id}
aip:read
Section titled “aip:read”Read Agent Intent Policy authoring through the public API (beta).
Kind:read
GET /api/public/v1/aip/authoring-metadataGET /api/public/v1/aip/drafts/{public_id}GET /api/public/v1/aip/jobs/{job_id}
aip:write
Section titled “aip:write”Author Agent Intent Policies through the public API (beta).
Kind: write · Also grants: aip:read
POST /api/public/v1/aip/draftsDELETE /api/public/v1/aip/drafts/{public_id}PATCH /api/public/v1/aip/drafts/{public_id}DELETE /api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}PATCH /api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}POST /api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/answersPATCH /api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/cases/{index}POST /api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/fixPOST /api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/fix/applyPOST /api/public/v1/aip/drafts/{public_id}/preparePOST /api/public/v1/aip/drafts/{public_id}/ratifyPOST /api/public/v1/aip/drafts/{public_id}/replayPOST /api/public/v1/aip/sources
triage:read
Section titled “triage:read”Read anomalies, Ask grounds and holds through the public API.
Kind:read
GET /api/public/v1/anomaliesGET /api/public/v1/anomalies/{public_id}GET /api/public/v1/asksGET /api/public/v1/holds
triage:write
Section titled “triage:write”Answer anomalies, Ask grounds and holds through the public API.
Kind: write · Also grants: triage:read
PATCH /api/public/v1/anomalies/{public_id}POST /api/public/v1/asks/{ground_id}/answerPOST /api/public/v1/asks/{ground_id}/snoozePOST /api/public/v1/holds/{native_tool_use_id}/answer
alerts:read
Section titled “alerts:read”Read security alerts through the public API.
Kind:read
alerts:write
Section titled “alerts:write”Change security alerts through the public API.
Kind: write · Also grants: alerts:read
DELETE /api/public/v1/alerts/{alert_id}PATCH /api/public/v1/alerts/{alert_id}/dismissPATCH /api/public/v1/alerts/{alert_id}/readPATCH /api/public/v1/alerts/{alert_id}/restorePATCH /api/public/v1/alerts/{alert_id}/unread
agents:read
Section titled “agents:read”Read agents, their ownership, sessions, execution graph and inventory sessions through the public API.
Kind:read
GET /api/public/v1/agentsGET /api/public/v1/agents/{agent_id}GET /api/public/v1/agents/{agent_id}/execution-graphGET /api/public/v1/agents/{agent_id}/execution-graph/node-eventsGET /api/public/v1/agents/{agent_id}/ownershipGET /api/public/v1/agents/{agent_id}/ownership/privilegesGET /api/public/v1/agents/{agent_id}/sessionsGET /api/public/v1/agents/{agent_id}/sessions/summaryGET /api/public/v1/inventory/sessions
agents:write
Section titled “agents:write”Change agents, their ownership and sessions through the public API.
Kind: write · Also grants: agents:read
DELETE /api/public/v1/agents/{agent_id}PATCH /api/public/v1/agents/{agent_id}PATCH /api/public/v1/agents/{agent_id}/ownershipPOST /api/public/v1/agents/{agent_id}/ownership/recheckDELETE /api/public/v1/agents/{agent_id}/sessionsDELETE /api/public/v1/sessions/{session_id}PATCH /api/public/v1/sessions/{session_id}
host:run
Section titled “host:run”Run the OpenLatch client on a host: send events, fetch the policy bundle, hold actions for review, poll alerts and read the licence state.
Kind:action
-
POST /api/v1/alerts/ack-all -
GET /api/v1/alerts/pending -
POST /api/v1/alerts/{alert_id}/ack -
POST /api/v1/events/ingest -
POST /api/v1/holds -
GET /api/v1/holds/{native_tool_use_id} -
POST /api/v1/hosts/identity -
GET /api/v1/hosts/self -
DELETE /api/v1/hosts/self/credential -
GET /api/v1/license/state -
GET /api/v1/policy/bundle
host:enroll
Section titled “host:enroll”Enroll a host and receive its host credential.
Kind:action
-
POST /api/v1/hosts/enroll
Read the key's own user and organization, and revoke the key itself. Every key holds it.
Kind: implicit · You cannot grant it when you create a key.
GET /api/public/v1/users/me/context-
DELETE /api/v1/api-keys/self -
GET /api/v1/users/me -
DELETE /api/v1/users/me/api-keys/self
legacy
Section titled “legacy”Full access (legacy): every operation the key reached before scopes. Held only by keys created before scopes, never combined with another scope.
Kind: marker · You cannot grant it when you create a key.
An operation listed under no scope is not available to scoped keys: only a Full access (legacy) key reaches it.