---
title: "Get Observability Session Transcript"
method: GET
path: "/agentic/observability/sessions/{session_id}/transcript"
tags: ["Agents Observability"]
---

# Get Observability Session Transcript

`GET /agentic/observability/sessions/{session_id}/transcript`

Full transcript timeline for one session.

Reads ``streamkap_agent_transcript`` (the Flink-runtime transcript
stream). A row is one chat call, tool call, or final output emission;
they share an ``iteration_id`` when they belong to the same input
record's processing chain. Rows are returned oldest-first.

Tenant + service scoping enforced at the query layer — a session id
that belongs to another tenant or sibling service simply returns an
empty ``rows`` list, identical to "session not found / expired".
No existence leak across tenants.

## Path parameters

- `session_id` string, required

## Response `200`

Successful Response

- ObservabilityTranscriptResponse — `/agentic/observability/sessions/{session_id}/transcript` envelope. Rows are returned oldest-first so the FE can render the timeline in natural reading order without an additional sort. ``truncated`` is ``True`` when the BE applied a defensive row cap on the underlying ClickHouse read (rare; happens when a runaway agent produced an unusually long session). The FE should surface a "showing first N rows" notice; full transcript is not paginatable at this endpoint (sessions are conceptually one timeline).
  - `session_id` string, required
  - `rows` ObservabilityTranscriptRow[], required
    - `event_timestamp` string, date-time, required
    - `agent_id` string, required
    - `iteration_id` string, required
    - `session_id` string, nullable
    - `operation` 'chat' | 'tool_call' | 'output', required
    - `provider` string, nullable
    - `model` string, nullable
    - `input_tokens` integer
    - `output_tokens` integer
    - `tool_name` string, nullable
    - `tool_call_id` string, nullable
    - `duration_ms` integer
    - `status` string, required
    - `error_code` string, nullable
    - `error_message` string, nullable
    - `payload_truncated` boolean
    - `payload_text` string, nullable
  - `truncated` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/streamkap/apis/streamkap-rest-api.md) · [All operations](https://skmtc.net/streamkap/apis/streamkap-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/streamkap/streamkap-rest-api/versions/8aea6143d003/schema)
