Skip to main content
All endpoints require a valid Bearer token in the Authorization header. Errors are returned as { "error": "string message" }.

List projects

GET /projects Returns all projects accessible to the authenticated user. Auth required: Yes

Response

projects
Project[]
Array of project objects.

Example request

curl --request GET \
  --url https://api.example.com/projects \
  --header 'Authorization: Bearer <token>'

Example response

[
  {
    "_id": "64a1f2c3b4e5d6f7a8b9c0d1",
    "projectName": "Customer Churn Model",
    "clientName": "Acme Corp",
    "description": "Predict customer churn using historical transaction data.",
    "manager": "64a1f2c3b4e5d6f7a8b9c0d0",
    "tasks": [],
    "team": ["64a1f2c3b4e5d6f7a8b9c0d0"]
  }
]

Errors

StatusDescription
401Missing or invalid token.
500Internal server error.

Create a project

POST /projects Creates a new project. The authenticated user is automatically assigned as the project manager. Auth required: Yes

Request body

projectName
string
required
Name of the project.
clientName
string
required
Name of the client.
description
string
required
Short description of the project scope or goals.

Response

Returns the newly created Project object.

Example request

curl --request POST \
  --url https://api.example.com/projects \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "projectName": "Customer Churn Model",
    "clientName": "Acme Corp",
    "description": "Predict customer churn using historical transaction data."
  }'

Example response

{
  "_id": "64a1f2c3b4e5d6f7a8b9c0d1",
  "projectName": "Customer Churn Model",
  "clientName": "Acme Corp",
  "description": "Predict customer churn using historical transaction data.",
  "manager": "64a1f2c3b4e5d6f7a8b9c0d0",
  "tasks": [],
  "team": []
}

Errors

StatusDescription
400Missing or invalid fields.
401Missing or invalid token.

Get a project

GET /projects/:id Returns the full project, including its tasks and team members. Use this endpoint when you need to display or work with project details. Auth required: Yes

Path parameters

id
string
required
The project ID.

Response

_id
string
required
Unique project identifier.
projectName
string
required
Name of the project.
clientName
string
required
Name of the client.
description
string
required
Project description.
manager
string
required
User ID of the project manager.
tasks
TaskProject[]
required
Array of task summary objects linked to this project.
team
string[]
required
Array of user IDs on the project team.

Example request

curl --request GET \
  --url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1 \
  --header 'Authorization: Bearer <token>'

Example response

{
  "_id": "64a1f2c3b4e5d6f7a8b9c0d1",
  "projectName": "Customer Churn Model",
  "clientName": "Acme Corp",
  "description": "Predict customer churn using historical transaction data.",
  "manager": "64a1f2c3b4e5d6f7a8b9c0d0",
  "tasks": [
    {
      "_id": "64a1f2c3b4e5d6f7a8b9c0e1",
      "name": "Collect raw data",
      "status": "completed"
    }
  ],
  "team": ["64a1f2c3b4e5d6f7a8b9c0d0", "64a1f2c3b4e5d6f7a8b9c0d2"]
}

Errors

StatusDescription
401Missing or invalid token.
403You do not have access to this project.
404Project not found.

Update a project

PUT /projects/:id Updates the name, client, or description of a project. Only the project manager can update project details. Auth required: Yes

Path parameters

id
string
required
The project ID.

Request body

projectName
string
required
Updated project name.
clientName
string
required
Updated client name.
description
string
required
Updated project description.

Response

Returns the updated Project object.

Example request

curl --request PUT \
  --url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1 \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "projectName": "Customer Churn Model v2",
    "clientName": "Acme Corp",
    "description": "Updated scope to include real-time scoring."
  }'

Example response

{
  "_id": "64a1f2c3b4e5d6f7a8b9c0d1",
  "projectName": "Customer Churn Model v2",
  "clientName": "Acme Corp",
  "description": "Updated scope to include real-time scoring.",
  "manager": "64a1f2c3b4e5d6f7a8b9c0d0",
  "tasks": [],
  "team": []
}

Errors

StatusDescription
400Missing or invalid fields.
401Missing or invalid token.
403Only the project manager can update this project.
404Project not found.

Delete a project

DELETE /projects/:id Permanently deletes a project and all associated data. Only the project manager can delete a project.
This action is irreversible. Deleting a project also removes all tasks, datasets, experiments, and decisions linked to it.
Auth required: Yes

Path parameters

id
string
required
The project ID.

Response

Returns a confirmation message on success.

Example request

curl --request DELETE \
  --url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1 \
  --header 'Authorization: Bearer <token>'

Example response

{
  "message": "Project deleted successfully."
}

Errors

StatusDescription
401Missing or invalid token.
403Only the project manager can delete this project.
404Project not found.

Build docs developers (and LLMs) love