# List an org's StarSling Disks (/api/disks/list-disks)

`GET /api/disks`

Every disk the organization's repositories keep: where steps mount it, the settings its last default-branch publisher stored (preset, size cap, change test, auto-mount), what its current contents hold and when they were published. repository_id narrows it to one repository. The caller must be a member of the org.

Base URL: `https://runners.starsling.dev`

## Authentication

Requires a bearer token (`Authorization: Bearer`).

## Parameters

| Name | In | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `org` | query | string | yes | GitHub organization login. The caller must be a member. e.g. `acme` |
| `repository_id` | query | string | no | Only this GitHub repository's disks. e.g. `892174354` |

## Responses

| Status | Description |
| --- | --- |
| `200` | An organization's StarSling Disks, by repository, name and platform. |
| `401` | No credential, or a GitHub grant too old to read org membership — re-run `sling login`. |
| `403` | You are not a member of the org named in `?org=`. |
| `422` | A query parameter failed schema validation: a missing `org`, or a non-numeric `repository_id`. |
| `500` | The request was valid; the control plane or a dependency it calls failed. |

### `200` body

- `disks` — array<object>, required
  - array of object
    - `repository_id` — string, required. The GitHub repository id the disk belongs to. e.g. `892174354`
    - `name` — string, required. The disk's name: what a step names in `name:`. e.g. `pnpm-store`
    - `platform` — string, required. The runner image and architecture it was built on. e.g. `ubuntu-24.04/x64`
    - `path` — string, required. Where steps mount it. e.g. `/home/runner/.local/share/pnpm/store`
    - `preset` — string. The preset its settings came from, if any. e.g. `pnpm-store`
    - `size_cap_bytes` — number, required. e.g. `20000000000`
    - `change_test` — string, required. What `publish: on-change` counts as a change: file contents, types, owners, modes and links, and with `content-and-mtime` modification times too, for tools that read them as freshness. `content-only`, `content-and-mtime`
    - `auto_mount` — boolean, required. Whether the runner mounts it before the job's steps, with no step: a step's `auto-mount`.
    - `size_bytes` — number, required. What its current contents hold; 0 with none. e.g. `6400000000`
    - `published_at` — string. When its current contents were published. Absent with none.
    - `disabled` — boolean, required. Disabled by StarSling: no step mounts it until it is enabled again.

### Example

```json
{
  "disks": [
    {
      "repository_id": "892174354",
      "name": "pnpm-store",
      "platform": "ubuntu-24.04/x64",
      "path": "/home/runner/.local/share/pnpm/store",
      "preset": "pnpm-store",
      "size_cap_bytes": 20000000000,
      "change_test": "content-only",
      "auto_mount": true,
      "size_bytes": 6400000000,
      "published_at": "2026-10-27T12:00:00.000Z",
      "disabled": false
    }
  ]
}
```