Skip to content

API reference

Reference generated from the production API of 2026-11-14.

Base URLhttps://app.openlatch.ai
AuthenticationAn organization API key, sent as Authorization: Bearer <key> — see Authentication.
ErrorsOne envelope for every error, with a stable code — see Errors.
ChangesAPI changelog · Versioning
Endpoint
GETList agents connected to the authenticated organization
/api/public/v1/agents
DELETEDelete an agent and cascade to all its sessions, events, and stats.
/api/public/v1/agents/{agent_id}
GETGet a single agent by ID
/api/public/v1/agents/{agent_id}
PATCHUpdate editable fields on an agent (currently: display_name).
/api/public/v1/agents/{agent_id}
GETExecution graph for one agent beta
/api/public/v1/agents/{agent_id}/execution-graph
GETEvents under one execution-graph node beta
/api/public/v1/agents/{agent_id}/execution-graph/node-events
GETRead an agent's ownership
/api/public/v1/agents/{agent_id}/ownership
PATCHOverride, link or reset an agent's ownership
/api/public/v1/agents/{agent_id}/ownership
GETRead the full privilege grant list of an agent's owner
/api/public/v1/agents/{agent_id}/ownership/privileges
POSTQueue an immediate ownership re-resolution
/api/public/v1/agents/{agent_id}/ownership/recheck
Endpoint
GETRead AIP authoring metadata beta
/api/public/v1/aip/authoring-metadata
POSTStart a draft from a source or a preset beta
/api/public/v1/aip/drafts
DELETEDiscard a draft beta
/api/public/v1/aip/drafts/{public_id}
GETOne draft and its intent policies beta
/api/public/v1/aip/drafts/{public_id}
PATCHSave the zones, the mode and the Ask overrides of a draft beta
/api/public/v1/aip/drafts/{public_id}
DELETETake one intent policy out of a draft beta
/api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}
PATCHEdit one intent policy of a draft beta
/api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}
POSTAnswer one interview card beta
/api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/answers
PATCHSet the verdict a case should get beta
/api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/cases/{index}
POSTAsk for a fix beta
/api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/fix
POSTApply a drafted fix beta
/api/public/v1/aip/drafts/{public_id}/intent-policies/{intent_policy_id}/fix/apply
POSTPrepare a revision of a draft beta
/api/public/v1/aip/drafts/{public_id}/prepare
POSTRatify and activate a draft beta
/api/public/v1/aip/drafts/{public_id}/ratify
POSTReplay a draft over past executions beta
/api/public/v1/aip/drafts/{public_id}/replay
GETPoll one authoring job beta
/api/public/v1/aip/jobs/{job_id}
POSTIngest a source document beta
/api/public/v1/aip/sources
Endpoint
GETList security alerts
/api/public/v1/alerts
DELETEHard-delete a single security alert
/api/public/v1/alerts/{alert_id}
PATCHDismiss a security alert
/api/public/v1/alerts/{alert_id}/dismiss
PATCHMark a security alert as read
/api/public/v1/alerts/{alert_id}/read
PATCHRestore an archived (dismissed) security alert
/api/public/v1/alerts/{alert_id}/restore
PATCHMark a security alert as unread
/api/public/v1/alerts/{alert_id}/unread
Endpoint
GETList learning proposals beta
/api/public/v1/learning-proposals
GETRead a learning proposal beta
/api/public/v1/learning-proposals/{public_id}
POSTAccept a learning proposal beta
/api/public/v1/learning-proposals/{public_id}/accept
POSTDismiss a learning proposal beta
/api/public/v1/learning-proposals/{public_id}/dismiss
Endpoint
POSTState sentences as a policy
/api/public/v1/policies/stated
DELETEDelete a policy
/api/public/v1/policies/{public_id}
GETRead one ratified policy
/api/public/v1/policies/{public_id}
PATCHChange the mode of a policy in one Autonomy Zone
/api/public/v1/policies/{public_id}
PATCHSet a policy's Ask delivery and Ask behaviour beta
/api/public/v1/policies/{public_id}/ask-settings
POSTCopy a policy to a zone
/api/public/v1/policies/{public_id}/copy
POSTEdit a policy: open its edit draft
/api/public/v1/policies/{public_id}/edit
DELETERemove a learned case beta
/api/public/v1/policies/{public_id}/intent-policies/{intent_policy_id}/cases/{case_id}
DELETERevoke an intent policy's decisive mark beta
/api/public/v1/policies/{public_id}/intent-policies/{intent_policy_id}/decisive
POSTPromote a policy to Enforce on the strength of an anomaly
/api/public/v1/policies/{public_id}/promote
PATCHRename a policy beta
/api/public/v1/policies/{public_id}/title
POSTApply an earlier version of a policy
/api/public/v1/policies/{public_id}/versions/{version}/apply
GETThe policies in force at one zone
/api/public/v1/zones/{zone_id}/policies
POSTAdd policies to an Autonomy Zone (removed)
/api/public/v1/zones/{zone_id}/policy-attachments
DELETERemove a policy from an Autonomy Zone (removed)
/api/public/v1/zones/{zone_id}/policy-attachments/{public_id}
Endpoint
GETList policy presets
/api/public/v1/policy-presets
POSTCreate an organization preset beta
/api/public/v1/policy-presets
DELETEDelete an organization preset beta
/api/public/v1/policy-presets/{key}
PATCHRename or describe an organization preset beta
/api/public/v1/policy-presets/{key}
POSTAdd rules to an organization preset beta
/api/public/v1/policy-presets/{key}/rules
DELETERemove a rule from an organization preset beta
/api/public/v1/policy-presets/{key}/rules/{rule_id}
Endpoint
DELETEDelete every session (and its events) for a specific agent.
/api/public/v1/agents/{agent_id}/sessions
GETList sessions for a specific agent
/api/public/v1/agents/{agent_id}/sessions
GETSummarize an agent's sessions
/api/public/v1/agents/{agent_id}/sessions/summary
GETOrg-wide sessions inventory (every session across all agents, no dedup)
/api/public/v1/inventory/sessions
DELETEDelete a session and cascade to all events and stats for that session.
/api/public/v1/sessions/{session_id}
PATCHUpdate editable fields on a session (currently: display_name).
/api/public/v1/sessions/{session_id}
Endpoint
GETAnomalies
/api/public/v1/anomalies
GETAnomaly detail
/api/public/v1/anomalies/{public_id}
PATCHPatch anomaly
/api/public/v1/anomalies/{public_id}
GETList asks
/api/public/v1/asks
POSTAnswer ask
/api/public/v1/asks/{ground_id}/answer
POSTSnooze ask
/api/public/v1/asks/{ground_id}/snooze
GETList holds
/api/public/v1/holds
POSTAnswer hold
/api/public/v1/holds/{native_tool_use_id}/answer
Endpoint
GETGet the calling user's context
/api/public/v1/users/me/context
Endpoint
DELETEReset an agent to automatic zone assignment
/api/public/v1/agents/{agent_id}/zone
GETWhat governs this agent
/api/public/v1/agents/{agent_id}/zone
PUTAssign an agent to a zone by hand
/api/public/v1/agents/{agent_id}/zone
GETList the organization's org units
/api/public/v1/org-units
POSTCreate a hand-made org unit
/api/public/v1/org-units
DELETERemove a hand-made org unit
/api/public/v1/org-units/{unit_id}
PATCHRename and/or reparent a hand-made org unit
/api/public/v1/org-units/{unit_id}
POSTCreate the autonomy zone on an org unit
/api/public/v1/org-units/{unit_id}/zone
GETWho would arrive if this unit's Autonomy Zone were enabled
/api/public/v1/org-units/{unit_id}/zone/preview
GETList the organization's autonomy zones
/api/public/v1/zones
DELETERetire an autonomy zone
/api/public/v1/zones/{zone_id}
GETRead one zone with its layer stack and counts
/api/public/v1/zones/{zone_id}
GETAgents assigned directly to this zone
/api/public/v1/zones/{zone_id}/agents
GETRead a zone's Ask settings beta
/api/public/v1/zones/{zone_id}/ask-settings
PATCHSet a zone's Ask settings beta
/api/public/v1/zones/{zone_id}/ask-settings
DELETERevert the default zone to the root
/api/public/v1/zones/{zone_id}/default
PUTMake a zone the organization's default zone
/api/public/v1/zones/{zone_id}/default
GETThe zone's dictionary beta
/api/public/v1/zones/{zone_id}/dictionary
POSTAdd a dictionary table to a zone beta
/api/public/v1/zones/{zone_id}/dictionary/tables
DELETEDelete one of a zone's own dictionary tables beta
/api/public/v1/zones/{zone_id}/dictionary/tables/{name}
DELETEDelete one of a zone's own dictionary values beta
/api/public/v1/zones/{zone_id}/dictionary/tables/{name}/values
POSTAdd values to a dictionary table beta
/api/public/v1/zones/{zone_id}/dictionary/tables/{name}/values