Skip to content

Projects API

Projects are the top-level container for issues, sprints, epics, and board lanes.

Endpoints

MethodEndpointDescription
GET/api/projectsList all projects
POST/api/projectsCreate 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

FieldTypeRequiredDescription
namestringYesProject name, max 255 characters
codestringYes2-5 uppercase letters (e.g., KD), must be unique
descriptionstringYesProject description, max 5,000 characters
user_idintegerYesProject owner user ID
team_idsinteger[]YesTeam IDs to grant access (can be empty [])
direct_member_idsinteger[]YesIndividual 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

FieldTypeRequiredDescription
namestringYesProject name, max 255 characters
codestringYes2-5 uppercase letters, unique (except self)
descriptionstringYesMax 5,000 characters
user_idintegerYesProject owner user ID
lane_idsinteger[]YesOrdered lane IDs (min 1, must belong to project)
team_idsinteger[]YesTeam IDs (can be empty [])
direct_member_idsinteger[]YesIndividual user IDs (can be empty [])
default_assistant_idstringNoAI 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