Download OpenAPI specification:
The REST API allows you to control and extend Wekan with ease.
If you are an end-user and not a dev or a tester, create an issue to request new APIs.
All API calls in the documentation are made using
curl. However, you are free to use Java / Python / PHP / Golang / Ruby / Swift / Objective-C / Rust / Scala / C# or any other programming languages.
When calling a production Wekan server, ensure it is running via HTTPS and has a valid SSL Certificate. The login method requires you to post your username and password in plaintext, which is why we highly suggest only calling the REST login api over HTTPS. Also, few things to note:
If user is already logged-in, pass loginToken as param "authToken": '/api/boards/:boardId/attachments/:attachmentId/export?authToken=:token'
| board required | string the ID of the board we are exporting |
| attachment required | string the ID of the attachment we are exporting |
If user is already logged-in, pass loginToken as param "authToken": '/api/boards/:boardId/export?authToken=:token'
See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ for detailed explanations
| board required | string the ID of the board we are exporting |
If user is already logged-in, pass loginToken as param
See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ for detailed explanations
| board required | string the ID of the board we are exporting |
If user is already logged-in, pass loginToken as param "authToken": '/api/boards/:boardId/exportExcel?authToken=:token'
See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ for detailed explanations
| board required | string the ID of the board we are exporting |
If user is already logged-in, pass loginToken as param "authToken": '/api/boards/:boardId/exportExcel?authToken=:token'
See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ for detailed explanations
| board required | string the ID of the board we are exporting |
| list required | string the list value |
| card required | string the card value |
| board required | string the board value |
| list required | string the list value |
| linkedId required | string the linkedId value |
| members required | string the members value |
| assignees required | string the assignees value |
| board required | string the board value |
| list required | string the list value |
| card required | string the card value |
| newBoardId required | string the newBoardId value |
| newSwimlaneId required | string the newSwimlaneId value |
| newListId required | string the newListId value |
| title required | string the title value |
| sort required | string the sort value |
| parentId required | string the parentId value |
| description required | string the description value |
| color required | string the color value |
| vote required | string the vote value |
| poker required | string the poker value |
| labelIds required | string the labelIds value |
| requestedBy required | string the requestedBy value |
| assignedBy required | string the assignedBy value |
| spentTime required | string the spentTime value |
| isOverTime required | string the isOverTime value |
| customFields required | string the customFields value |
| members required | string the members value |
| assignees required | string the assignees value |
| swimlaneId required | string the swimlaneId value |
| listId required | string the listId value |
| archive required | string the archive value |
| board required | string the board value |
| list required | string the list value |
| card required | string the card value |
| toBoardId required | string the toBoardId value |
| toSwimlaneId required | string the toSwimlaneId value |
| toListId required | string the toListId value |
| position required | string the position value |
| board required | string the board value |
| list required | string the list value |
| card required | string the card value |
| customField required | string the customField value |
| value required | string the value value |
If user is already logged-in, pass loginToken as param "authToken": '/api/boards/:boardId/lists/:listId/cards/:cardId/exportExcel?authToken=:token'
Optional query param "fields" is a comma-separated list of sections to include. Valid values: people, board-info, dates, description, checklists, subtasks, comments Omitting "fields" includes all sections.
| board required | string the ID of the board |
| list required | string the ID of the list |
| card required | string the ID of the card to export |
| board required | string the board value |
| customField required | string the customField value |
| dropdownItem required | string the dropdownItem value |
| name required | string the name value |
Upload a file to a card. The file content is sent base64-encoded in the
JSON body. The maximum size is bounded by the admin Attachment Storage
Settings (apiUploadMaxBytes) and a hard server safety cap (64 MB).
Permissions: requires a valid auth token, write access to the target board (read-only / comment-only / worker members are rejected), and the board must allow attachments.
| boardId required | string ID of the board the card belongs to |
| swimlaneId required | string ID of the card's swimlane (must match the card) |
| listId required | string ID of the card's list (must match the card) |
| cardId required | string ID of the card to attach the file to |
| fileName required | string Name to store the file under |
| fileType | string MIME type of the file (optional) |
| fileData required | string Base64-encoded file contents |
{- "boardId": "string",
- "swimlaneId": "string",
- "listId": "string",
- "cardId": "string",
- "fileName": "string",
- "fileType": "string",
- "fileData": "string"
}Returns the attachment metadata together with the file contents
base64-encoded in base64Data. The maximum size is bounded by the admin
Attachment Storage Settings (apiDownloadMaxBytes).
Permissions: requires active membership of the attachment's board.
| attachmentId required | string ID of the attachment to download |
Returns attachment metadata (name, size, type, storage backend, board / swimlane / list / card IDs and available versions) without the file contents.
Permissions: requires active membership of the attachment's board.
| attachmentId required | string ID of the attachment |
List attachments filtered down to one card. The card must belong to the given board.
Permissions: requires active membership of the board.
| boardId required | string |
| swimlaneId required | string |
| listId required | string |
| cardId required | string |
Copy an existing attachment to a target card, creating a new attachment.
Permissions: requires membership of the source board (to read it) and write access to the target board, which must allow attachments. Honours the admin API upload limits.
| attachmentId required | string ID of the source attachment |
| targetBoardId required | string |
| targetSwimlaneId required | string |
| targetListId required | string |
| targetCardId required | string |
{- "attachmentId": "string",
- "targetBoardId": "string",
- "targetSwimlaneId": "string",
- "targetListId": "string",
- "targetCardId": "string"
}Move an existing attachment to a target card by updating its metadata.
Permissions: requires write access to both the source board (the attachment is removed from it) and the target board, which must allow attachments.
| attachmentId required | string ID of the attachment to move |
| targetBoardId required | string |
| targetSwimlaneId required | string |
| targetListId required | string |
| targetCardId required | string |
{- "attachmentId": "string",
- "targetBoardId": "string",
- "targetSwimlaneId": "string",
- "targetListId": "string",
- "targetCardId": "string"
}