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.

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.