The update endpoint accepts a partial body — only the fields you include are changed. This makes it suitable for targeted edits such as updating just the project name, replacing the member list, or toggling a single lock, without needing to re-send the entire project state. Role-based lock enforcement is applied server-side: if a section is locked and the caller is a student owner, the server returns a 403 rather than applying the change. Assigned professors and admins bypass all lock checks and are additionally permitted to modify theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Taykl12/Classify/llms.txt
Use this file to discover all available pages before exploring further.
locks object itself.
Endpoint
Path Parameters
The numeric project identifier.
Request
Headers
| Header | Value |
|---|---|
Authorization | Bearer <token> |
Content-Type | application/json |
Body Parameters
All fields are optional. Omitted fields are left unchanged.Updated project display name.
Updated short description.
Updated lifecycle state. Set to
"Cerrado" to conclude a project.Replacement member list. This is a full replace — any email currently in
grupo_estudiante that is absent from this array will be removed, and any new address will be added. Every address must exist in sistema.Project objective statement (
descripcion config field).Detailed scope definition (
alcance_detalle). Blocked by the scope lock for student owners.Supplementary scope notes (
notas_alcance). Blocked by the scope lock for student owners.Mark the pre-project document as validated. Restricted to assigned professors and admins. Student owners receive a 403 when sending this field.
URL for the project’s backup storage (
link_respaldo).URL for the grades document (
link_calificaciones).Replacement documents array stored as JSONB. Replaces the entire existing list.
Section lock overrides. Restricted to assigned professors and admins. Sending this field as a student results in a 403. Individual lock keys may be omitted to leave them unchanged.
Lock Enforcement Summary
| Caller role | Can edit unlocked fields | Can edit locked fields | Can set locks |
|---|---|---|---|
| Student owner | ✅ | ❌ (403) | ❌ (403) |
| Assigned professor | ✅ | ✅ | ✅ |
| Admin | ✅ | ✅ | ✅ |
Example Request
Response
Returns 200 OK with the full project detail shape reflecting all applied changes. The response structure is identical toGET /api/projects/:id.
Example Response
Error Responses
| Status | Description |
|---|---|
400 Bad Request | One or more emails in memberEmails were not found in sistema. |
401 Unauthorized | Missing or invalid bearer token. |
403 Forbidden | Caller is a student owner and attempted to edit a locked section, set locks, or set preprojectValidated. |
404 Not Found | No project exists with the given ID. |