Skip to main content

Documentation 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.

The detail endpoint returns everything known about a single project — its metadata, extended configuration fields, team membership, assigned professors, document attachments, section locks, and a set of permission flags computed for the authenticated caller. Use these flags (isOwner, canManageProject, canManageLocks) to drive UI visibility rather than re-implementing role logic on the client.

Endpoint

GET /api/projects/:id

Path Parameters

id
string
required
The numeric project identifier returned by the list endpoint.

Request

Headers

HeaderValue
AuthorizationBearer <token>

Example

curl -X GET https://your-domain.com/api/projects/42 \
  -H "Authorization: Bearer <token>"

Response

Returns 200 OK with the full project detail object.

Base Fields

id
string
required
Unique project identifier.
name
string
required
Project name.
description
string
required
Short project description. Empty string ("") when not set.
status
"Abierto" | "Cerrado"
required
Current lifecycle state.
isFavorite
boolean
required
Whether the caller has favorited this project.
createdAt
string
required
Creation date formatted as DD/MM/YYYY (e.g. "01/09/2024"), derived from fecha_creacion.
scopeNotes
string
required
Supplementary scope notes (notas_alcance). Empty string ("") when not set. Also present on the list item.
preprojectValidated
boolean
required
Whether the pre-project document has been validated by the assigned professor (anteproyecto_validado). Also present on the list item.

Extended Configuration

objective
string
required
Project objective statement stored in descripcion. Distinct from the short description. Empty string ("") when not set.
scopeDetail
string
required
Detailed scope definition (alcance_detalle). Empty string ("") when not set.
URL to the project’s backup repository or storage (link_respaldo). Empty string ("") when not set.
URL to the grades spreadsheet or rubric document (link_calificaciones). Empty string ("") when not set.
documents
array
required
List of attached document references stored as JSONB.

Lock State

locks
object
required
Indicates which sections of the project are currently locked. When a section is locked, student owners receive a 403 when attempting to edit it. Professors and admins bypass all locks.

Membership

memberEmails
string[]
required
Email addresses of all enrolled student members (grupo_estudiante).
ownerEmail
string | null
required
Email of the professor who owns the project (proyecto_profesor). null if no owner has been linked.
assignedProfessorEmails
string[]
required
Emails of all professors assigned to review or manage the project.

Caller Permission Flags

isOwner
boolean
required
true when the authenticated user is the registered project owner.
isAssignedProfessor
boolean
required
true when the authenticated user is in the assignedProfessorEmails list.
canManageProject
boolean
required
true when the caller may edit unlocked project fields. Granted to owners, assigned professors, and admins.
canManageLocks
boolean
required
true when the caller may change the locks object. Restricted to assigned professors and admins.

Example Response

{
  "id": "42",
  "name": "AI Grading System",
  "description": "Automated rubric evaluation using NLP",
  "scopeNotes": "Integration with the LMS is out of scope for this cycle.",
  "status": "Abierto",
  "isFavorite": true,
  "createdAt": "01/09/2024",
  "preprojectValidated": false,
  "objective": "Build a fully automated grading pipeline for programming assignments.",
  "scopeDetail": "Covers Python and JavaScript submissions only.",
  "backupLink": "https://github.com/org/ai-grading-backup",
  "gradesLink": "https://docs.example.com/grades/42",
  "documents": [
    { "name": "Project Charter", "url": "https://storage.example.com/charter.pdf" }
  ],
  "locks": {
    "scope": true,
    "documentation": false,
    "team": false
  },
  "memberEmails": ["alice@university.edu", "bob@university.edu"],
  "ownerEmail": "prof.garcia@university.edu",
  "assignedProfessorEmails": ["prof.garcia@university.edu"],
  "isOwner": false,
  "isAssignedProfessor": true,
  "canManageProject": true,
  "canManageLocks": true
}

Error Responses

StatusDescription
401 UnauthorizedMissing or invalid bearer token.
403 ForbiddenAuthenticated user is neither owner nor member of this project.
404 Not FoundNo project exists with the given ID.

Build docs developers (and LLMs) love