API Reference
Interactive Documentation
When the application is running, interactive API documentation is available at:
Authentication
All API endpoints (except /health and /api/auth/*) require authentication via session cookie.
Login
POST /api/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "password"
}
SSO Login (Microsoft Entra ID)
GET /api/auth/sso/login → Redirects to Microsoft
GET /api/auth/callback → Handles OAuth callback
Logout
Tenant API Routes
All tenant routes are prefixed with /t/{slug}/api/:
Projects
| Method |
Endpoint |
Description |
GET |
/t/{slug}/api/projects |
List all projects |
POST |
/t/{slug}/api/projects |
Create a project |
GET |
/t/{slug}/api/projects/{id} |
Get project details |
PUT |
/t/{slug}/api/projects/{id} |
Update a project |
DELETE |
/t/{slug}/api/projects/{id} |
Delete a project |
Staff
| Method |
Endpoint |
Description |
GET |
/t/{slug}/api/staff |
List all staff |
POST |
/t/{slug}/api/staff |
Create staff member |
PUT |
/t/{slug}/api/staff/{id} |
Update staff member |
DELETE |
/t/{slug}/api/staff/{id} |
Delete staff member |
Equipment
| Method |
Endpoint |
Description |
GET |
/t/{slug}/api/equipment |
List all equipment |
POST |
/t/{slug}/api/equipment |
Create equipment item |
PUT |
/t/{slug}/api/equipment/{id} |
Update equipment item |
DELETE |
/t/{slug}/api/equipment/{id} |
Delete equipment item |
Assignments
| Method |
Endpoint |
Description |
POST |
/t/{slug}/api/assignments/staff |
Assign staff to phase |
PUT |
/t/{slug}/api/assignments/staff/{id} |
Update assignment |
DELETE |
/t/{slug}/api/assignments/staff/{id} |
Remove assignment |
POST |
/t/{slug}/api/assignments/equipment |
Assign equipment to phase |
PUT |
/t/{slug}/api/assignments/equipment/{id} |
Update equipment assignment |
DELETE |
/t/{slug}/api/assignments/equipment/{id} |
Remove equipment assignment |
Vacations
| Method |
Endpoint |
Description |
GET |
/t/{slug}/api/vacations |
List all vacations |
POST |
/t/{slug}/api/vacations |
Create a vacation |
PUT |
/t/{slug}/api/vacations/{id} |
Update a vacation |
DELETE |
/t/{slug}/api/vacations/{id} |
Delete a vacation |
Other Endpoints
| Method |
Endpoint |
Description |
GET |
/t/{slug}/api/sites |
List sites |
GET |
/t/{slug}/api/skills |
List skills |
GET |
/t/{slug}/api/settings |
Get instance settings |
PUT |
/t/{slug}/api/settings |
Update settings |
GET |
/t/{slug}/api/users |
List users |
GET |
/t/{slug}/api/custom-columns |
List custom columns |
GET |
/t/{slug}/api/predefined-phases |
List predefined phases |
GET |
/t/{slug}/api/notes |
List notes |
GET |
/t/{slug}/api/presence |
Get online users |
Admin API Routes
Admin routes are at /api/admin/:
| Method |
Endpoint |
Description |
POST |
/api/admin/login |
Admin login |
GET |
/api/admin/tenants |
List tenants |
POST |
/api/admin/tenants |
Create tenant |
PUT |
/api/admin/tenants/{id} |
Update tenant |
DELETE |
/api/admin/tenants/{id} |
Delete tenant |
GET |
/api/admin/organizations |
List organizations |
POST |
/api/admin/organizations |
Create organization |
GET |
/api/admin/users |
List admin users |
GET |
/api/admin/stats |
System statistics |
Health Check
Returns 200 OK when the application is running.