Ir al contenido

Inventario de sesiones de la organización (todas las sesiones de todos los agentes, sin deduplicar)

GET/api/public/v1/inventory/sessions

The per-agent sessions list with the agent predicate dropped: every session in the caller's org, newest-first, with the owning agent's display name joined (LEFT OUTER — an orphan session whose agent row is gone still lists with a null name). A session belongs to one agent so there is NO dedup (D-05). The org-only repeated agents=<uuid> param narrows to a subset of agents before listing. Explicit WHERE organization_id on top of RLS (D-08).

Ventana de terminal
curl --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/inventory/sessions' \
-H "Authorization: Bearer $OPENLATCH_API_KEY"
Rol en la organizaciónEste punto de conexión
ownerPermitido
adminPermitido
editorPermitido
viewerPermitido

Una clave tiene el rol que su propietario ocupa en la organización. Consulte Autenticación.

Ámbito de la clave de API: agents:read

ParámetroTipoDescripción
pageinteger
page_sizeinteger
qstring or nullFree-text search (case-insensitive). Matches display_name, native_session_id, initial_prompt, and session_id (prefix match on the UUID). Excludes orphan rows.
statusstring — one of active, idle, offline or nullStatus filter, derived from last_event_at: active <5min, idle 5min-24h, offline >24h.
fromstring (date-time) or nullInclusive lower bound on last_event_at (ISO 8601).
tostring (date-time) or nullInclusive upper bound on last_event_at (ISO 8601).
agentsarray of string or nullNarrow to these agent ids before listing.
CampoTipoDescripción
dataarray of objectObligatorio.
data[].action_mixobjectDomain / file / command action counts rolled up from the agent_action_* tables.
data[].action_mix.commandsinteger
data[].action_mix.domainsinteger
data[].action_mix.filesinteger
data[].agent_display_namestring or nullOwning agent's display name. Populated only by the organization-wide GET /inventory/sessions; null on an agent's own GET /agents/{agent_id}/sessions, where the agent is already known.
data[].agent_idstringObligatorio.
data[].display_namestring or null
data[].event_countinteger
data[].first_event_atstring (date-time)Obligatorio.
data[].initial_promptstring or nullFirst user prompt captured by the ingest normalizer. Redacted + truncated.
data[].intentstring or nullWhat this session was for, in one line. The generated summary's goal when one exists, otherwise the truncated initial_prompt. The same rule resolves the session intent everywhere OpenLatch reports it, so no two reads disagree about when a summary replaces the prompt.
data[].intent_sourcestringWhich of the two intent is: summary (generated), pending (queued, showing the prompt meanwhile) or initial_prompt_fallback. intent is usable text in all three cases; this field records where it came from.
data[].is_orphanboolean
data[].last_event_atstring (date-time)Obligatorio.
data[].native_session_idstringObligatorio.
data[].platformstringObligatorio. Joined from the parent agents row for display convenience
data[].session_idstringObligatorio.
data[].verdicts_24hobjectVerdict counts over the last 24h for an Agent or Session.
data[].verdicts_24h.allowintegerActions the policy allowed
data[].verdicts_24h.askintegerActions the policy sent to Ask
data[].verdicts_24h.blockintegerActions the policy blocked
data[].verdicts_24h.totalintegerTotal events in the 24h window
pageintegerObligatorio.
page_sizeintegerObligatorio.
totalintegerObligatorio.
{
"data": [
{
"action_mix": {
"commands": 0,
"domains": 0,
"files": 0
},
"agent_display_name": "release-bot",
"agent_id": "agt_01jbwa2k1vfrn9y42xhgxhmzj2",
"display_name": "release-bot",
"event_count": 0,
"first_event_at": "2026-01-15T14:32:05Z",
"initial_prompt": "string",
"intent": "string",
"intent_source": "initial_prompt_fallback",
"is_orphan": false,
"last_event_at": "2026-01-15T14:32:05Z",
"native_session_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10",
"platform": "string",
"session_id": "ses_01jbwa2k1vfrn9y42xhgxhmzj2",
"verdicts_24h": {
"allow": 0,
"ask": 0,
"block": 0,
"total": 0
}
}
],
"page": 1,
"page_size": 3,
"total": 3
}