# Get a run

Source: https://langbot.ai/docs/api/sim/get-run

`GET /v1/sim/runs/{run_id}`

One of your runs with its full scorecard.

**Auth.** An API token: `Authorization: Bearer lb_…` ([create one](https://langbot.ai/app/tokens)). Signed-in web sessions work too.

**Limits.** Counts against your plan's API requests (60, 600 or 3,000 a minute on Free, Builder and Standard).

## Parameters

### Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `run_id` | string | yes | The run id from [Run a simulation](https://langbot.ai/docs/api/sim/create-run). |

## Request

**curl**

```bash
curl "https://api.langbot.ai/v1/sim/runs/run_01K8Z3" \
  -H "Authorization: Bearer $LANGBOT_API_TOKEN"
```

**Python**

```python
from langbot import LangbotClient

async with LangbotClient() as lb:  # reads LANGBOT_API_TOKEN
    run = await lb.sim_get_run("run_01K8Z3")
    print(run["scorecard"])
```

**TypeScript**

```ts
const res = await fetch("https://api.langbot.ai/v1/sim/runs/run_01K8Z3", {
  headers: { Authorization: `Bearer ${process.env.LANGBOT_API_TOKEN}` },
});
console.log(await res.json());
```

## Response

`200 OK`

```json
{ "id": "run_01K8Z3…", "kind": "server", "event_id": "ev_kxearningsmentiongs_26oct13", "strategy": "buy_yes_on_first_counting_hit", "scorecard": { "by_latency": [] }, "created_at": 1793500000000 }
```

## Errors

| Status | `code` | When |
|---|---|---|
| 404 | `not_found` | No run with that id on your account. |
| 401 | `auth_required` | No token was sent. |
| 401 | `token_invalid` | The token was not recognised (mistyped, revoked or expired). |
| 422 | `validation_error` | A parameter failed validation; `detail[].loc` names it. |
| 429 | `rate_limited` | Over your request budget; wait `Retry-After` seconds. |

Every error body is `{"detail": …, "code": "…"}`; branch on `code`. All codes: [Errors](https://langbot.ai/docs/api#errors).
