Base URL: /api/v1. Authentication: Authorization: Bearer <api-key> header.
API keys are created in the web UI (session login) or via CLI and are stored only as SHA-256 hashes.
Scope read allows GET only; write allows everything below. The web UI uses the same
endpoints with a session cookie. Dates are ISO-8601 strings. Cards are never permanently deleted
through the API; use archived: true instead.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/boards | List boards you are a member of |
| POST | /api/v1/boards | Create a board. Body: {title} |
| GET | /api/v1/boards/:id | Board with lists, cards, labels, members |
| PATCH | /api/v1/boards/:id | Rename or archive a board. Body: {title?, archived?} |
| POST | /api/v1/boards/:id/members | Add a member. Body: {user_id} |
| POST | /api/v1/boards/:id/labels | Create a label. Body: {name, color} |
| POST | /api/v1/lists | Create a list. Body: {board_id, title} |
| PATCH | /api/v1/lists/:id | Rename, reorder, archive a list. Body: {title?, position?, archived?} |
| GET | /api/v1/cards?due=overdue|soon | Cards due overdue or within 24h |
| POST | /api/v1/cards | Create a card. Body: {list_id, title, description?, due_date?, labels?[], members?[]} |
| GET | /api/v1/cards/:id | Card with labels, members, comments |
| PATCH | /api/v1/cards/:id | Edit a card. Body: {title?, description?, due_date?, labels?[], members?[], archived?} |
| POST | /api/v1/cards/:id/move | Move a card. Body: {list_id, position?} |
| POST | /api/v1/cards/:id/comments | Add a comment. Body: {body} |
| GET | /api/v1/activity?board_id= | Activity log (all your boards, or one board) |
| GET | /api/v1/reminders | Reminder records for your boards |
| GET | /api/v1/users | Team users (for member assignment) |
| GET | /api/v1/api-keys | Your API keys (session only) |
| POST | /api/v1/api-keys | Create an API key (session only). Body: {name, scope: read|write}. Key shown once. |
| DELETE | /api/v1/api-keys/:id | Revoke one of your API keys (session only) |
GET /api/v1/cards?due=overdue and ?due=soon for reminder work.GET /api/v1/activity.