All routes use the namespace kanbanwp/v1, for example https://example.com/wp-json/kanbanwp/v1/boards. Request and response bodies are JSON.
Authentication
Most routes need a logged-in WordPress user, and what that user can do depends on their board role.
Cookie and nonce. Code running in the browser while someone is logged in must send the X-WP-Nonce header with a wp_rest nonce. Without it, WordPress treats the request as logged out and returns 401.
Application passwords. For scripts and servers, create an application password under Users → Profile and use HTTP Basic authentication with your username. WordPress only offers application passwords on HTTPS sites, or on local environments.
curl -u "USERNAME:APPLICATION_PASSWORD" \
https://example.com/wp-json/kanbanwp/v1/boards
The MCP endpoint is separate and uses its own bearer token. See Connecting an agent.
Boards
| Method and route | Purpose |
|---|---|
GET /boards | List boards you can see. |
POST /boards | Create a board. name is required. Optional: description, folder, template. |
GET /boards/templates | List board templates. |
GET, PUT/PATCH, DELETE /boards/{id} | Read, update or delete a board. |
POST /boards/{id}/duplicate | Duplicate a board. |
POST /boards/{id}/archive | Archive a board. |
GET /boards/{id}/activity | Read the board activity feed. |
Creating a board needs the kanbanwp_manage capability or the WordPress edit_posts capability.
Stages, tasks and comments
| Method and route | Purpose |
|---|---|
GET, POST /boards/{board_id}/stages | List or create stages (name required). |
POST /boards/{board_id}/stages/reorder | Reorder stages with ordered_ids. |
GET, PUT/PATCH, DELETE /stages/{id} | Read, update or delete a stage. |
GET, POST /boards/{board_id}/tasks | List or create tasks (title required). Listing accepts filters such as stage_id, assignee and search. |
POST /boards/{board_id}/tasks/bulk | Bulk actions. Send task_ids and an action: archive, unarchive, delete, move, set_priority, add_label or assign. |
GET, PUT/PATCH, DELETE /tasks/{id} | Read, update or delete a task. |
POST /tasks/{id}/move | Move a task. stage_id required, position optional. |
POST /tasks/{id}/watch | Toggle watching a task. |
GET, POST /tasks/{task_id}/comments | List or add comments. |
PUT/PATCH, DELETE /comments/{id} | Edit or delete a comment. |
Other resources
- Labels:
/boards/{board_id}/labels(GET, POST) and/labels/{id}(GET, PUT/PATCH, DELETE). - Members:
/boards/{board_id}/members(GET, POST) and/boards/{board_id}/members/{user_id}(PUT/PATCH, DELETE). - Saved views:
/boards/{board_id}/viewsand/views/{id}. - Webhooks:
/boards/{board_id}/webhooks(GET, POST) and/webhooks/{id}(PUT, DELETE). See Webhooks. - Notifications:
GET /notifications,POST /notifications/{id}/read,POST /notifications/read-all. - Reports:
GET /reports/overview,/reports/workload,/reports/flow. - Import:
POST /import/trello,/import/csv,/import/json,/import/legacy(needskanbanwp_manage). Export:GET /export/board/{id}. - Linked posts:
/tasks/{id}/link-post,/unlink-post,/create-draft,/post, and/post/{id}/task,/post/{id}/create-task. - Public links:
POSTandGET /portal/token(board managers) andGET /portal/board/{id}(token required). - AI (all POST, need AI configured and allowed):
/ai/text-to-tasks,/breakdown,/summarize,/post-outline,/post-draft,/post-seo,/board-summary,/generate-board,/command,/client-update.
Examples
Create a task:
curl -u "USERNAME:APPLICATION_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"title":"Draft launch post","stage_id":12,"priority":"high"}' \
https://example.com/wp-json/kanbanwp/v1/boards/3/tasks
Move it to another stage:
curl -u "USERNAME:APPLICATION_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"stage_id":14}' \
https://example.com/wp-json/kanbanwp/v1/tasks/57/move
Errors
Errors use standard HTTP codes: 401 when not logged in, 403 when your board role is too low, 404 when a board or task does not exist, and 400 for missing parameters.