Skip to main content

Python SDK for the Kanboard JSON-RPC API — typed models, structured exceptions, and complete API coverage

Project description

kanboard-sdk

Python SDK for the Kanboard JSON-RPC API — typed models, structured exceptions, and complete coverage of all 158 API methods.

Python 3.11+ License: MIT

Installation

pip install kanboard-sdk

Quick Start

from kanboard import KanboardClient

with KanboardClient(url="https://kanboard.example.com/jsonrpc.php",
                     token="your-api-token") as kb:
    # Create a project
    project_id = kb.projects.create_project(name="My Project")

    # Create a task
    task_id = kb.tasks.create_task(
        title="Implement feature X",
        project_id=project_id,
        color_id="green",
        priority=2,
    )

    # Get all active tasks
    tasks = kb.tasks.get_all_tasks(project_id, status_id=1)
    for task in tasks:
        print(f"#{task.id} [{task.color_id}] {task.title}")

Features

  • Complete API coverage — All 158 Kanboard JSON-RPC methods across 24 resource categories
  • Typed models — Dataclass response models with from_api() factory methods that handle Kanboard's type inconsistencies
  • Structured exceptionsKanboardAuthError, KanboardNotFoundError, KanboardAPIError, etc. with rich context
  • Resource-based accessclient.tasks, client.projects, client.columns, etc.
  • Context managerKanboardClient supports with statements for clean resource management
  • Batch callsclient.batch() for sending multiple JSON-RPC requests in one HTTP round-trip
  • Cross-project orchestration — Portfolio management, milestones, dependency analysis, and critical-path computation via kanboard.orchestration
  • Minimal dependencies — Only httpx

Resource Categories

Accessor Methods Description
client.tasks 14 Task CRUD, search, move, duplicate
client.projects 14 Project CRUD, enable/disable, activity
client.board 1 Full board view (columns → swimlanes → tasks)
client.columns 6 Column management and positioning
client.swimlanes 11 Swimlane management
client.comments 5 Task comments
client.categories 5 Project categories
client.tags 7 Global and project tags
client.subtasks 5 Subtask management
client.users 10 User administration
client.links 7 Link type definitions
client.task_links 5 Internal task-to-task links
client.external_task_links 7 External URL links on tasks
client.groups 5 Group management
client.group_members 5 Group membership
client.actions 6 Automatic action configuration
client.project_files 6 Project file attachments
client.task_files 6 Task file attachments
client.project_metadata 4 Project key-value metadata
client.task_metadata 4 Task key-value metadata
client.project_permissions 9 Project user/group permissions
client.subtask_time_tracking 4 Subtask time tracking
client.me 7 Current user (requires user auth)
client.application 7 Application info (version, colors, roles)

Exception Hierarchy

KanboardError (base)
├── KanboardConfigError          # Missing/invalid configuration
├── KanboardConnectionError      # Network/connection failures
├── KanboardAuthError            # HTTP 401/403, invalid credentials
├── KanboardAPIError             # JSON-RPC error responses
│   ├── KanboardNotFoundError    # Resource not found (null response)
│   └── KanboardValidationError  # Invalid parameters
└── KanboardResponseError        # Malformed/unparseable responses

Configuration

KanboardClient accepts URL and token directly, or use KanboardConfig.resolve() for layered config resolution (TOML file → environment variables → explicit args):

from kanboard import KanboardClient, KanboardConfig

# Direct
client = KanboardClient(url="...", token="...")

# From config file / env vars
config = KanboardConfig.resolve()
client = KanboardClient(url=config.url, token=config.token)

CLI Companion

For a full command-line interface built on this SDK, install kanboard-cli:

pip install kanboard-cli

Documentation

  • SDK Guide — Full usage guide with examples for every resource
  • Configuration — Config file, env vars, and profiles
  • API Reference — Complete Kanboard JSON-RPC method signatures

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kanboard_sdk-1.2.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kanboard_sdk-1.2.0-py3-none-any.whl (80.2 kB view details)

Uploaded Python 3

File details

Details for the file kanboard_sdk-1.2.0.tar.gz.

File metadata

  • Download URL: kanboard_sdk-1.2.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kanboard_sdk-1.2.0.tar.gz
Algorithm Hash digest
SHA256 6c49588b9e03cdf764f2411d455bb566047f7168dcf55990f6f8a8ac24531f34
MD5 8b0680757b48e98829281b3f3741461e
BLAKE2b-256 22132ffdf95c765e41c0f9fee34b6fe6dc79f54786dc582aa9d513ca307a8da2

See more details on using hashes here.

Provenance

The following attestation bundles were made for kanboard_sdk-1.2.0.tar.gz:

Publisher: publish.yml on geekmuse/kanboard-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kanboard_sdk-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: kanboard_sdk-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 80.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kanboard_sdk-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fae9788feb221f918c378e9aae191293f13254cb1bfda1b02efc08111b0d0fe1
MD5 c9a5db0651cea55bb803f984ec139a10
BLAKE2b-256 2433f3febb020986386a015ca410bc190f1672698c829cc7206f06bf391236ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for kanboard_sdk-1.2.0-py3-none-any.whl:

Publisher: publish.yml on geekmuse/kanboard-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page