REST API
This reference is generated from the application routes using an empty document root. That keeps hosted docs focused on Adapt's shared API surface and excludes instance-specific, discovered resource routes.
Runtime /openapi.json remains request-aware and permission-aware.
It reflects exactly what the caller can access on that live instance.
The raw schema is available at openapi.json.
GET /
Summary: Root
Handle root requests, rendering HTML landing page or JSON API response.
Authentication: None
Response 200
No response body.
GET /admin/
Summary: Admin Ui
Render the admin UI for superusers.
Authentication: None
Response 200
No response body.
GET /admin/api-keys
Summary: List Api Keys
List all API keys in the system with optional query parameters.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
user_id |
query | any |
no | - |
is_active |
query | any |
no | - |
limit |
query | integer |
no | - |
offset |
query | integer |
no | - |
sort |
query | string |
no | - |
order |
query | string |
no | - |
filter |
query | string |
no | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
key_hash |
string |
yes | - |
user_id |
integer |
yes | - |
description |
any |
no | - |
created_at |
string (date-time) |
no | - |
expires_at |
any |
no | - |
last_used_at |
any |
no | - |
is_active |
boolean |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /admin/api-keys
Summary: Create Api Key
Create a new API key for a user.
Authentication: None
Request body
| Field | Type | Required | Description |
|---|---|---|---|
user_id |
integer |
yes | - |
description |
any |
no | - |
expires_in_days |
any |
no | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/api-keys/{key_id}
Summary: Revoke Api Key
Revoke an API key by ID.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
key_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/audit-logs
Summary: List Audit Logs
List audit logs with optional query parameters.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
user_id |
query | any |
no | - |
action |
query | any |
no | - |
resource |
query | any |
no | - |
limit |
query | integer |
no | - |
offset |
query | integer |
no | - |
sort |
query | string |
no | - |
order |
query | string |
no | - |
filter |
query | string |
no | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
timestamp |
string (date-time) |
no | - |
user_id |
any |
no | - |
action |
string |
yes | - |
resource |
any |
no | - |
details |
any |
no | - |
ip_address |
any |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/cache
Summary: List Cache Entries
List cache entries with optional query parameters.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
resource |
query | any |
no | - |
limit |
query | integer |
no | - |
offset |
query | integer |
no | - |
sort |
query | string |
no | - |
order |
query | string |
no | - |
filter |
query | string |
no | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
key |
string |
yes | - |
expires_at |
string |
yes | - |
resource |
string |
yes | - |
user |
any |
yes | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/cache
Summary: Clear Cache
Clear cache entries, optionally for a specific resource.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
resource |
query | any |
no | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/cache/{key}
Summary: Delete Cache Entry
Delete a specific cache entry.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
key |
path | string |
yes | - |
resource |
query | string |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/groups
Summary: List Groups
List all groups with optional query parameters.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
limit |
query | integer |
no | - |
offset |
query | integer |
no | - |
sort |
query | string |
no | - |
order |
query | string |
no | - |
filter |
query | string |
no | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
name |
string |
yes | - |
description |
any |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /admin/groups
Summary: Create Group
Create a new group.
Authentication: None
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
yes | - |
description |
any |
no | - |
Response 200
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
name |
string |
yes | - |
description |
any |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/groups/{group_id}
Summary: Get Group
Get a group by ID, including its users.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
group_id |
path | integer |
yes | - |
Response 200
| Field | Type | Required | Description |
|---|---|---|---|
id |
integer |
yes | - |
name |
string |
yes | - |
description |
any |
no | - |
users |
array of GroupUserRead |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/groups/{group_id}
Summary: Delete Group
Delete a group by ID.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
group_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/groups/{group_id}/permissions
Summary: List Group Permissions
List permissions assigned to a group.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
group_id |
path | integer |
yes | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
resource |
string |
yes | - |
action |
Action |
yes | - |
description |
any |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /admin/groups/{group_id}/permissions/{perm_id}
Summary: Add Permission To Group
Add a permission to a group.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
group_id |
path | integer |
yes | - |
perm_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/groups/{group_id}/permissions/{perm_id}
Summary: Remove Permission From Group
Remove a permission from a group.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
group_id |
path | integer |
yes | - |
perm_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /admin/groups/{group_id}/users/{user_id}
Summary: Add User To Group
Add a user to a group.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
group_id |
path | integer |
yes | - |
user_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/groups/{group_id}/users/{user_id}
Summary: Remove User From Group
Remove a user from a group.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
group_id |
path | integer |
yes | - |
user_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/locks
Summary: List Locks
List all active locks with optional query parameters.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
limit |
query | integer |
no | - |
offset |
query | integer |
no | - |
sort |
query | string |
no | - |
order |
query | string |
no | - |
filter |
query | string |
no | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
resource |
string |
yes | - |
owner |
string |
yes | - |
acquired_at |
string (date-time) |
no | - |
expires_at |
any |
no | - |
reason |
any |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /admin/locks/clean
Summary: Clean Stale Locks
Clean up stale locks.
Authentication: None
Response 200
No response body.
DELETE /admin/locks/{lock_id}
Summary: Release Lock
Release a specific lock by ID.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
lock_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/permissions
Summary: List Permissions
List all permissions with optional query parameters.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
limit |
query | integer |
no | - |
offset |
query | integer |
no | - |
sort |
query | string |
no | - |
order |
query | string |
no | - |
filter |
query | string |
no | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
resource |
string |
yes | - |
action |
Action |
yes | - |
description |
any |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /admin/permissions
Summary: Create Permission
Create a new permission.
Authentication: None
Request body
| Field | Type | Required | Description |
|---|---|---|---|
resource |
string |
yes | - |
action |
string |
yes | - |
description |
any |
no | - |
Response 200
| Field | Type | Required | Description |
|---|---|---|---|
id |
any |
no | - |
resource |
string |
yes | - |
action |
Action |
yes | - |
description |
any |
no | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/permissions/{perm_id}
Summary: Delete Permission
Delete a permission by ID.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
perm_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /admin/users
Summary: List Users
List all users with optional query parameters.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
limit |
query | integer |
no | - |
offset |
query | integer |
no | - |
sort |
query | string |
no | - |
order |
query | string |
no | - |
filter |
query | string |
no | - |
Response 200
Array of:
| Field | Type | Required | Description |
|---|---|---|---|
id |
integer |
yes | - |
username |
string |
yes | - |
is_active |
boolean |
yes | - |
is_superuser |
boolean |
yes | - |
created_at |
string (date-time) |
yes | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /admin/users
Summary: Create User
Create a new user.
Authentication: None
Request body
| Field | Type | Required | Description |
|---|---|---|---|
username |
string |
yes | - |
password |
string |
yes | - |
is_superuser |
boolean |
no | - |
Response 200
| Field | Type | Required | Description |
|---|---|---|---|
id |
integer |
yes | - |
username |
string |
yes | - |
is_active |
boolean |
yes | - |
is_superuser |
boolean |
yes | - |
created_at |
string (date-time) |
yes | - |
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /admin/users/{user_id}
Summary: Delete User
Delete a user by ID.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
user_id |
path | integer |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
PUT /admin/users/{user_id}/password
Summary: Reset User Password
Replace a user's password and revoke their browser sessions.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
user_id |
path | integer |
yes | - |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
new_password |
string |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
PUT /admin/users/{user_id}/status
Summary: Update User Status
Activate or deactivate a user account.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
user_id |
path | integer |
yes | - |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
is_active |
boolean |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /api/apikeys
Summary: List Api Keys
List API keys for the authenticated user.
Authentication: None
Response 200
No response body.
POST /api/apikeys
Summary: Create Api Key
Create a new API key for the authenticated user.
Authentication: None
Request body
| Field | Type | Required | Description |
|---|---|---|---|
description |
any |
no | - |
expires_in_days |
any |
no | - |
Response 201
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
DELETE /api/apikeys/{key_id}
Summary: Revoke Api Key
Revoke an API key owned by the authenticated user.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
key_id |
path | integer |
yes | - |
Response 204
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /auth/login
Summary: Login Page
Render the login page.
Authentication: None
Response 200
No response body.
POST /auth/login
Summary: Login
Handle user login.
Authentication: None
Request body
| Field | Type | Required | Description |
|---|---|---|---|
grant_type |
any |
no | - |
username |
string |
yes | - |
password |
string (password) |
yes | - |
scope |
string |
no | - |
client_id |
any |
no | - |
client_secret |
any (password) |
no | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
POST /auth/logout
Summary: Logout
Handle user logout.
Authentication: None
Response 200
No response body.
GET /auth/me
Summary: Me
Get current user information.
Authentication: None
Response 200
No response body.
PUT /auth/password
Summary: Change Password
Change the current user's password and revoke their browser sessions.
Authentication: None
Request body
| Field | Type | Required | Description |
|---|---|---|---|
current_password |
string |
yes | - |
new_password |
string |
yes | - |
Response 200
No response body.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /health
Summary: Health
Health check endpoint. - Unauthenticated: returns minimal info (status, version, timestamp) - Authenticated: adds uptime, cache size, and endpoint count
Authentication: None
Response 200
No response body.
GET /profile
Summary: Profile Page
Render the user profile page.
Authentication: None
Response 200
No response body.
GET /search
Summary: Search Resources
Search across every resource the current user is permitted to read.
Results span datasets, documents and media in one ranked list, each with a
snippet and a URL to follow. Only resources the caller has read permission
on are returned, and count reflects the filtered page only — reporting a
pre-filter total would leak the existence and volume of resources the caller
cannot see.
Returns JSON, or an HTML results page when the client asks for text/html.
Authentication: None
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
q |
query | string |
no | Free-text query; any input is accepted. |
limit |
query | integer |
no | Results per page. |
offset |
query | integer |
no | Results to skip. |
type |
query | any |
no | Comma-separated resource types to restrict to, e.g. 'csv,markdown'. |
Response 200
No documented fields.
Response 422
| Field | Type | Required | Description |
|---|---|---|---|
detail |
array of ValidationError |
no | - |
GET /ui/media
Summary: Media Gallery
Render the media gallery UI for authenticated users.
Authentication: None
Response 200
No response body.