---
title: "Get Run"
method: GET
path: "/v1/teams/{team_id}/runs/{run_id}"
tags: ["agent runtime"]
---

# Get Run

`GET /v1/teams/{team_id}/runs/{run_id}`

## Request

- Base URL: `https://api.stormy.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stormy.ai/v1/teams/{team_id}/runs/{run_id}`
- Auth: none declared

One run's row — and, with `wait_seconds`, the row once it has SETTLED.

A long-poll, the same shape the browser voice lane's `delegate await` has
always had: subscribe to the run's live wakeups, re-read on each, answer
the moment the status leaves `_RUN_STILL_MOVING` or the deadline passes.
Correctness never rests on a wakeup — a missed NOTIFY costs one bounded
poll, not a lost answer — and a caller that sends no `wait_seconds` gets
exactly the read it always got.

## Path parameters

- `team_id` string, uuid, required
- `run_id` string, uuid, required

## Query parameters

- `wait_seconds` number

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

## Changes

> 71 revisions in range; 1 not diffed.

- **2026-09-11** `79b0c0f35170`: 1 info
  - added the new optional `query` request parameter `wait_seconds`

[Operation history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/runs/:run_id/get.md)

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/8f749ef0f9db?raw)
