Appearance
Projects API
Projects are the top-level container for issues, sprints, epics, and board lanes.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/projects | List all projects |
POST | /api/projects | Create a project |
GET | /api/projects/{id} | Get a project |
PUT | /api/projects/{id} | Update a project |
DELETE | /api/projects/{id} | Delete a project |
Create Project
POST /api/projects
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Project name, max 255 characters |
code | string | Yes | 2-5 uppercase letters (e.g., KD), must be unique |
description | string | Yes | Project description, max 5,000 characters |
user_id | integer | Yes | Project owner user ID |
team_ids | integer[] | Yes | Team IDs to grant access (can be empty []) |
direct_member_ids | integer[] | Yes | Individual user IDs to grant access (can be empty []) |
bash
curl -X POST https://{tenant}.kendo.dev/api/projects \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"name": "Website Redesign",
"code": "WEB",
"description": "Complete redesign of the public website with new branding.",
"user_id": 1,
"team_ids": [1],
"direct_member_ids": [4, 5]
}'json
{
"id": 3,
"name": "Website Redesign",
"code": "WEB",
"description": "Complete redesign of the public website with new branding.",
"user_id": 1,
"issue_ids": [],
"sprint_ids": [],
"epic_ids": [],
"lane_ids": [10, 11, 12, 13],
"team_ids": [1],
"direct_member_ids": [4, 5],
"default_assistant_id": null,
"created_at": "2026-03-13T10:30:00.000000Z"
}Update Project
PUT /api/projects/{id}
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Project name, max 255 characters |
code | string | Yes | 2-5 uppercase letters, unique (except self) |
description | string | Yes | Max 5,000 characters |
user_id | integer | Yes | Project owner user ID |
lane_ids | integer[] | Yes | Ordered lane IDs (min 1, must belong to project) |
team_ids | integer[] | Yes | Team IDs (can be empty []) |
direct_member_ids | integer[] | Yes | Individual user IDs (can be empty []) |
default_assistant_id | string | No | AI model ID for story generation |
bash
curl -X PUT https://{tenant}.kendo.dev/api/projects/3 \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"name": "Website Redesign",
"code": "WEB",
"description": "Complete redesign of the public website with new branding.",
"user_id": 1,
"lane_ids": [10, 11, 12, 13],
"team_ids": [1, 2],
"direct_member_ids": []
}'json
{
"id": 3,
"name": "Website Redesign",
"code": "WEB",
"description": "Complete redesign of the public website with new branding.",
"user_id": 1,
"issue_ids": [50, 51, 52],
"sprint_ids": [8],
"epic_ids": [3],
"lane_ids": [10, 11, 12, 13],
"team_ids": [1, 2],
"direct_member_ids": [],
"default_assistant_id": null,
"created_at": "2026-03-13T10:30:00.000000Z"
}Delete Project
DELETE /api/projects/{id}
Returns 204 No Content on success.
bash
curl -X DELETE https://{tenant}.kendo.dev/api/projects/3 \
-H "Authorization: Bearer your-token"WARNING
Deleting a project removes all its issues, sprints, epics, lanes, and time entries. This action cannot be undone.
See Also
- Issues API — Manage issues within a project
- Sprints API — Sprint management
- Epics API — Epic management
- Projects guide — Working with projects in the UI