---
audience: admin
summary: Tenants, partners, plugins, model catalog, audit, statistics, AI config.
title: Admin API
path: reference/api/admin
status: published
---

# Admin API

22 endpoints. All require admin permission on the calling principal.

## Tenant configuration

| Method | Path | Purpose |
|---|---|---|
| `GET` | `/v1/admin/ai-config` | Tenant's default AI settings. |
| `PUT` | `/v1/admin/ai-config` | Update. |
| `GET` | `/v1/admin/stats` | Tenant statistics: rooms, participants, AI usage, storage. |
| `GET` | `/v1/admin/audit` | Audit log (paginated). |
| `GET` | `/v1/admin/prompt-studio` | Prompt-studio feature flag state. |
| `PUT` | `/v1/admin/prompt-studio` | Toggle feature + manage allowlist. |
| `GET` | `/v1/admin/note-processing` | Note-organisation AI config. |
| `PUT` | `/v1/admin/note-processing` | Update. |

### PUT /v1/admin/ai-config

```json
{
  "default_model": "claude-sonnet-4-6",
  "enabled_models": ["claude-sonnet-4-6", "scailar-pro"],
  "system_prompt_templates": [
    { "name": "Friendly", "prompt": "You are a friendly assistant." }
  ],
  "scaigrid_auth_mode": "per_user_exchange",
  "scaigrid_api_key": null
}
```

## Models (catalog)

| Method | Path | Purpose |
|---|---|---|
| `GET` | `/v1/admin/models/catalog` | All models from ScaiGrid, with enabled state. |
| `POST` | `/v1/admin/models/{slug:path}/enable` | Enable for the tenant. |
| `POST` | `/v1/admin/models/{slug:path}/disable` | Disable. |
| `PUT` | `/v1/admin/models/{slug:path}/participant` | Configure / re-configure the AI participant for a model. |

The `slug` is the ScaiGrid model slug (`mistralai/voxtral-small-latest`).

### PUT .../participant body

```json
{
  "local_id": "code-helper",
  "display_name": "Code Helper",
  "system_prompt": "You are a code review assistant. Prefer brevity.",
  "default_response_mode": "conversational",
  "enabled": true
}
```

## Plugins

| Method | Path | Purpose |
|---|---|---|
| `GET` | `/v1/admin/plugins` | List with per-tenant state. |
| `POST` | `/v1/admin/plugins/{plugin_id}/enable` | Enable. |
| `POST` | `/v1/admin/plugins/{plugin_id}/disable` | Disable. |

## Participants

| Method | Path | Purpose |
|---|---|---|
| `GET` | `/v1/admin/participants` | All participants in the tenant. |
| `POST` | `/v1/admin/participants/model` | Create a new model participant manually. |

(For helper config, see [Helpers and skills](/docs/scaiwave/reference/api/helpers-and-skills).)

## Tenants and partners

| Method | Path | Purpose |
|---|---|---|
| `POST` | `/v1/admin/tenants` | Create a tenant (partner-admin only). |
| `GET` | `/v1/admin/partners` | List partners. |
| `POST` | `/v1/admin/partners` | Create. |
| `GET` | `/v1/admin/partners/{partner_id}` | Detail. |
| `PUT` | `/v1/admin/partners/{partner_id}` | Update. |

Partner-admin endpoints require `partner_admin` role and operate
across the partner's tenant fleet.

## Audit

`GET /v1/admin/audit` returns:

```json
{
  "data": [
    {
      "id": "audit-…",
      "tenant_id": "abc-…",
      "actor_id": "5e4d…",
      "actor_type": "user",
      "action": "room.close",
      "resource_type": "room",
      "resource_id": "room-…",
      "metadata": { "reason": "..." },
      "ip": "10.0.0.1",
      "user_agent": "...",
      "created_at": "..."
    }
  ]
}
```

Filterable by `action`, `actor_id`, `resource_type`, `resource_id`,
`since`, `until`, `limit`.
