GET
/api/v1/projects
List all projects accessible to the authenticated user.
Parameters
| Name | Type | Required | Description |
status | string | Optional | Filter by active, archived, or all |
sort | string | Optional | Sort by name, created_at, or updated_at |
Response Fields
| Name | Type | Required | Description |
projects | array | Optional | List of project objects |
total | integer | Optional | Total count |
Example Response
{
"projects": [],
"total": 42
}
POST
/api/v1/projects
Create a new project.
Parameters
| Name | Type | Required | Description |
name | string | Required | Project name, must be unique within org |
description | string | Optional | Project description |
visibility | string | Optional | public or private, default private |
Response Fields
| Name | Type | Required | Description |
id | string | Optional | New project ID |
name | string | Optional | Confirmed project name |
created_at | string | Optional | ISO 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
| Name | Type | Required | Description |
project_id | string | Required | Project identifier |
Response Fields
| Name | Type | Required | Description |
id | string | Optional | Project ID |
name | string | Optional | Project name |
description | string | Optional | Description |
members | array | Optional | List of member objects with roles |
settings | object | Optional | Project configuration |
created_at | string | Optional | Creation 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
| Name | Type | Required | Description |
project_id | string | Required | Project to update |
name | string | Optional | New name |
description | string | Optional | New description |
visibility | string | Optional | Updated visibility |
Response Fields
| Name | Type | Required | Description |
id | string | Optional | Project ID |
updated_fields | array | Optional | Changed fields |
Example Response
{
"id": "id_123",
"updated_fields": []
}
POST
/api/v1/projects/{project_id}/members
Add a member to the project.
Parameters
| Name | Type | Required | Description |
project_id | string | Required | Target project |
user_id | string | Required | User to add |
role | string | Optional | Member role in project, default "contributor" |
Response Fields
| Name | Type | Required | Description |
project_id | string | Optional | Project ID |
user_id | string | Optional | Added user |
role | string | Optional | Assigned 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
| Name | Type | Required | Description |
project_id | string | Required | Target project |
user_id | string | Required | User to remove |
Response Fields
| Name | Type | Required | Description |
status | string | Optional | "removed" |
Example Response
{
"status": "removed"
}