Skip to main content
All admin endpoints require authentication via the CEMS_ADMIN_KEY environment variable.

Authentication

Include the admin key in the Authorization header:
Authorization: Bearer <CEMS_ADMIN_KEY>

Create User

POST /admin/users
Authorization: Bearer <CEMS_ADMIN_KEY>
Content-Type: application/json

{
  "username": "alice",
  "email": "[email protected]",
  "is_admin": false,
  "settings": {}
}
username
string
required
Unique username for the user
email
string
Email address (optional)
is_admin
boolean
default:"false"
Whether the user has admin privileges
settings
object
default:"{}"
Optional user settings dictionary
user
object
Created user details
api_key
string
Full API key - save this immediately as it won’t be shown again
message
string
Warning message about saving the API key
{
  "user": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "username": "alice",
    "email": "[email protected]",
    "is_admin": false,
    "api_key_prefix": "cems_abc"
  },
  "api_key": "cems_abc123def456...",
  "message": "User created. Save the API key - it will not be shown again."
}

List Users

GET /admin/users?include_inactive=false&limit=100&offset=0
Authorization: Bearer <CEMS_ADMIN_KEY>
include_inactive
boolean
default:"false"
Include inactive users in results
limit
integer
default:"100"
Maximum number of users to return
offset
integer
default:"0"
Offset for pagination
users
array
List of user objects
count
integer
Number of users returned

Get User

GET /admin/users/{user_id}
Authorization: Bearer <CEMS_ADMIN_KEY>
user_id
string
required
User UUID or username
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "username": "alice",
  "email": "[email protected]",
  "is_admin": false,
  "is_active": true,
  "api_key_prefix": "cems_abc",
  "created_at": "2024-01-15T10:30:00Z",
  "last_active": "2024-02-28T14:22:00Z",
  "settings": {}
}

Update User

PATCH /admin/users/{user_id}
Authorization: Bearer <CEMS_ADMIN_KEY>
Content-Type: application/json

{
  "email": "[email protected]",
  "is_active": true,
  "is_admin": false,
  "settings": {"theme": "dark"}
}
user_id
string
required
User UUID
email
string
New email address
is_active
boolean
Active status
is_admin
boolean
Admin status
settings
object
User settings dictionary

Delete User

DELETE /admin/users/{user_id}
Authorization: Bearer <CEMS_ADMIN_KEY>
user_id
string
required
User UUID
{
  "message": "User deleted"
}

Reset API Key

POST /admin/users/{user_id}/reset-key
Authorization: Bearer <CEMS_ADMIN_KEY>
user_id
string
required
User UUID
user
object
api_key
string
New API key - save immediately
message
string
Warning message
{
  "user": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "username": "alice",
    "api_key_prefix": "cems_xyz"
  },
  "api_key": "cems_xyz789new456...",
  "message": "API key reset. Save the new key - it will not be shown again."
}

Build docs developers (and LLMs) love