# API reference

The panel exposes a JSON API used by the dashboard. All routes require an
authenticated session (cookie) or a bearer token; all data is scoped to your
account.

## Repos

| Method | Path | Purpose |
|---|---|---|
| GET | `/api/repos` | List your repos |
| POST | `/api/repos` | Add a repo |
| GET | `/api/repos/{id}` | Repo detail |
| PATCH | `/api/repos/{id}` | Update settings (focus, verify_cmd, team, schedule, explore…) |
| POST | `/api/repos/{id}/run` | Trigger a run |
| GET | `/api/repos/{id}/runs` | Recent runs for the repo |

## Explore mode

| Method | Path | Purpose |
|---|---|---|
| POST | `/api/repos/{id}/explore` | Kick a read‑only scout (Pro+) |
| GET | `/api/repos/{id}/candidates` | Proposed candidates |
| GET | `/api/repos/{id}/explore-stats` | Campaign counts (proposed/selected/rejected/done) |
| POST | `/api/candidates/{id}/run` | Apply a candidate's focus+gate and run it |
| POST | `/api/candidates/{id}/reject` | Dismiss a candidate |

## Runs

| Method | Path | Purpose |
|---|---|---|
| GET | `/api/runs` | List runs |
| GET | `/api/runs/{id}` | Run detail |
| GET | `/api/runs/{id}/bus` | Live agent bus for the run |
| POST | `/api/runs/{id}/pr` | [Recover a PR](/docs/recovering-a-pr) for a pushed run |

## Workers

| Method | Path | Purpose |
|---|---|---|
| GET | `/api/worker/status` | Connected workers + health/probes |
| GET | `/api/worker/models?cli=…` | Models available on a worker |
| POST | `/api/worker/probe` | On‑demand reachability test of a `{cli, model}` |
| PATCH | `/api/workers/{id}` | Enable/disable a worker |

## Memory

| Method | Path | Purpose |
|---|---|---|
| GET | `/api/repos/{id}/memories` | List repo memories |
| POST | `/api/repos/{id}/memories` | Add a memory |
| DELETE | `/api/repos/{id}/memories/{mid}` | Delete a memory |

## Related

- [Reading a run](/docs/reading-runs) · [Explore mode](/docs/explore-mode)
