Content-Type: application/json. The frontend communicates with the API through an axios client that automatically attaches your JWT token to every request.
Most endpoints require authentication. You must include a valid Bearer token in the
Authorization header. The only endpoints that do not require authentication are the account registration, login, confirmation, and password-reset flows.Base URL
The API base URL is configured via theVITE_API_URL environment variable in the frontend. Set this to the root of your API server:
Authentication
The API uses JWT Bearer token authentication. After a successful login, you receive a token string. The frontend stores this token inlocalStorage under the key AUTH_TOKEN and sends it with every request in the Authorization header:
Request and response format
| Property | Value |
|---|---|
| Request format | JSON (Content-Type: application/json) |
| Response format | JSON |
| Auth mechanism | Bearer token in Authorization header |
| Token storage | localStorage key: AUTH_TOKEN |
| HTTP methods used | GET, POST, PUT, DELETE, PATCH |
Error responses
All error responses return a JSON object with a singleerror field:
400 for validation errors, 401 for unauthenticated requests, 403 for authorization failures, 404 for missing resources).
Authenticated request example
Endpoint index
Auth
Account registration, login, email confirmation, and password management.
POST /auth/create-accountPOST /auth/loginPOST /auth/confirm-accountPOST /auth/request-codePOST /auth/forgot-passwordPOST /auth/validate-tokenPOST /auth/update-password/:tokenGET /auth/userPOST /auth/check-passwordPUT /auth/profilePOST /auth/update-passwordProjects
Create, read, update, and delete data science projects.
GET /projectsPOST /projectsGET /projects/:idPUT /projects/:idDELETE /projects/:idTasks
Manage tasks within a project, including status, phase, assignment, and notes.
GET /projects/:id/tasksPOST /projects/:id/tasksGET /projects/:id/tasks/:taskIdPUT /projects/:id/tasks/:taskIdDELETE /projects/:id/tasks/:taskIdPOST /projects/:id/tasks/:taskId/statusPATCH /projects/:id/tasks/:taskId/phasePATCH /projects/:id/tasks/:taskId/completedPATCH /projects/:id/tasks/:taskId/reassignPOST /projects/:id/tasks/:taskId/notesDELETE /projects/:id/tasks/:taskId/notes/:noteIdTeam
Add and remove team members, search for users by email or query.
GET /projects/:id/teamPOST /projects/:id/teamDELETE /projects/:id/team/:userIdPOST /projects/:id/team/findGET /projects/:id/team/search?q=Traceability
Track datasets, experiments, and decisions linked to a project.
GET /POST /projects/:id/datasetsDELETE /projects/:id/datasets/:idGET /POST /projects/:id/experimentsDELETE /projects/:id/experiments/:idGET /POST /projects/:id/decisionsDELETE /projects/:id/decisions/:idReport
Generate a consolidated project report.
GET /projects/:id/report