> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kair.is/llms.txt
> Use this file to discover all available pages before exploring further.

# Admin

> Admin-only endpoints for system configuration, user management, and job monitoring.

<Note>
  All endpoints on this page require an `admin` role. Regular members will receive `403 Forbidden`.
</Note>

## System configuration

Runtime configuration overrides are stored in Postgres (`app_config` table) and take precedence over `config.yml`. Changes take effect immediately — no restart needed (except switching back to local transcription on a Foresight-booted worker).

### Transcription config

`GET /api/admin/system/transcription-config`
`PUT /api/admin/system/transcription-config`

```json theme={null}
{
  "client": "foresight",
  "foresight_realtime_model": "whisper-large-v3",
  "foresight_final_model": "whisper-large-v3",
  "diarize": true
}
```

`base_url` and `api_key` are not exposed here — set them in `config.yml`.

### HiRAG config

`GET /api/admin/system/hirag-config`
`PUT /api/admin/system/hirag-config`

Controls the AI agent client, embedding client, LLM model, embedding model, and (when using Ollama) the Ollama base URL and optional API key.

Changing the embedding model or dimension requires re-embedding all stored graph vectors.

### Summarisation config

`GET /api/admin/system/summarisation-config`
`PUT /api/admin/system/summarisation-config`

Controls the summarisation worker's Ollama URL and optional API key (separate from HiRAG's Ollama settings).

***

## Jobs

### List transcription jobs

`GET /api/admin/jobs/transcriptions`

Paginated list of all transcription jobs across all workspaces. Shows:

* **Final** jobs — one per session
* **Chunk groups** — a rolled-up row per session showing chunk count, aggregate status, and mean progress

Chunk groups are non-clickable; they give an at-a-glance view of chunk processing alongside their parent final job.

**Statuses:** `pending`, `processing`, `completed`, `failed`

Failed chunks can be re-run individually from the admin UI.

***

## User management

### List users

`GET /api/admin/users`

### Update user role

`PUT /api/admin/users/{user_id}/role`

```json theme={null}
{ "role": "admin" }
```

### Waitlist management

`GET /api/admin/waitlist`
`POST /api/admin/waitlist/{entry_id}/approve`

The waitlist holds sign-up requests that haven't been approved yet. Approving an entry creates the user account and sends an invite.

***

## Sessions (admin view)

Admins can see all sessions across all workspaces.

`GET /api/admin/sessions` — full session list with workspace context

This is separate from the member-scoped `GET /api/sessions` endpoint which only returns sessions for the authenticated user's workspaces.
