Kanban Tool REST API v3
Current REST API for Kanban Tool. Returns JSON responses, supports bulk task modifications, attachment operations, and uses a flat namespace with associated objects in single responses. Authenticated via Bearer token.
Current REST API for Kanban Tool. Returns JSON responses, supports bulk task modifications, attachment operations, and uses a flat namespace with associated objects in single responses. Authenticated via Bearer token.
openapi: 3.1.0
info:
title: Kanban Tool API v3
description: Minimal OpenAPI 3.1 description of the Kanban Tool REST API v3 covering users, boards, tasks, subtasks, comments, attachments, and time trackers.
version: "3.0.0"
x-generated-from: https://kanbantool.com/developer/api-v3
x-generated-by: claude-crawl-2026-05-08
servers:
- url: https://YOUR_DOMAIN.kanbantool.com/api/v3
description: Kanban Tool account API base
paths:
/users/{user_id}.json:
parameters:
- name: user_id
in: path
required: true
schema:
type: string
get:
summary: Get user
operationId: getUser
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
/users/current.json:
get:
summary: Get current user
operationId: getCurrentUser
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
/boards/{board_id}/preload.json:
parameters:
- name: board_id
in: path
required: true
schema:
type: string
get:
summary: Get board overview
operationId: getBoardPreload
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
/boards/{board_id}.json:
parameters:
- name: board_id
in: path
required: true
schema:
type: string
get:
summary: Get board with full details
operationId: getBoard
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
/boards/{board_id}/changelog.json:
parameters:
- name: board_id
in: path
required: true
schema:
type: string
get:
summary: List board changelog entries
operationId: getBoardChangelog
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
/tasks/search.json:
get:
summary: Search tasks
operationId: searchTasks
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
/tasks/{task_id}/preload.json:
parameters:
- name: task_id
in: path
required: true
schema:
type: string
get:
summary: Get task overview
operationId: getTaskPreload
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
/tasks/{task_id}.json:
parameters:
- name: task_id
in: path
required: true
schema:
type: string
get:
summary: Get task with full details
operationId: getTask
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
patch:
summary: Update task
operationId: updateTask
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
description: OK
/tasks.json:
post:
summary: Create task
operationId: createTask
requestBody:
content:
application/json:
schema:
type: object
responses:
'201':
description: Created
/subtasks.json:
post:
summary: Create subtask
operationId: createSubtask
requestBody:
content:
application/json:
schema:
type: object
responses:
'201':
description: Created
/subtasks/{subtask_id}.json:
parameters:
- name: subtask_id
in: path
required: true
schema:
type: string
patch:
summary: Update subtask
operationId: updateSubtask
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
description: OK
delete:
summary: Delete subtask
operationId: deleteSubtask
responses:
'204':
description: Deleted
/subtasks/reorder.json:
put:
summary: Reorder subtasks
operationId: reorderSubtasks
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
description: OK
/tasks/{task_id}/comments.json:
parameters:
- name: task_id
in: path
required: true
schema:
type: string
post:
summary: Create comment
operationId: createComment
requestBody:
content:
application/json:
schema:
type: object
responses:
'201':
description: Created
/tasks/{task_id}/comments/{comment_id}.json:
parameters:
- name: task_id
in: path
required: true
schema:
type: string
- name: comment_id
in: path
required: true
schema:
type: string
delete:
summary: Delete comment
operationId: deleteComment
responses:
'204':
description: Deleted
/attachments.json:
post:
summary: Upload attachment
operationId: createAttachment
requestBody:
content:
multipart/form-data:
schema:
type: object
responses:
'201':
description: Created
/attachments/{attachment_id}/detach.json:
parameters:
- name: attachment_id
in: path
required: true
schema:
type: string
delete:
summary: Detach attachment
operationId: detachAttachment
responses:
'204':
description: Detached
/attachments/{attachment_id}/set_mode.json:
parameters:
- name: attachment_id
in: path
required: true
schema:
type: string
patch:
summary: Set attachment mode
operationId: setAttachmentMode
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
description: OK
/time_trackers.json:
post:
summary: Create time tracker
operationId: createTimeTracker
requestBody:
content:
application/json:
schema:
type: object
responses:
'201':
description: Created
/time_trackers/{time_tracker_id}.json:
parameters:
- name: time_tracker_id
in: path
required: true
schema:
type: string
put:
summary: Update time tracker
operationId: updateTimeTracker
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
description: OK
delete:
summary: Delete time tracker
operationId: deleteTimeTracker
responses:
'204':
description: Deleted