Ingest Live Event — POST /ws/events/{run_id}
Ingest Live Event
Receive a live test execution event from a test runner. This endpoint is a thin producer — it enqueues the event to Redis Streams and returns 202 immediately (~1ms). The actual processing happens asynchronously in the LiveEventStreamConsumer background task.
Endpoint: POST /ws/events/{run_id}
Authentication: Send an API key in X-API-Key: <API key>.
Parameters
Section titled “Parameters”| Name | In | Required | Type | Default | Description |
|---|---|---|---|---|---|
run_id | path | yes | string | ||
X-API-Key | header | no | string or null | API key, as an alternative to the access token (see Authentication). | |
X-Webhook-Secret | header | no | string or null |
Request body
Section titled “Request body”| Content type | Body | Required |
|---|---|---|
application/json | object | yes |
Responses
Section titled “Responses”| Status | Meaning | Body |
|---|---|---|
202 | Successful Response | Not documented (application/json) |
422 | Validation Error | HTTPValidationError (application/json) |
Response fields not documented. The API specification does not describe the body of every response this endpoint returns, so this page cannot list those fields. The body is not empty. To see it, call the endpoint on your own installation. All endpoints with undocumented responses.
Errors this endpoint returns, read from its source code:
400, with the message “project_id required for run_start event”401, with the message “Live events require a project-scoped X-API-Key (or the legacy X-Webhook-Secret)”403, with messages such as “Invalid webhook secret”, “This deployment requires a project-scoped API key for live events. The shared webhook secret names no project”, “This run belongs to a different project”409503, with the message “Cannot establish run ownership right now — retry”
It can also return 401 if your credential is missing or expired, 403 if your credential does not allow this request, and 404 if the item does not exist or you cannot see it. Your role, your project membership and the key’s scope decide what a credential allows. See Errors and retries.
More details
Section titled “More details”- Group: Live Reporting
- Operation ID:
ingest_live_event_ws_events__run_id__post - Source code:
backend/app/routers/live.py, line 807 - Specification: OpenAPI JSON