---
title: "Get turn events"
method: GET
path: "/api/v1/alpha/turn-events/{id}"
tags: ["alpha"]
---

# Get turn events

`GET /api/v1/alpha/turn-events/{id}`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/alpha/turn-events/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Get where one Alpha answer stands, by its turn id (the turnId alpha_conversations_send returned): whether it is still running, and the index to follow it from. With Accept: text/event-stream (REST) or an MCP progress token, the call follows the answer while it runs: each event names the index it was stored under and carries AI SDK UI message chunks for the answer's message, and the last event carries settled, what the answer became (that question's messages exactly as alpha_conversations_get_v4 returns them), so nothing is read again. A reader that comes back passes startIndex, the index after the last event it drew, and is sent only what follows. An answer that already finished is an opening event and then the settled one. An API key follows only answers in conversations it started.

## Path parameters

- `id` string, uuid, required: Alpha turn ID

## Query parameters

- `startIndex` integer: Following again: the index after the last event this reader drew (the previous nextIndex); events before it are not sent again. Omit to follow from the turn's first event

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success. With `Accept: text/event-stream`, the live events as server-sent events: one `progress` event per live event, then exactly one `result` (the output) or `error` (`OperationError`). A refusal before the first event is the ordinary JSON error.

- AlphaTurnEventsGetResponse
  - `turnId` string, uuid, required
  - `conversationId` string, uuid, required
  - `status` 'running' | 'succeeded' | 'failed' | 'cancelled', required: What the turn is now: running while it still works (a follow that ended early is followed again from nextIndex), else what it became
  - `nextIndex` integer, required: The startIndex to follow from next: the index after the last event sent

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

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