Appearance
API Reference
kendo provides a API for programmatic access and an MCP (Model Context Protocol) server for AI coding assistants.
Authentication
API Tokens
Create API tokens from your profile settings. Include the token in the Authorization header:
bash
curl https://{tenant}.kendo.dev/api/projects \
-H "Authorization: Bearer your-api-token"Tokens can be revoked at any time from your profile.
Base URL
All API endpoints are relative to your tenant subdomain:
https://{tenant}.kendo.dev/api/Resources
| Resource | Description |
|---|---|
| Issues | Create, update, move, and search issues |
| Projects | Manage projects and their configuration |
| Sprints | Plan, activate, and complete sprints |
| Time Entries | Log and manage time against issues |
| Comments | Add and manage comments on issues |
| Epics | Group issues on a timeline |
Additional Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/projects/{id}/lanes | List board lanes |
GET | /api/teams | List teams |
GET | /api/github/status | Check GitHub connection |
GET | /api/projects/{id}/github-repos | List linked repositories |
GET | /api/tokens | List API tokens |
POST | /api/tokens | Create an API token |
Response Format
All responses return JSON. Successful responses return the resource directly:
json
{
"id": 1,
"title": "...",
"created_at": "2026-03-13T10:30:00.000000Z"
}Collection endpoints return arrays:
json
[
{"id": 1, "title": "..."},
{"id": 2, "title": "..."}
]Status Codes
| Code | Meaning |
|---|---|
200 | Success (retrieve, update, list) |
201 | Created (store) |
204 | No Content (delete) |
422 | Validation Error (invalid input) |
Validation Errors
When validation fails, the API returns a 422 response with field-level errors:
json
{
"message": "The title field is required.",
"errors": {
"title": ["The title field is required."],
"priority": ["The selected priority is invalid."]
}
}Authorization & Scoping
All API and MCP access is scoped to the authenticated user:
- API tokens are user-specific — you only see projects, issues, and data for projects assigned to your teams
- MCP tokens carry an
mcp:usescope with the same access restrictions - This isn't just filtering — it's programmatic enforcement through Laravel Gates and
Project::accessibleBy($user)checks - Role-based permissions apply per-action: Team Lead+ for sprint/epic management, Manager+ for epic deletion
MCP Server
kendo exposes a Model Context Protocol server with 15 tools and 10 resources for AI coding assistants.
For full documentation including setup guides, tool parameters, and workflow examples, see the MCP documentation.
| Section | What's Covered |
|---|---|
| Overview & Setup | OAuth flow, Claude Code and Cursor configuration |
| Issues | Create, update, move, delete, search (5 tools) |
| Comments | Add, update, delete with permission model (3 tools) |
| Time Entries | Log, update, delete, query with grouping (4 tools) |
| Epics | Create, update, delete, get with progress (4 tools) |
| Sprints | Create, update, complete with lifecycle (3 tools) |
| Branches | Link branches with auto-repo resolution (1 tool) |
| Resources | 10 read-only resources for projects, issues, lanes, sprints, epics, members, teams, repos |
| Workflows | Multi-step flows: sprint planning, bug triage, time logging |
Build Integrations
Use the API to connect any chat tool, CI pipeline, or internal system to your project board:
- Create issues from Slack, Discord, or Microsoft Teams messages
- Post board updates to a channel
- Sync status with external dashboards
- Trigger workflows based on issue events
See Also
- MCP Overview & Setup — Connect your AI assistant to kendo
- Quick Start — Using MCP tools with your AI assistant
- Issues API — Full issue endpoint documentation
- GitHub Integration — GitHub-specific API operations