Lister les éléments Ask
GET/api/public/v1/asks
curl --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/asks' \ -H "Authorization: Bearer $OPENLATCH_API_KEY"import jsonimport osimport urllib.request
request = urllib.request.Request( 'https://app.openlatch.ai/api/public/v1/asks', 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/asks' \ -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/asks' -Headers $headers | ConvertTo-Json -Depth 20Autorisation
Section intitulée « Autorisation »| Rôle dans l’organisation | Ce point de terminaison |
|---|---|
owner | Autorisé |
admin | Autorisé |
editor | Autorisé |
viewer | Autorisé |
Une clé porte le rôle que son propriétaire détient dans l’organisation. Voir Authentification.
Portée de clé d’API : triage:read
Paramètres de requête
Section intitulée « Paramètres de requête »| Paramètre | Type | Description |
|---|---|---|
zone | string (uuid) or null | |
agent | string or null | |
overdue | boolean | |
page | integer | |
page_size | integer |
- 200 OK — l’appel a réussi.
- 401 Unauthorized —
UNAUTHORIZED - 402 Payment Required —
license_expired - 403 Forbidden —
FEATURE_DISABLED,FORBIDDEN,INSUFFICIENT_SCOPE - 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 —
FEATURE_STATE_UNAVAILABLE,SERVICE_UNAVAILABLE
Champs de la réponse
Section intitulée « Champs de la réponse »| Champ | Type | Description |
|---|---|---|
data | array of object | Obligatoire. |
data[].action_value_masked | string or null | |
data[].agent_answer | string — one of approved_in_agent, unanswered_in_agent, unobservable_in_agent or null | What the agent's own prompt came to, when this ASK was also delivered there (mode both): approved_in_agent — the tool ran, so the developer approved it; unanswered_in_agent — nothing ran within ten minutes (refused, abandoned or not delivered — never claimed as a denial); unobservable_in_agent — the agent gives no event to observe the answer. null for an ASK delivered only in the platform, or before any of these is known (AZ-4 D-I16-21, handoff gap 8). |
data[].agent_id | string or null | |
data[].ask_fallback | string — one of allow, block or null | What happens to the agent's action while this ASK is unanswered: allow — it ran and was flagged; block — the agent was denied until someone answers (AZ-4 AC-29). null when the atom is gone. |
data[].atom_id | string or null | |
data[].atom_sentence | string | Obligatoire. |
data[].dimension | string or null | |
data[].first_seen_at | string (date-time) | Obligatoire. |
data[].id | string | Obligatoire. |
data[].last_seen_at | string (date-time) | Obligatoire. |
data[].nudged_at | string (date-time) or null | |
data[].occurrences | integer | Obligatoire. |
data[].overdue | boolean | Obligatoire. |
data[].policy_id | string or null | |
data[].policy_public_id | string or null | |
data[].policy_status | string or null | |
data[].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[].sample_anomaly_id | string or null | |
data[].scope_proposals | array of object | |
data[].snoozed_until | string (date-time) or null | |
data[].zone_id | string or null | |
page | integer | Obligatoire. |
page_size | integer | Obligatoire. |
total | integer | Obligatoire. |
Exemple de réponse
Section intitulée « Exemple de réponse »{ "data": [ { "action_value_masked": "string", "agent_answer": "approved_in_agent", "agent_id": "agt_01jbwa2k1vfrn9y42xhgxhmzj2", "ask_fallback": "allow", "atom_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "atom_sentence": "string", "dimension": "string", "first_seen_at": "2026-01-15T14:32:05Z", "id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "last_seen_at": "2026-01-15T14:32:05Z", "nudged_at": "2026-01-15T14:32:05Z", "occurrences": 3, "overdue": false, "policy_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "policy_public_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "policy_status": "string", "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" }, "sample_anomaly_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "scope_proposals": [ { "covers": "string", "proposed_by": "system", "scope": "exact_action" } ], "snoozed_until": "2026-01-15T14:32:05Z", "zone_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10" } ], "page": 1, "page_size": 3, "total": 3}