---
title: "GET /experimental/launch-runs/{id}/events"
method: GET
path: "/experimental/launch-runs/{id}/events"
tags: ["Launch Runs"]
---

# GET /experimental/launch-runs/{id}/events

`GET /experimental/launch-runs/{id}/events`

## Request

- Base URL: `https://api.tessl.io`
- URL: `https://api.tessl.io/experimental/launch-runs/{id}/events`
- Auth: none declared

Returns a bounded page of the active attempt's redacted system events. Poll with the returned opaque cursor to receive only new events. When hasMore is true, more events are already stored; read the next page without waiting. Empty pages preserve the cursor, and the response explicitly reports gaps or unavailable event history. Clients that advertise event_too_large in X-Tessl-Launch-Event-States receive a permanent event_too_large result that preserves the cursor. Its archive is downloadable only when its state is available; pending archives become usable after confirmation. Other clients receive a terminal gap so they do not retry an unknown state.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `after` string
- `limit` integer

## Headers

- `x-tessl-launch-event-states` string

## Response `200`

Default Response

- object
  - `data` union, required
    - object
      - `state` 'available', required
      - `events` object[], required
      - `nextCursor` string, nullable, required
      - `complete` boolean, required
      - `hasMore` boolean, required
    - object
      - `state` union, required
        - 'gap'
        - 'unavailable'
      - `events` unknown[], required
        - unknown
      - `nextCursor` string, nullable, required
      - `complete` false, required
    - object
      - `state` 'event_too_large', required
      - `events` unknown[], required
        - unknown
      - `nextCursor` string, nullable, required
      - `complete` false, required
      - `attemptId` string, required
      - `lineNumber` integer, required
      - `supportedEventBytes` integer, required
      - `archive` object, required
        - `state` union, required
          - 'pending'
          - 'available'
        - `downloadPath` string, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-21** `9ce306cb6c7c`: 1 breaking, 2 info
  - for the `query` request parameter `limit`, default value was changed from `100` to `1000`
  - for the `query` request parameter `limit`, the max was increased from `100.00` to `1000.00`
  - added the required property `data/anyOf[subschema #1]/hasMore` to the response with the `200` status
- **2026-10-08** `8cae535b1242`: 1 warning, 2 info
  - deleted the `header` request parameter `Authorization`
  - added the new optional `header` request parameter `x-tessl-launch-event-states`
  - added `subschema #3` to the `data` response property `anyOf` list for the response status `200`
- **2026-10-08** `52fd079bed2b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tessl/apis/tessl-api/changes/experimental/launch-runs/:id/events/get.md)

---

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