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.

OpenAPI Specification

kanban-openapi.yml Raw ↑
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