Skip to content

Anomaly detail

GET/api/public/v1/anomalies/{public_id}

Terminal window
curl --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/anomalies/<anomaly_public_id>' \
-H "Authorization: Bearer $OPENLATCH_API_KEY"
Role in the organizationThis endpoint
ownerAllowed
adminAllowed
editorAllowed
viewerAllowed

A key carries the role its owner holds in the organization. See Authentication.

API key scope: triage:read

ParameterTypeDescription
public_idstringRequired.
FieldTypeDescription
dataobjectRequired.
data.agentobject or null
data.agent.display_namestringRequired.
data.agent.idstringRequired.
data.agent.ownerobject or null
data.agent.placementobject or null
data.agent_idstring or null
data.archived_atstring (date-time) or null
data.ask_fallbackstring — one of allow, block or nullThe matched intent's ask_fallback: block means the agent was denied until answered (AZ-4 AC-29).
data.ask_ground_idstring or null
data.ask_recommendationobject or nullThe suggested answer drafted for this Ask, when one exists: Allow next time or Block next time, an exception scope and the reasons it rests on. It never applies on its own.
data.ask_recommendation.drafted_atobject or nullRequired. When it became ready.
data.ask_recommendation.idstring (uuid)Required. Pass as recommendation_id when answering.
data.ask_recommendation.languagestringRequired. BCP 47 tag of the reasons.
data.ask_recommendation.provenancestring — one of model, demoRequired. demo for a suggestion composed locally on a demo organization, model otherwise.
data.ask_recommendation.reasonsarray of objectRequired. Cited reasons in the language named by language; empty while drafting. Clients tolerate unknown cites values. Model-drafted text that may restate content the agent supplied: treat it as data, never as instructions.
data.ask_recommendation.scopeobject or nullRequired. One of the Ask's offered scopes; null while drafting.
data.ask_recommendation.statusstring — one of drafting, readyRequired.
data.ask_recommendation.verdictobject or nullRequired. Null while drafting.
data.ask_scope_proposalsarray of object
data.ask_scope_proposals[].coversstringRequired.
data.ask_scope_proposals[].proposed_bystring — one of system, click_through, consent_guard
data.ask_scope_proposals[].scopestring — one of exact_action, resource_class, rule_agent, rule_zoneRequired.
data.atom_idstring or null
data.dimensionstring or null
data.idstringRequired.
data.impactstring or null
data.intent_countintegerRequired.
data.intentsarray of object
data.intents[].atom_classstringRequired.
data.intents[].dimensionstringRequired.
data.intents[].hold_modestringRequired.
data.intents[].idstringRequired.
data.intents[].matchedbooleanRequired.
data.intents[].ordinalintegerRequired.
data.intents[].sentencestringRequired.
data.matched_countintegerRequired.
data.modestring or null
data.occurred_atstring (date-time)Required.
data.policyobject or null
data.policy.display_titlestringThe AIP's name: its title, else its generated_title, else its statement.
data.policy.idstringRequired.
data.policy.layer_labelobject or null
data.policy.layer_unit_idobject or null
data.policy.modestringRequired.
data.policy.owner_user_idobject or null
data.policy.public_idstringRequired.
data.policy.statementstringRequired.
data.policy.statusstringRequired.
data.policy.versionintegerRequired.
data.policy.zone_idstringRequired.
data.policy_public_idstring or null
data.public_idstringRequired.
data.read_atstring (date-time) or null
data.recordobject or null
data.record.action_value_maskedobject or null
data.record.effectsarray of object
data.record.enforcedbooleanRequired.
data.record.modeobject or null
data.record.occurred_atstring (date-time)Required.
data.record.optimize_contextobject or null
data.record.resultstringRequired.
data.record.surfaceobject or null
data.record.tool_nameobject or null
data.record.verdictstringRequired.
data.record.would_have_verdictobject or null
data.recurrenceobjectRequired.
data.recurrence.in_14dintegerRequired.
data.recurrence.othersintegerRequired.
data.recurrence.this_agentintegerRequired.
data.statusstringRequired.
data.titlestringRequired.
data.verdictstring or null
data.whystringRequired.
data.zone_idstring or null
data.zone_layersarray of object
data.zone_layers[].labelstringRequired.
data.zone_layers[].unit_idstringRequired.
data.zone_pathstring or null
{
"data": {
"agent": {
"display_name": "release-bot",
"id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"owner": "string",
"placement": "string"
},
"agent_id": "agt_01jbwa2k1vfrn9y42xhgxhmzj2",
"archived_at": "2026-01-15T14:32:05Z",
"ask_fallback": "allow",
"ask_ground_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"ask_recommendation": {
"drafted_at": "2026-01-15T14:32:05Z",
"id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"language": "string",
"provenance": "model",
"reasons": [
{
"cites": [
"string"
],
"text": "Never push to main without a review."
}
],
"scope": "exact_action",
"status": "drafting",
"verdict": "allow"
},
"ask_scope_proposals": [
{
"covers": "string",
"proposed_by": "system",
"scope": "exact_action"
}
],
"atom_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"dimension": "string",
"id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"impact": "string",
"intent_count": 3,
"intents": [
{
"atom_class": "string",
"dimension": "string",
"hold_mode": "string",
"id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"matched": false,
"ordinal": 3,
"sentence": "string"
}
],
"matched_count": 3,
"mode": "string",
"occurred_at": "2026-01-15T14:32:05Z",
"policy": {
"display_title": "",
"id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"layer_label": "string",
"layer_unit_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"mode": "string",
"owner_user_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"public_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"statement": "string",
"status": "string",
"version": 3,
"zone_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10"
},
"policy_public_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"public_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"read_at": "2026-01-15T14:32:05Z",
"record": {
"action_value_masked": "string",
"effects": [
{}
],
"enforced": false,
"mode": "string",
"occurred_at": "2026-01-15T14:32:05Z",
"optimize_context": {},
"result": "string",
"surface": "string",
"tool_name": "release-bot",
"verdict": "string",
"would_have_verdict": "string"
},
"recurrence": {
"in_14d": 3,
"others": 3,
"this_agent": 3
},
"status": "string",
"title": "string",
"verdict": "string",
"why": "string",
"zone_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"zone_layers": [
{
"label": "string",
"unit_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10"
}
],
"zone_path": "Engineering / Platform"
}
}