GET /api/v1/projects

List all projects accessible to the authenticated user.

Parameters

NameTypeRequiredDescription
statusstringOptionalFilter by active, archived, or all
sortstringOptionalSort by name, created_at, or updated_at

Response Fields

NameTypeRequiredDescription
projectsarrayOptionalList of project objects
totalintegerOptionalTotal count

Example Response

{
  "projects": [],
  "total": 42
}
POST /api/v1/projects

Create a new project.

Parameters

NameTypeRequiredDescription
namestringRequiredProject name, must be unique within org
descriptionstringOptionalProject description
visibilitystringOptionalpublic or private, default private

Response Fields

NameTypeRequiredDescription
idstringOptionalNew project ID
namestringOptionalConfirmed project name
created_atstringOptionalISO 8601 timestamp

Example Response

{
  "id": "id_123",
  "name": "name value",
  "created_at": "created at value"
}
GET /api/v1/projects/{project_id}

Get project details including member list and settings.

Parameters

NameTypeRequiredDescription
project_idstringRequiredProject identifier

Response Fields

NameTypeRequiredDescription
idstringOptionalProject ID
namestringOptionalProject name
descriptionstringOptionalDescription
membersarrayOptionalList of member objects with roles
settingsobjectOptionalProject configuration
created_atstringOptionalCreation timestamp

Example Response

{
  "id": "id_123",
  "name": "name value",
  "description": "description value",
  "members": [],
  "settings": [],
  "created_at": "created at value"
}
PUT /api/v1/projects/{project_id}

Update project settings and metadata.

Parameters

NameTypeRequiredDescription
project_idstringRequiredProject to update
namestringOptionalNew name
descriptionstringOptionalNew description
visibilitystringOptionalUpdated visibility

Response Fields

NameTypeRequiredDescription
idstringOptionalProject ID
updated_fieldsarrayOptionalChanged fields

Example Response

{
  "id": "id_123",
  "updated_fields": []
}
POST /api/v1/projects/{project_id}/members

Add a member to the project.

Parameters

NameTypeRequiredDescription
project_idstringRequiredTarget project
user_idstringRequiredUser to add
rolestringOptionalMember role in project, default "contributor"

Response Fields

NameTypeRequiredDescription
project_idstringOptionalProject ID
user_idstringOptionalAdded user
rolestringOptionalAssigned role

Example Response

{
  "project_id": "pro_123",
  "user_id": "use_123",
  "role": "role value"
}
DELETE /api/v1/projects/{project_id}/members/{user_id}

Remove a member from the project.

Parameters

NameTypeRequiredDescription
project_idstringRequiredTarget project
user_idstringRequiredUser to remove

Response Fields

NameTypeRequiredDescription
statusstringOptional"removed"

Example Response

{
  "status": "removed"
}