Skip to main content
Version: 1.1.6

Projects API

The Projects API manages the lifecycle of projects — the top-level organizational unit in Symphony.

Data model

FieldTypeDescription
idstringUnique identifier (e.g. proj_01)
namestringProject name
descriptionstringLonger description
statusstringOne of planned, active, completed
teamIdstring | nullAssociated team ID
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 last-update timestamp

Endpoints

List projects

GET /api/projects

Query parameters:

ParameterTypeDefaultDescription
statusstringFilter by status

Response: 200 OK

{
"data": [
{
"id": "proj_01",
"name": "Website Redesign",
"description": "Redesign the company marketing site...",
"status": "active",
"teamId": "team_01",
"createdAt": "2025-11-01T09:00:00Z",
"updatedAt": "2026-01-15T14:30:00Z"
}
],
"count": 5
}

Get project

GET /api/projects/:id

Response: 200 OK

{
"data": {
"id": "proj_01",
"name": "Website Redesign",
"description": "Redesign the company marketing site...",
"status": "active",
"teamId": "team_01",
"createdAt": "2025-11-01T09:00:00Z",
"updatedAt": "2026-01-15T14:30:00Z"
}
}

Error: 404 Not Found if the project does not exist.

Create project

POST /api/projects

Request body:

{
"name": "New Project",
"description": "Project description",
"status": "planned",
"teamId": "team_01"
}
FieldRequiredDefault
nameyes
descriptionno
statusnoplanned
teamIdnonull

Response: 201 Created

Update project

PUT /api/projects/:id

Replaces the project fields with the provided body. The id and createdAt fields are preserved.

Request body:

{
"name": "Updated Name",
"status": "completed"
}

Response: 200 OK with the updated project.

Error: 404 Not Found if the project does not exist.

Delete project

DELETE /api/projects/:id

Response: 200 OK

{
"data": {
"id": "proj_01",
"deleted": true
}
}

Error: 404 Not Found if the project does not exist.