---
title: "List runs linked to a budget control"
method: GET
path: "/v1/controls/workspace/budgets/{budgetControlId}/runs"
tags: ["Controls"]
---

# List runs linked to a budget control

`GET /v1/controls/workspace/budgets/{budgetControlId}/runs`

Cursor-paginated list of run junctions for a budget control. Defaults to the current time window when windowStart is omitted.

## Path parameters

- `budgetControlId` string, required — Budget control ID (ULID).

## Query parameters

- `windowStart` string — ISO 8601 timestamp selecting a specific window. Defaults to the current window when omitted.
- `status` 'HELD' | 'SETTLED' | 'RELEASED' — Filter runs by junction status.
- `limit` integer — Max items per page (server-side cap applies).
- `cursor` string — Cursor returned by the previous page.

## Response `200`

Budget control runs page

- object
  - `items` WorkspaceBudgetRun[], required
    - `budgetControlId` string, required
    - `runId` string, required — Run ID (ULID).
    - `holdAmount` number, required — Estimated cost reserved at run start, in dollars.
    - `settledAmount` number, nullable, required — Actual cost at settlement, in dollars. Null while HELD.
    - `currency` 'USD', required
    - `status` 'HELD' | 'SETTLED' | 'RELEASED' | 'ABORTED' | 'BLOCKED', required
    - `snapshot` object, required
      - `period` 'HOUR' | 'DAY' | 'WEEK' | 'MONTH', required
      - `limitAmount` number, required
      - `windowStart` string, date-time, required
    - `createdAt` string, date-time, required
    - `settledAt` string, date-time, nullable, required
  - `cursor` string, nullable, required — Opaque cursor for the next page. Null on the last page.

## Other responses

- `400` — Bad request — input failed validation
- `401` — Unauthorized — missing or invalid credentials
- `403` — Forbidden — caller has no workspace or no access
- `404` — Budget control not found
- `500` — Internal server error

## Changes

- **2026-09-25** `5abada71ceae` — 65 warning
  - added the new `IDENTITY_ALREADY_LINKED` enum value to the `errorCode` response property for the response status `400`
  - added the new `IDENTITY_ALREADY_LINKED` enum value to the `errorCode` response property for the response status `401`
  - added the new `IDENTITY_ALREADY_LINKED` enum value to the `errorCode` response property for the response status `403`
  - added the new `IDENTITY_ALREADY_LINKED` enum value to the `errorCode` response property for the response status `404`
  - …61 more
- **2026-09-23** `fadab791136c` — 5 warning
  - added the new `X402_UNBOUNDED_PRICE` enum value to the `errorCode` response property for the response status `400`
  - added the new `X402_UNBOUNDED_PRICE` enum value to the `errorCode` response property for the response status `401`
  - added the new `X402_UNBOUNDED_PRICE` enum value to the `errorCode` response property for the response status `403`
  - added the new `X402_UNBOUNDED_PRICE` enum value to the `errorCode` response property for the response status `404`
  - …1 more
- **2026-09-11** `9874d9e34fcf` — 5 info
  - added the optional property `errorCode` to the response with the `400` status
  - added the optional property `errorCode` to the response with the `401` status
  - added the optional property `errorCode` to the response with the `403` status
  - added the optional property `errorCode` to the response with the `404` status
  - …1 more

[Change history](https://skmtc.dev/monid/apis/monid-api/changes/v1/controls/workspace/budgets/:budgetControlId/runs/get.md)

---

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