---
title: "List recent network studies"
method: GET
path: "/api/v1/solver/runs"
tags: ["Network Solver"]
---

# List recent network studies

`GET /api/v1/solver/runs`

## Request

- Base URL: `https://askthegrid.com`
- URL: `https://askthegrid.com/api/v1/solver/runs`
- Auth: HTTP bearer

The 50 most recent studies in the workspace, with result and progress null to keep history bounded. Read a study by ID to refresh progress and collect its persisted result.

## Response `200`

Success

- object
  - `runs` object[], required
    - `id` string, uuid, required
    - `modelId` string, uuid, required
    - `modelSha256` string, required
    - `createdAt` string, required
    - `finishedAt` string, nullable, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled', required
    - `solves` integer, required
    - `input` object, required
      - `requestId` string, uuid
      - `modelId` string, uuid, required
      - `scenarios` object[], required
        - `name` string, required
        - `loadScale` number, required
        - `outages` string[], required
        - `injections` object[], required
          - `bus` integer, required
          - `mw` number, required
          - `mvar` number, required
      - `outages` string[], required
      - `top` integer, required
    - `progress` object, nullable, required
      - `solved` number, required
      - `total` number, required
      - `batchesDone` number, required
      - `batches` number, required
      - `withNewOverloads` number, required
      - `notConverged` number, required
    - `result` union, required
      - object
        - `kind` 'ac', required
        - `study` object, required
          - `engine` string, required
          - `engine_package_version` string, required
          - `converged` boolean, required
          - `settings` object, required
          - `components` object[], required
            - `connected_component` number, required
            - `status` string, required
            - `iterations` number, required
          - `counts` object, nullable, required
            - `buses` number, required
            - `branches` number, required
            - `over_rating` number, required
            - `units_at_limit` number, required
            - `islands` number, required
            - `unsolved_islands` number, required
          - `totals` object, nullable, required
            - `generation_mw` number, required
            - `generation_mvar` number, required
            - `load_mw` number, required
            - `load_mvar` number, required
            - `loss_mw` number, required
          - `voltage` object, nullable, required
            - `band` unknown[], required
              - …
            - `below` number, required
            - `above` number, required
            - `lowest` object[], required
              - …
            - `highest` object[], required
              - …
          - `buses` object[], required
            - `number` number, required
            - `name` string, required
            - `base_kv` number, required
            - `voltage_pu` number, required
            - `voltage_kv` number, required
            - `angle_deg` number, required
          - `branches` object[], required
            - `id` string, required
            - `from_bus` number, required
            - `to_bus` number, required
            - `rating_mva` number, required
            - `from_mw` number, required
            - `from_mvar` number, required
            - `to_mw` number, required
            - `to_mvar` number, required
            - `loss_mw` number, required
            - `mva` number, required
            - `loading_percent` number, nullable, required
          - `units` object[], required
            - `bus` number, required
            - `mw` number, required
            - `mvar` number, required
            - `qmin_mvar` number, required
            - `qmax_mvar` number, required
            - `voltage_pu` number, required
            - `setpoint_pu` number, required
            - `at_limit` 'max' | 'min', nullable, required
          - `elapsed_seconds` number, required
          - `limits` string, required
      - object
        - `kind` 'grid', required
        - `grid` object, required
          - `engine` string, required
          - `engine_package_version` string, required
          - `token` string, required
          - `solves` number, required
          - `batches` number, required
          - `batches_failed` number
          - `elapsed_seconds` number, required
          - `scenarios` object[], required
            - `name` string, required
            - `base` object, required
              - …
            - `counts` object, required
              - …
            - `worst` object[], required
              - …
    - `error` string, nullable, required
    - `assumptions` string[], required

## Other responses

- `400`: The request did not match the contract.
- `401`: Missing or invalid credentials.
- `429`: Rate limit exceeded. Wait `Retry-After` seconds; `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` report the budget. Signed-in sessions and API keys have larger budgets than anonymous callers.

---

[API](https://skmtc.dev/askthegrid/apis/ask-the-grid-api.md) · [All operations](https://skmtc.dev/askthegrid/apis/ask-the-grid-api/llms.txt) · [OpenAPI document](https://skmtc.dev/askthegrid/apis/ask-the-grid-api/revisions/9cd80115e395?raw)
