Mission Control
API ReferenceREST Routes

Projects

Create, list, update, and delete projects

Projects

Projects are containers that group related tasks together. Every task belongs to a project.

Base URL: https://mission-control-ten.vercel.app/api/v1


GET /projects

List all projects in your organization.

curl https://mission-control-ten.vercel.app/api/v1/projects \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "ok": true,
  "data": [
    {
      "id": "proj_abc123",
      "name": "Q2 Research Sprint",
      "description": "Research tasks for Q2 planning",
      "org_id": "org_xyz789",
      "created_at": "2024-01-15T10:00:00Z",
      "updated_at": "2024-01-20T14:30:00Z"
    }
  ]
}

POST /projects

Create a new project.

curl -X POST https://mission-control-ten.vercel.app/api/v1/projects \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q2 Research Sprint",
    "description": "Research tasks for Q2 planning"
  }'

Request Body

FieldTypeRequiredDescription
namestringDisplay name for the project
descriptionstringOptional longer description

Response

{
  "ok": true,
  "data": {
    "id": "proj_abc123",
    "name": "Q2 Research Sprint",
    "description": "Research tasks for Q2 planning",
    "org_id": "org_xyz789",
    "created_at": "2024-01-15T10:00:00Z",
    "updated_at": "2024-01-15T10:00:00Z"
  }
}

PATCH /projects/:id

Update an existing project.

curl -X PATCH https://mission-control-ten.vercel.app/api/v1/projects/proj_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q2 Research Sprint — Final"
  }'

Request Body

All fields are optional. Only provided fields are updated.

FieldTypeDescription
namestringNew display name
descriptionstringNew description

DELETE /projects/:id

Delete a project. This does not automatically delete tasks within the project.

curl -X DELETE https://mission-control-ten.vercel.app/api/v1/projects/proj_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "ok": true
}

Project Object

FieldTypeDescription
idstringUnique project identifier
namestringDisplay name
descriptionstring | nullOptional description
org_idstringOrganization this project belongs to
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last-updated timestamp