---
title: "Stream events"
method: GET
path: "/v1/replica/{id}/events"
tags: ["Replica"]
---

# Stream events

`GET /v1/replica/{id}/events`

## Request

- Base URL: `https://api.replicas.dev`
- URL: `https://api.replicas.dev/v1/replica/{id}/events`
- Auth: HTTP bearer

Streams replica events as server-sent events (`data: <JSON>`). Each event has `id`, `ts`, `type`, `payload`, and on current engines a `seq`; see `EngineEvent` for types. The stream opens with an `engine.stream.opened` event, and each SSE `id:` line is `<epoch>:<seq>`: reconnect with that value in `Last-Event-ID` to receive only the events you missed. A ping is sent every 15 seconds. The replica must be active, so send a message or wake it first.

## Path parameters

- `id` string, uuid, required

## Headers

- `Last-Event-ID` string
- `X-Replicas-Api-Version` '2026-10-07'

## Response `200`

SSE event stream opened successfully. Each line is a JSON-encoded `EngineEvent`.

## Other responses

- `401`: Unauthorized - Invalid or missing API key
- `404`: Resource not found
- `500`: Internal server error
- `502`: Bad gateway - The workspace is unreachable or returned an invalid response
- `503`: Service unavailable - The service is temporarily overloaded or under maintenance

---

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