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 Team
POST /admin/teams
Authorization: Bearer <CEMS_ADMIN_KEY>
Content-Type: application/json
{
"name": "engineering",
"company_id": "acme-corp",
"settings": {}
}
Company identifier for the team
Optional team settings dictionary
{
"team": {
"id": "650e8400-e29b-41d4-a716-446655440001",
"name": "engineering",
"company_id": "acme-corp"
},
"message": "Team created"
}
List Teams
GET /admin/teams?limit=100&offset=0
Authorization: Bearer <CEMS_ADMIN_KEY>
Maximum number of teams to return
Get Team
GET /admin/teams/{team_id}
Authorization: Bearer <CEMS_ADMIN_KEY>
{
"id": "650e8400-e29b-41d4-a716-446655440001",
"name": "engineering",
"company_id": "acme-corp",
"created_at": "2024-01-10T08:00:00Z",
"settings": {},
"members": [
{
"user_id": "550e8400-e29b-41d4-a716-446655440000",
"username": "alice",
"role": "admin",
"joined_at": "2024-01-10T08:05:00Z"
},
{
"user_id": "550e8400-e29b-41d4-a716-446655440002",
"username": "bob",
"role": "member",
"joined_at": "2024-01-11T09:30:00Z"
}
]
}
Delete Team
DELETE /admin/teams/{team_id}
Authorization: Bearer <CEMS_ADMIN_KEY>
{
"message": "Team deleted"
}
Add Team Member
POST /admin/teams/{team_id}/members
Authorization: Bearer <CEMS_ADMIN_KEY>
Content-Type: application/json
{
"user_id": "alice",
"role": "member"
}
User UUID or username to add
Member role: admin, member, or viewer
Created membership details
{
"member": {
"team_id": "650e8400-e29b-41d4-a716-446655440001",
"user_id": "550e8400-e29b-41d4-a716-446655440000",
"role": "member"
},
"message": "Member added"
}
Remove Team Member
DELETE /admin/teams/{team_id}/members/{user_id}
Authorization: Bearer <CEMS_ADMIN_KEY>
User UUID or username to remove
{
"message": "Member removed"
}