---
title: "List Steep Session Events"
method: GET
path: "/api/v1/steep/sessions/{session_id}/events"
tags: ["authed"]
---

# List Steep Session Events

`GET /api/v1/steep/sessions/{session_id}/events`

## Request

- Base URL: `https://api.teaflask.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.teaflask.com/api/v1/steep/sessions/{session_id}/events`
- Auth: none declared

A journey's events in the order they happened, a page at a time.

## Path parameters

- `session_id` string, uuid, required

## Query parameters

- `after` string, nullable: The next_after of the previous page; leave out to read from the journey's start, or pass from=end instead.
- `from` 'end', nullable: end reads the journey's last events.
- `view` 'all' | 'actions'
- `limit` integer: The most events to return.

## Response `200`

Successful Response

- SteepEventPage
  - `events` SteepEventView[], required
    - `page_id` string, uuid, required: The page load the event happened on.
    - `at` string, date-time, required: When it happened, corrected for the browser's clock.
    - `url` string, nullable, required: The page the event happened on.
    - `identity` 'none' | 'verified' | 'grace' | 'expired' | 'invalid', required: How the event's sender was known when it was sent.
    - `event` union, required
      - PageViewEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'page.view', required
        - `attention` 'navigated', required
        - `url` string, required
        - `title` string, required
        - `referrer_origin` string, nullable
        - `load` 'initial' | 'restore', required
      - PageNavigateEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'page.navigate', required
        - `attention` 'navigated', required
        - `url` string, required
        - `via` 'push' | 'replace' | 'traverse' | 'hash' | 'pop' | 'reload', required
        - `after_seq` integer, nullable
      - PageAttentionEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'page.attention', required
        - `attention` 'passive', required
        - `visible` boolean, required
        - `focused` boolean, required
        - `idle` boolean, required
      - UiClickEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'ui.click', required
        - `attention` 'acted', required
        - `target` Target, required: The element an interaction landed on, described the way assistive technology would name it.
          - `role` string, required
          - `name` string, required
          - `tag` string, required
          - `input_type` string, nullable
          - `testid` string, nullable
          - `href_path` string, nullable
          - `landmarks` Landmark[]
            - `role` string, required
            - `name` string, required
          - `nth` integer, nullable
        - `input` 'mouse' | 'touch' | 'pen' | 'keyboard', required
      - FieldChangeEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'field.change', required
        - `attention` 'typed', required
        - `target` Target, required: The element an interaction landed on, described the way assistive technology would name it.
          - `role` string, required
          - `name` string, required
          - `tag` string, required
          - `input_type` string, nullable
          - `testid` string, nullable
          - `href_path` string, nullable
          - `landmarks` Landmark[]
            - `role` string, required
            - `name` string, required
          - `nth` integer, nullable
        - `value` string, nullable
        - `value_state` 'recorded' | 'redacted' | 'off', required
        - `chars` integer, nullable
        - `checked` boolean, nullable
        - `selected` string[], nullable
      - FormSubmitEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'form.submit', required
        - `attention` 'acted', required
        - `target` Target, required: The element an interaction landed on, described the way assistive technology would name it.
          - `role` string, required
          - `name` string, required
          - `tag` string, required
          - `input_type` string, nullable
          - `testid` string, nullable
          - `href_path` string, nullable
          - `landmarks` Landmark[]
            - `role` string, required
            - `name` string, required
          - `nth` integer, nullable
        - `submitter` Target: The element an interaction landed on, described the way assistive technology would name it.
          - `role` string, required
          - `name` string, required
          - `tag` string, required
          - `input_type` string, nullable
          - `testid` string, nullable
          - `href_path` string, nullable
          - `landmarks` Landmark[]
            - `role` string, required
            - `name` string, required
          - `nth` integer, nullable
      - PageOutlineEvent: A snapshot of the page's accessible outline; its text rides the batch's blobs, named by content_sha.
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'page.outline', required
        - `attention` 'acted' | 'navigated' | 'passive', required
        - `url` string, required
        - `title` string, required
        - `trigger` 'interaction' | 'navigation' | 'sweep', required
        - `shape` 'full' | 'splice' | 'repeat', required
        - `content_sha` string, required
        - `base_sha` string, nullable
        - `scope` 'page' | 'region', required
        - `elements` integer, required
        - `capture_ms` integer, required
        - `truncated` boolean, required
      - NetRequestEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'net.request', required
        - `attention` 'acted' | 'passive', required
        - `api` 'fetch' | 'xhr', required
        - `method` string, required
        - `origin` string, required
        - `path` string, required
        - `query_keys` string[], required
        - `query` string, nullable
        - `request_body` NetBody: What a request sent or its response answered, redacted and bounded; truncated says the text was cut to fit.
          - `format` 'json' | 'form' | 'text', required
          - `text` string, required
          - `truncated` boolean, required
        - `response_body` NetBody: What a request sent or its response answered, redacted and bounded; truncated says the text was cut to fit.
          - `format` 'json' | 'form' | 'text', required
          - `text` string, required
          - `truncated` boolean, required
        - `status` integer, nullable
        - `outcome` 'ok' | 'error' | 'aborted', required
        - `duration_ms` integer, required
        - `trigger_seq` integer, nullable
        - `graphql` GraphqlCall
          - `type` 'query' | 'mutation' | 'subscription', nullable
          - `operations` string[], required
        - `repeat` integer, required
      - CustomEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'custom', required
        - `attention` 'acted' | 'passive', required
        - `name` string, required
        - `properties` object, required
      - SteepStoppedEvent
        - `seq` integer, required
        - `t` integer, required
        - `kind` 'steep.stopped', required
        - `attention` 'passive', required
        - `reason` 'stop' | 'opt_out' | 'removed' | 'refused' | 'disabled' | 'internal_error', required
  - `next_after` string, nullable, required: Pass as after to read on; null when nothing more is stored, and always null with from=end.
  - `has_more` boolean, required: Reading on: whether more events may follow (a filtered page may be short while more follow). With from=end: whether earlier events come before the ones returned.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `422`: Validation error
- `500`: Internal server error
- `503`: Journey storage unavailable

## Changes

- **2026-11-03** `c6ac9fd6657f`: 7 info
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `401`
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `403`
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `404`
  - removed the `STEEP_LEARNING_DISABLED` enum value from the `error/code` response property for the response status `405`
  - …3 more

[Operation history](https://skmtc.dev/teaflask/apis/teaflask-api/changes/api/v1/steep/sessions/:session_id/events/get.md)

---

[API](https://skmtc.dev/teaflask/apis/teaflask-api.md) - [All operations](https://skmtc.dev/teaflask/apis/teaflask-api/llms.txt) - [OpenAPI document](https://skmtc.dev/teaflask/apis/teaflask-api/revisions/c6ac9fd6657f?raw)
