Detalle de una anomalía
GET/api/public/v1/anomalies/{public_id}
curl --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/anomalies/<anomaly_public_id>' \ -H "Authorization: Bearer $OPENLATCH_API_KEY"import jsonimport osimport urllib.request
request = urllib.request.Request( 'https://app.openlatch.ai/api/public/v1/anomalies/<anomaly_public_id>', method='GET', headers={ 'Authorization': 'Bearer ' + os.environ['OPENLATCH_API_KEY'], },)with urllib.request.urlopen(request) as response: text = response.read().decode() print(json.dumps(json.loads(text), indent=2) if text else response.status)#!/usr/bin/env bashset -euo pipefail
curl -sS --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/anomalies/<anomaly_public_id>' \ -H "Authorization: Bearer $OPENLATCH_API_KEY" | jq .$headers = @{ Authorization = "Bearer $env:OPENLATCH_API_KEY"}Invoke-RestMethod -Method GET -Uri 'https://app.openlatch.ai/api/public/v1/anomalies/<anomaly_public_id>' -Headers $headers | ConvertTo-Json -Depth 20Autorización
Sección titulada «Autorización»| Rol en la organización | Este punto de conexión |
|---|---|
owner | Permitido |
admin | Permitido |
editor | Permitido |
viewer | Permitido |
Una clave tiene el rol que su propietario ocupa en la organización. Consulte Autenticación.
Ámbito de la clave de API: triage:read
Parámetros de ruta
Sección titulada «Parámetros de ruta»| Parámetro | Tipo | Descripción |
|---|---|---|
public_id | string | Obligatorio. |
Respuesta
Sección titulada «Respuesta»- 200 OK — la llamada se completó correctamente.
- 401 Unauthorized —
UNAUTHORIZED - 402 Payment Required —
license_expired - 403 Forbidden —
FEATURE_DISABLED,FORBIDDEN,INSUFFICIENT_SCOPE - 404 Not Found —
NOT_FOUND - 422 Unprocessable Content —
INVALID_ID,VALIDATION_ERROR - 429 Too Many Requests —
TOO_MANY_REQUESTS - 500 Internal Server Error —
INTERNAL_SERVER_ERROR,tenant_isolation_violation - 503 Service Unavailable —
ENGINE_UNAVAILABLE,FEATURE_STATE_UNAVAILABLE,SERVICE_UNAVAILABLE
Campos de la respuesta
Sección titulada «Campos de la respuesta»| Campo | Tipo | Descripción |
|---|---|---|
data | object | Obligatorio. |
data.agent | object or null | |
data.agent.display_name | string | Obligatorio. |
data.agent.id | string | Obligatorio. |
data.agent.owner | object or null | |
data.agent.placement | object or null | |
data.agent_id | string or null | |
data.archived_at | string (date-time) or null | |
data.ask_fallback | string — one of allow, block or null | The matched intent's ask_fallback: block means the agent was denied until answered (AZ-4 AC-29). |
data.ask_ground_id | string or null | |
data.ask_recommendation | object or null | The 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_at | object or null | Obligatorio. When it became ready. |
data.ask_recommendation.id | string (uuid) | Obligatorio. Pass as recommendation_id when answering. |
data.ask_recommendation.language | string | Obligatorio. BCP 47 tag of the reasons. |
data.ask_recommendation.provenance | string — one of model, demo | Obligatorio. demo for a suggestion composed locally on a demo organization, model otherwise. |
data.ask_recommendation.reasons | array of object | Obligatorio. 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.scope | object or null | Obligatorio. One of the Ask's offered scopes; null while drafting. |
data.ask_recommendation.status | string — one of drafting, ready | Obligatorio. |
data.ask_recommendation.verdict | object or null | Obligatorio. Null while drafting. |
data.ask_scope_proposals | array of object | |
data.ask_scope_proposals[].covers | string | Obligatorio. |
data.ask_scope_proposals[].proposed_by | string — one of system, click_through, consent_guard | |
data.ask_scope_proposals[].scope | string — one of exact_action, resource_class, rule_agent, rule_zone | Obligatorio. |
data.atom_id | string or null | |
data.dimension | string or null | |
data.id | string | Obligatorio. |
data.impact | string or null | |
data.intent_count | integer | Obligatorio. |
data.intents | array of object | |
data.intents[].atom_class | string | Obligatorio. |
data.intents[].dimension | string | Obligatorio. |
data.intents[].hold_mode | string | Obligatorio. |
data.intents[].id | string | Obligatorio. |
data.intents[].matched | boolean | Obligatorio. |
data.intents[].ordinal | integer | Obligatorio. |
data.intents[].sentence | string | Obligatorio. |
data.matched_count | integer | Obligatorio. |
data.mode | string or null | |
data.occurred_at | string (date-time) | Obligatorio. |
data.policy | object or null | |
data.policy.display_title | string | The AIP's name: its title, else its generated_title, else its statement. |
data.policy.id | string | Obligatorio. |
data.policy.layer_label | object or null | |
data.policy.layer_unit_id | object or null | |
data.policy.mode | string | Obligatorio. |
data.policy.owner_user_id | object or null | |
data.policy.public_id | string | Obligatorio. |
data.policy.statement | string | Obligatorio. |
data.policy.status | string | Obligatorio. |
data.policy.version | integer | Obligatorio. |
data.policy.zone_id | string | Obligatorio. |
data.policy_public_id | string or null | |
data.public_id | string | Obligatorio. |
data.read_at | string (date-time) or null | |
data.record | object or null | |
data.record.action_value_masked | object or null | |
data.record.effects | array of object | |
data.record.enforced | boolean | Obligatorio. |
data.record.mode | object or null | |
data.record.occurred_at | string (date-time) | Obligatorio. |
data.record.optimize_context | object or null | |
data.record.result | string | Obligatorio. |
data.record.surface | object or null | |
data.record.tool_name | object or null | |
data.record.verdict | string | Obligatorio. |
data.record.would_have_verdict | object or null | |
data.recurrence | object | Obligatorio. |
data.recurrence.in_14d | integer | Obligatorio. |
data.recurrence.others | integer | Obligatorio. |
data.recurrence.this_agent | integer | Obligatorio. |
data.status | string | Obligatorio. |
data.title | string | Obligatorio. |
data.verdict | string or null | |
data.why | string | Obligatorio. |
data.zone_id | string or null | |
data.zone_layers | array of object | |
data.zone_layers[].label | string | Obligatorio. |
data.zone_layers[].unit_id | string | Obligatorio. |
data.zone_path | string or null |
Ejemplo de respuesta
Sección titulada «Ejemplo de respuesta»{ "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" }}