diff --git a/releases/release-website.sh b/releases/release-website.sh index ba4420a0b..11f1a471b 100755 --- a/releases/release-website.sh +++ b/releases/release-website.sh @@ -14,7 +14,7 @@ if [ $# -ne 2 ] fi # 2) Go to website directory -cd ~/repos/w/wekan.github.io +cd ~/repos/w/wekan.fi # 3) Get latest changes to website git pull @@ -39,7 +39,7 @@ cp ~/repos/wekan/public/api/* . mv wekan.html index.html # 10) Go to docs repo -cd ~/repos/w/wekan.github.io +cd ~/repos/w/wekan.fi # 11) Commit all changes to git and push website changes live git add --all diff --git a/v7.93/index.html b/v7.93/index.html new file mode 100644 index 000000000..ef39f9105 --- /dev/null +++ b/v7.93/index.html @@ -0,0 +1,19585 @@ + + + + + + + + + + Wekan REST API + + + + + + + + + + + + + + + + NAV + Navigation + + +
+ + +
+ + + Shell + + + + HTTP + + + + JavaScript + + + + Node.js + + + + Ruby + + + + Python + + + + Java + + + + Go + + +
+ + + + + +
+ +
+ + + +
+
+
+
+

Wekan REST API v7.93

+
+

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

+
+

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.

+
+

Production Security Concerns

+

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:

+ +

Authentication

+ +

Login

+

login

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /users/login \
+  -H 'Content-Type: application/json' \
+  -H 'Accept: */*'
+
+
+
POST /users/login HTTP/1.1
+
+Content-Type: application/json
+Accept: */*
+
+
+
var headers = {
+  'Content-Type':'application/json',
+  'Accept':'*/*'
+
+};
+
+$.ajax({
+  url: '/users/login',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "username": "string",
+  "password": "pa$$word"
+}';
+const headers = {
+  'Content-Type':'application/json',
+  'Accept':'*/*'
+
+};
+
+fetch('/users/login',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'application/json',
+  'Accept' => '*/*'
+}
+
+result = RestClient.post '/users/login',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'application/json',
+  'Accept': '*/*'
+}
+
+r = requests.post('/users/login', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/users/login");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"application/json"},
+        "Accept": []string{"*/*"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/users/login", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /users/login

+

Login with REST API

+
+

Body parameter

+
+
{
+  "username": "string",
+  "password": "pa$$word"
+}
+
+
username: string
+password: pa$$word
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
bodybodyobjecttrueLogin credentials
» usernamebodystringtrueYour username
» passwordbodystring(password)trueYour password
+
+

Example responses

+
+
+

200 Response

+
+

Responses

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessful authenticationInline
400Bad RequestError in authenticationInline
defaultDefaultError in authenticationNone
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» idstringtruenoneUser ID
» tokenstringtruenoneAuthentication token
» tokenExpiresstring(date-time)truenoneToken expiration date
+

Status Code 400

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» errorstringfalsenonenone
» reasonstringfalsenonenone
+ +

register

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /users/register \
+  -H 'Content-Type: application/x-www-form-urlencoded' \
+  -H 'Accept: */*'
+
+
+
POST /users/register HTTP/1.1
+
+Content-Type: application/x-www-form-urlencoded
+Accept: */*
+
+
+
var headers = {
+  'Content-Type':'application/x-www-form-urlencoded',
+  'Accept':'*/*'
+
+};
+
+$.ajax({
+  url: '/users/register',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "username": "string",
+  "password": "pa$$word",
+  "email": "string"
+}';
+const headers = {
+  'Content-Type':'application/x-www-form-urlencoded',
+  'Accept':'*/*'
+
+};
+
+fetch('/users/register',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'application/x-www-form-urlencoded',
+  'Accept' => '*/*'
+}
+
+result = RestClient.post '/users/register',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'application/x-www-form-urlencoded',
+  'Accept': '*/*'
+}
+
+r = requests.post('/users/register', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/users/register");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"application/x-www-form-urlencoded"},
+        "Accept": []string{"*/*"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/users/register", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /users/register

+

Register with REST API

+

Notes:

+ +
+

Body parameter

+
+
username: string
+password: pa$$word
+email: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
bodybodyobjectfalsenone
» usernamebodystringtrueYour username
» passwordbodystring(password)trueYour password
» emailbodystringtrueYour email
+
+

Example responses

+
+
+

200 Response

+
+

Responses

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OKSuccessful registrationInline
400Bad RequestError in registrationInline
defaultDefaultError in registrationNone
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» idstringfalsenonenone
» tokenstringfalsenonenone
» tokenExpiresstringfalsenonenone
+

Status Code 400

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» errornumberfalsenonenone
» reasonstringfalsenonenone
+ +

Boards

+

get_public_boards

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards

+

Get all public boards

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
+ +

new_board

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string",
+  "owner": "string",
+  "isAdmin": true,
+  "isActive": true,
+  "isNoComments": true,
+  "isCommentOnly": true,
+  "isWorker": true,
+  "permission": "string",
+  "color": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards

+

Create a board

+

This allows to create a board.

+

The color has to be chosen between belize, nephritis, pomegranate, +pumpkin, wisteria, moderatepink, strongcyan, +limegreen, midnight, dark, relax, corteza:

+ Wekan logo +
+

Body parameter

+
+
title: string
+owner: string
+isAdmin: true
+isActive: true
+isNoComments: true
+isCommentOnly: true
+isWorker: true
+permission: string
+color: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
bodybodyobjectfalsenone
» titlebodystringtruethe new title of the board
» ownerbodystringtrue"ABCDE12345" <= User ID in Wekan.
» isAdminbodybooleanfalseis the owner an admin of the board (default true)
» isActivebodybooleanfalseis the board active (default true)
» isNoCommentsbodybooleanfalsedisable comments (default false)
» isCommentOnlybodybooleanfalseonly enable comments (default false)
» isWorkerbodybooleanfalseonly move cards, assign himself to card and comment (default false)
» permissionbodystringfalse"private" board <== Set to "public" if you
» colorbodystringfalsethe color of the board
+

Detailed descriptions

+

» owner: "ABCDE12345" <= User ID in Wekan. +(Not username or email)

+

» permission: "private" board <== Set to "public" if you +want public Wekan board

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string",
+  "defaultSwimlaneId": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» defaultSwimlaneIdstringfalsenonenone
+ +

get_board

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}

+

Get the board with that particular ID

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board to retrieve the data
+

Detailed descriptions

+

board: the ID of the board to retrieve the data

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "title": "string",
+  "slug": "string",
+  "archived": true,
+  "archivedAt": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "stars": 0,
+  "labels": [
+    {
+      "_id": "string",
+      "name": "string",
+      "color": "white"
+    }
+  ],
+  "members": [
+    {
+      "userId": "string",
+      "isAdmin": true,
+      "isActive": true,
+      "isNoComments": true,
+      "isCommentOnly": true,
+      "isWorker": true
+    }
+  ],
+  "permission": "public",
+  "orgs": [
+    {
+      "orgId": "string",
+      "orgDisplayName": "string",
+      "isActive": true
+    }
+  ],
+  "teams": [
+    {
+      "teamId": "string",
+      "teamDisplayName": "string",
+      "isActive": true
+    }
+  ],
+  "color": "belize",
+  "backgroundImageURL": "string",
+  "allowsCardCounterList": true,
+  "allowsBoardMemberList": true,
+  "description": "string",
+  "subtasksDefaultBoardId": "string",
+  "subtasksDefaultListId": "string",
+  "dateSettingsDefaultBoardId": "string",
+  "dateSettingsDefaultListId": "string",
+  "allowsSubtasks": true,
+  "allowsAttachments": true,
+  "allowsChecklists": true,
+  "allowsComments": true,
+  "allowsDescriptionTitle": true,
+  "allowsDescriptionText": true,
+  "allowsDescriptionTextOnMinicard": true,
+  "allowsCoverAttachmentOnMinicard": true,
+  "allowsBadgeAttachmentOnMinicard": true,
+  "allowsCardSortingByNumberOnMinicard": true,
+  "allowsCardNumber": true,
+  "allowsActivities": true,
+  "allowsLabels": true,
+  "allowsCreator": true,
+  "allowsCreatorOnMinicard": true,
+  "allowsAssignee": true,
+  "allowsMembers": true,
+  "allowsRequestedBy": true,
+  "allowsCardSortingByNumber": true,
+  "allowsShowLists": true,
+  "allowsAssignedBy": true,
+  "allowsReceivedDate": true,
+  "allowsStartDate": true,
+  "allowsEndDate": true,
+  "allowsDueDate": true,
+  "presentParentTask": "prefix-with-full-path",
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "type": "board",
+  "sort": 0,
+  "showActivities": true
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseBoards
+ +

delete_board

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board} \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board} HTTP/1.1
+
+
+
var headers = {
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}

+

Delete a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board
+

Detailed descriptions

+

board: the ID of the board

+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseNone
+ +

get_board_attachments

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/attachments \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/attachments HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/attachments',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/attachments',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/attachments',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/attachments', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/attachments");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/attachments", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/attachments

+

Get the list of attachments of a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
+

Detailed descriptions

+

board: the board ID

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "attachmentId": "string",
+    "attachmentName": "string",
+    "attachmentType": "string",
+    "url": "string",
+    "urlDownload": "string",
+    "boardId": "string",
+    "swimlaneId": "string",
+    "listId": "string",
+    "cardId": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» attachmentIdstringfalsenonenone
» attachmentNamestringfalsenonenone
» attachmentTypestringfalsenonenone
» urlstringfalsenonenone
» urlDownloadstringfalsenonenone
» boardIdstringfalsenonenone
» swimlaneIdstringfalsenonenone
» listIdstringfalsenonenone
» cardIdstringfalsenonenone
+ +

exportJson

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/export \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/export HTTP/1.1
+
+
+
var headers = {
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/export',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/export',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/export',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/export', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/export");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/export

+

This route is used to export the board to a json file format.

+

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

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board we are exporting
+

Detailed descriptions

+

board: the ID of the board we are exporting

+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseNone
+ +

copy_board

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/copy \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/copy HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/copy',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/copy',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/copy',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/copy', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/copy");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/copy", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/copy

+

Copy a board to a new one

+

If your are board admin or wekan admin, this copies the +given board to a new one.

+
+

Body parameter

+
+
title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board
bodybodyobjectfalsenone
» titlebodystringtruethe title of the new board (default to old one)
+

Detailed descriptions

+

board: the board

+
+

Example responses

+
+
+

200 Response

+
+
"string"
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responsestring
+ +

add_board_label

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/labels \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/labels HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/labels',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "label": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/labels',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/labels',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/labels', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/labels");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/labels", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/labels

+

Add a label to a board

+

If the board doesn't have the name/color label, this function +adds the label to the board.

+
+

Body parameter

+
+
label: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board
bodybodyobjectfalsenone
» labelbodystringtruethe label value
+

Detailed descriptions

+

board: the board

+
+

Example responses

+
+
+

200 Response

+
+
"string"
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responsestring
+ +

set_board_member_permission

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/members/{member} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/members/{member} HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/members/{member}',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "isAdmin": true,
+  "isNoComments": true,
+  "isCommentOnly": true,
+  "isWorker": true
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/members/{member}',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/members/{member}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/members/{member}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/members/{member}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/members/{member}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/members/{member}

+

Change the permission of a member of a board

+
+

Body parameter

+
+
isAdmin: true
+isNoComments: true
+isCommentOnly: true
+isWorker: true
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board that we are changing
memberpathstringtruethe ID of the user to change permissions
bodybodyobjectfalsenone
» isAdminbodybooleantrueadmin capability
» isNoCommentsbodybooleantrueNoComments capability
» isCommentOnlybodybooleantrueCommentsOnly capability
» isWorkerbodybooleantrueWorker capability
+

Detailed descriptions

+

board: the ID of the board that we are changing

+

member: the ID of the user to change permissions

+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseNone
+ +

update_board_title

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/title \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/title HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/title',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/title',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/title',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/title', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/title");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/title", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/title

+

Update the title of a board

+
+

Body parameter

+
+
title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board to update
bodybodyobjectfalsenone
» titlebodystringtruethe new title for the board
+

Detailed descriptions

+

board: the ID of the board to update

+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseNone
+ +

get_boards_count

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards_count \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards_count HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards_count',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards_count',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards_count',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards_count', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards_count");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards_count", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards_count

+

Get public and private boards count

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "private": 0,
+  "public": 0
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» privateintegerfalsenonenone
» publicintegerfalsenonenone
+ +

get_boards_from_user

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/users/{user}/boards \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/users/{user}/boards HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/users/{user}/boards',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/users/{user}/boards',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/users/{user}/boards',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/users/{user}/boards', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/users/{user}/boards");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/users/{user}/boards", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/users/{user}/boards

+

Get all boards attached to a user

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
userpathstringtruethe ID of the user to retrieve the data
+

Detailed descriptions

+

user: the ID of the user to retrieve the data

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
+ +

Checklists

+

get_all_checklists

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/checklists \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/checklists HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/checklists',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/cards/{card}/checklists', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/cards/{card}/checklists

+

Get the list of checklists attached to a card

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
+ +

new_checklist

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/cards/{card}/checklists \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/cards/{card}/checklists HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string",
+  "items": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/cards/{card}/checklists',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/cards/{card}/checklists', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/cards/{card}/checklists

+

create a new checklist

+
+

Body parameter

+
+
title: string
+items: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
bodybodyobjectfalsenone
» titlebodystringtruethe title of the new checklist
» itemsbodystringfalsethe list of items on the new checklist
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_checklist

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/cards/{card}/checklists/{checklist}

+

Get a checklist

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
checklistpathstringtruethe ID of the checklist
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+

checklist: the ID of the checklist

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "cardId": "string",
+  "title": "string",
+  "finishedAt": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "items": [
+    {
+      "_id": "string",
+      "title": "string",
+      "isFinished": true
+    }
+  ]
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» cardIdstringfalsenonenone
» titlestringfalsenonenone
» finishedAtstringfalsenonenone
» createdAtstringfalsenonenone
» sortnumberfalsenonenone
» items[object]falsenonenone
»» _idstringfalsenonenone
»» titlestringfalsenonenone
»» isFinishedbooleanfalsenonenone
+ +

delete_checklist

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}

+

Delete a checklist

+

The checklist will be removed, not put in the recycle bin.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
checklistpathstringtruethe ID of the checklist to remove
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+

checklist: the ID of the checklist to remove

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

ChecklistItems

+

new_checklist_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/cards/{card}/checklists/{checklist}/items',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/cards/{card}/checklists/{checklist}/items', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items

+

add a new item to a checklist

+
+

Body parameter

+
+
title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
checklistpathstringtruethe ID of the checklist
bodybodyobjectfalsenone
» titlebodystringtruethe title of the new item
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+

checklist: the ID of the checklist

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_checklist_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

+

Get a checklist item

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
checklistpathstringtruethe checklist ID
itempathstringtruethe ID of the item
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+

checklist: the checklist ID

+

item: the ID of the item

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "title": "string",
+  "sort": 0,
+  "isFinished": true,
+  "checklistId": "string",
+  "cardId": "string",
+  "createdAt": "string",
+  "modifiedAt": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseChecklistItems
+ +

edit_checklist_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "isFinished": "string",
+  "title": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

+

Edit a checklist item

+
+

Body parameter

+
+
isFinished: string
+title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
checklistpathstringtruethe checklist ID
itempathstringtruethe ID of the item
bodybodyobjectfalsenone
» isFinishedbodystringfalseis the item checked?
» titlebodystringfalsethe new text of the item
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+

checklist: the checklist ID

+

item: the ID of the item

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_checklist_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}

+

Delete a checklist item

+

Note: this operation can't be reverted.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
cardpathstringtruethe card ID
checklistpathstringtruethe checklist ID
itempathstringtruethe ID of the item to be removed
+

Detailed descriptions

+

board: the board ID

+

card: the card ID

+

checklist: the checklist ID

+

item: the ID of the item to be removed

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

CardComments

+

get_all_comments

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/comments \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/comments HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/comments',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/comments',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/comments',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/cards/{card}/comments', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/cards/{card}/comments

+

Get all comments attached to a card

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the card
cardpathstringtruethe ID of the card
+

Detailed descriptions

+

board: the board ID of the card

+

card: the ID of the card

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "comment": "string",
+    "authorId": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» commentstringfalsenonenone
» authorIdstringfalsenonenone
+ +

new_comment

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/cards/{card}/comments \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/cards/{card}/comments HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/comments',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "authorId": "string",
+  "comment": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/comments',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/cards/{card}/comments',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/cards/{card}/comments', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/comments");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/cards/{card}/comments", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/cards/{card}/comments

+

Add a comment on a card

+
+

Body parameter

+
+
authorId: string
+comment: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the card
cardpathstringtruethe ID of the card
bodybodyobjectfalsenone
» authorIdbodystringtruethe user who 'posted' the comment
» commentbodystringtruethe comment value
+

Detailed descriptions

+

board: the board ID of the card

+

card: the ID of the card

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_comment

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/comments/{comment} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/comments/{comment}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/cards/{card}/comments/{comment}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/cards/{card}/comments/{comment}

+

Get a comment on a card

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the card
cardpathstringtruethe ID of the card
commentpathstringtruethe ID of the comment to retrieve
+

Detailed descriptions

+

board: the board ID of the card

+

card: the ID of the card

+

comment: the ID of the comment to retrieve

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "boardId": "string",
+  "cardId": "string",
+  "text": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "userId": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseCardComments
+ +

delete_comment

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/cards/{card}/comments/{comment} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards/{card}/comments/{comment}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards/{card}/comments/{comment}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/cards/{card}/comments/{comment}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/cards/{card}/comments/{comment}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards/{card}/comments/{comment}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/cards/{card}/comments/{comment}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/cards/{card}/comments/{comment}

+

Delete a comment on a card

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the card
cardpathstringtruethe ID of the card
commentpathstringtruethe ID of the comment to delete
+

Detailed descriptions

+

board: the board ID of the card

+

card: the ID of the card

+

comment: the ID of the comment to delete

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

Cards

+

get_cards_by_custom_field

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}

+

Get all Cards that matchs a value of a specific custom field

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
customFieldpathstringtruethe list ID
customFieldValuepathstringtruethe value to look for
+

Detailed descriptions

+

board: the board ID

+

customField: the list ID

+

customFieldValue: the value to look for

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string",
+    "description": "string",
+    "listId": "string",
+    "swinlaneId": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
» descriptionstringfalsenonenone
» listIdstringfalsenonenone
» swinlaneIdstringfalsenonenone
+ +

get_board_cards_count

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards_count \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards_count HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/cards_count',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/cards_count',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards_count',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/cards_count', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/cards_count");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/cards_count", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/cards_count

+

Get a cards count to a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
+

Detailed descriptions

+

board: the board ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "board_cards_count": 0
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» board_cards_countintegerfalsenonenone
+ +

get_all_cards

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/lists/{list}/cards \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/lists/{list}/cards HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}/cards',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}/cards',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/lists/{list}/cards',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/lists/{list}/cards', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/lists/{list}/cards

+

Get all Cards attached to a List

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
listpathstringtruethe list ID
+

Detailed descriptions

+

board: the board ID

+

list: the list ID

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string",
+    "description": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
» descriptionstringfalsenonenone
+ +

new_card

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/lists/{list}/cards \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/lists/{list}/cards HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}/cards',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "authorId": "string",
+  "members": "string",
+  "assignees": "string",
+  "title": "string",
+  "description": "string",
+  "swimlaneId": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}/cards',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/lists/{list}/cards',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/lists/{list}/cards', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}/cards");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/lists/{list}/cards

+

Create a new Card

+
+

Body parameter

+
+
authorId: string
+members: string
+assignees: string
+title: string
+description: string
+swimlaneId: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the new card
listpathstringtruethe list ID of the new card
bodybodyobjectfalsenone
» authorIdbodystringtruethe authorId value
» membersbodystringfalsethe member IDs list of the new card
» assigneesbodystringfalsethe assignee IDs list of the new card
» titlebodystringtruethe title of the new card
» descriptionbodystringtruethe description of the new card
» swimlaneIdbodystringtruethe swimlane ID of the new card
+

Detailed descriptions

+

board: the board ID of the new card

+

list: the list ID of the new card

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_card

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/lists/{list}/cards/{card} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}/cards/{card}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}/cards/{card}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/lists/{list}/cards/{card}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/lists/{list}/cards/{card}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards/{card}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/lists/{list}/cards/{card}

+

Get a Card

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
listpathstringtruethe list ID of the card
cardpathstringtruethe card ID
+

Detailed descriptions

+

board: the board ID

+

list: the list ID of the card

+

card: the card ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "title": "string",
+  "archived": true,
+  "archivedAt": "string",
+  "parentId": "string",
+  "listId": "string",
+  "swimlaneId": "string",
+  "boardId": "string",
+  "coverId": "string",
+  "color": "white",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "customFields": [
+    {}
+  ],
+  "dateLastActivity": "string",
+  "description": "string",
+  "requestedBy": "string",
+  "assignedBy": "string",
+  "labelIds": [
+    "string"
+  ],
+  "members": [
+    "string"
+  ],
+  "assignees": [
+    "string"
+  ],
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "userId": "string",
+  "sort": 0,
+  "subtaskSort": 0,
+  "type": "string",
+  "linkedId": "string",
+  "vote": {
+    "question": "string",
+    "positive": [
+      "string"
+    ],
+    "negative": [
+      "string"
+    ],
+    "end": "string",
+    "public": true,
+    "allowNonBoardMembers": true
+  },
+  "poker": {
+    "question": true,
+    "one": [
+      "string"
+    ],
+    "two": [
+      "string"
+    ],
+    "three": [
+      "string"
+    ],
+    "five": [
+      "string"
+    ],
+    "eight": [
+      "string"
+    ],
+    "thirteen": [
+      "string"
+    ],
+    "twenty": [
+      "string"
+    ],
+    "forty": [
+      "string"
+    ],
+    "oneHundred": [
+      "string"
+    ],
+    "unsure": [
+      "string"
+    ],
+    "end": "string",
+    "allowNonBoardMembers": true,
+    "estimation": 0
+  },
+  "targetId_gantt": [
+    "string"
+  ],
+  "linkType_gantt": [
+    0
+  ],
+  "linkId_gantt": [
+    "string"
+  ],
+  "cardNumber": 0,
+  "showActivities": true,
+  "hideFinishedChecklistIfItemsAreHidden": true
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseCards
+ +

edit_card

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/lists/{list}/cards/{card} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}/cards/{card}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "newBoardId": "string",
+  "newSwimlaneId": "string",
+  "newListId": "string",
+  "title": "string",
+  "sort": "string",
+  "parentId": "string",
+  "description": "string",
+  "color": "string",
+  "vote": {},
+  "poker": {},
+  "labelIds": "string",
+  "requestedBy": "string",
+  "assignedBy": "string",
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": "string",
+  "isOverTime": true,
+  "customFields": "string",
+  "members": "string",
+  "assignees": "string",
+  "swimlaneId": "string",
+  "listId": "string",
+  "authorId": "string",
+  "archive": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}/cards/{card}',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/lists/{list}/cards/{card}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/lists/{list}/cards/{card}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/lists/{list}/cards/{card}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/lists/{list}/cards/{card}

+

Edit Fields in a Card

+

Edit a card

+

The color has to be chosen between white, green, yellow, orange, +red, purple, blue, sky, lime, pink, black, silver, +peachpuff, crimson, plum, darkgreen, slateblue, magenta, +gold, navy, gray, saddlebrown, paleturquoise, mistyrose, +indigo:

+ Wekan card colors +

Note: setting the color to white has the same effect than removing it.

+
+

Body parameter

+
+
newBoardId: string
+newSwimlaneId: string
+newListId: string
+title: string
+sort: string
+parentId: string
+description: string
+color: string
+vote: {}
+poker: {}
+labelIds: string
+requestedBy: string
+assignedBy: string
+receivedAt: string
+startAt: string
+dueAt: string
+endAt: string
+spentTime: string
+isOverTime: true
+customFields: string
+members: string
+assignees: string
+swimlaneId: string
+listId: string
+authorId: string
+archive: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the card
listpathstringtruethe list ID of the card
cardpathstringtruethe ID of the card
bodybodyobjectfalsenone
» newBoardIdbodystringtruethe newBoardId value
» newSwimlaneIdbodystringtruethe newSwimlaneId value
» newListIdbodystringtruethe newListId value
» titlebodystringfalsethe new title of the card
» sortbodystringfalsethe new sort value of the card
» parentIdbodystringfalsechange the parent of the card
» descriptionbodystringfalsethe new description of the card
» colorbodystringfalsethe new color of the card
» votebodyobjectfalsethe vote object
» pokerbodyobjectfalsethe poker object
» labelIdsbodystringfalsethe new list of label IDs attached to the card
» requestedBybodystringfalsethe new requestedBy field of the card
» assignedBybodystringfalsethe new assignedBy field of the card
» receivedAtbodystringfalsethe new receivedAt field of the card
» startAtbodystringfalsethe new startAt field of the card
» dueAtbodystringfalsethe new dueAt field of the card
» endAtbodystringfalsethe new endAt field of the card
» spentTimebodystringfalsethe new spentTime field of the card
» isOverTimebodybooleanfalsethe new isOverTime field of the card
» customFieldsbodystringfalsethe new customFields value of the card
» membersbodystringfalsethe new list of member IDs attached to the card
» assigneesbodystringfalsethe array of maximum one ID of assignee attached to the card
» swimlaneIdbodystringfalsethe new swimlane ID of the card
» listIdbodystringfalsethe new list ID of the card (move operation)
» authorIdbodystringfalsechange the owner of the card
» archivebodystringtruethe archive value
+

Detailed descriptions

+

board: the board ID of the card

+

list: the list ID of the card

+

card: the ID of the card

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_card

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/lists/{list}/cards/{card} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}/cards/{card}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}/cards/{card}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/lists/{list}/cards/{card}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/lists/{list}/cards/{card}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}/cards/{card}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/lists/{list}/cards/{card}

+

Delete a card from a board

+

This operation deletes a card, and therefore the card +is not put in the recycle bin.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the card
listpathstringtruethe list ID of the card
cardpathstringtruethe ID of the card
+

Detailed descriptions

+

board: the board ID of the card

+

list: the list ID of the card

+

card: the ID of the card

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

edit_card_custom_field

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "value": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}

+

Edit Custom Field in a Card

+

Edit a custom field value in a card

+
+

Body parameter

+
+
value: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID of the card
listpathstringtruethe list ID of the card
cardpathstringtruethe ID of the card
customFieldpathstringtruethe ID of the custom field
bodybodyobjectfalsenone
» valuebodystringtruethe new custom field value
+

Detailed descriptions

+

board: the board ID of the card

+

list: the list ID of the card

+

card: the ID of the card

+

customField: the ID of the custom field

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string",
+  "customFields": [
+    {
+      "_id": "string",
+      "value": {}
+    }
+  ]
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» customFields[object]falsenonenone
»» _idstringfalsenonenone
»» valueobjectfalsenonenone
+ +

get_list_cards_count

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/lists/{list}/cards_count \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/lists/{list}/cards_count HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}/cards_count',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}/cards_count',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/lists/{list}/cards_count',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/lists/{list}/cards_count', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}/cards_count");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}/cards_count", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/lists/{list}/cards_count

+

Get a cards count to a list

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
listpathstringtruethe List ID
+

Detailed descriptions

+

board: the board ID

+

list: the List ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "list_cards_count": 0
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» list_cards_countintegerfalsenonenone
+ +

get_swimlane_cards

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/swimlanes/{swimlane}/cards \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/swimlanes/{swimlane}/cards HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/swimlanes/{swimlane}/cards',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/swimlanes/{swimlane}/cards',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}/cards',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/swimlanes/{swimlane}/cards', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}/cards");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}/cards", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/swimlanes/{swimlane}/cards

+

get all cards attached to a swimlane

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
swimlanepathstringtruethe swimlane ID
+

Detailed descriptions

+

board: the board ID

+

swimlane: the swimlane ID

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string",
+    "description": "string",
+    "listId": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
» descriptionstringfalsenonenone
» listIdstringfalsenonenone
+ +

get_card_by_id

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/cards/{card} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/cards/{card} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/cards/{card}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/cards/{card}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/cards/{card}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/cards/{card}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/cards/{card}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/cards/{card}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/cards/{card}

+

Get a Card by Card ID

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
cardpathstringtruethe card ID
+

Detailed descriptions

+

card: the card ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "title": "string",
+  "archived": true,
+  "archivedAt": "string",
+  "parentId": "string",
+  "listId": "string",
+  "swimlaneId": "string",
+  "boardId": "string",
+  "coverId": "string",
+  "color": "white",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "customFields": [
+    {}
+  ],
+  "dateLastActivity": "string",
+  "description": "string",
+  "requestedBy": "string",
+  "assignedBy": "string",
+  "labelIds": [
+    "string"
+  ],
+  "members": [
+    "string"
+  ],
+  "assignees": [
+    "string"
+  ],
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "userId": "string",
+  "sort": 0,
+  "subtaskSort": 0,
+  "type": "string",
+  "linkedId": "string",
+  "vote": {
+    "question": "string",
+    "positive": [
+      "string"
+    ],
+    "negative": [
+      "string"
+    ],
+    "end": "string",
+    "public": true,
+    "allowNonBoardMembers": true
+  },
+  "poker": {
+    "question": true,
+    "one": [
+      "string"
+    ],
+    "two": [
+      "string"
+    ],
+    "three": [
+      "string"
+    ],
+    "five": [
+      "string"
+    ],
+    "eight": [
+      "string"
+    ],
+    "thirteen": [
+      "string"
+    ],
+    "twenty": [
+      "string"
+    ],
+    "forty": [
+      "string"
+    ],
+    "oneHundred": [
+      "string"
+    ],
+    "unsure": [
+      "string"
+    ],
+    "end": "string",
+    "allowNonBoardMembers": true,
+    "estimation": 0
+  },
+  "targetId_gantt": [
+    "string"
+  ],
+  "linkType_gantt": [
+    0
+  ],
+  "linkId_gantt": [
+    "string"
+  ],
+  "cardNumber": 0,
+  "showActivities": true,
+  "hideFinishedChecklistIfItemsAreHidden": true
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseCards
+ +

CustomFields

+

get_all_custom_fields

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/custom-fields \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/custom-fields HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/custom-fields',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/custom-fields', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/custom-fields

+

Get the list of Custom Fields attached to a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "name": "string",
+    "type": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» namestringfalsenonenone
» typestringfalsenonenone
+ +

new_custom_field

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/custom-fields \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/custom-fields HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "name": "string",
+  "type": "string",
+  "settings": "string",
+  "showOnCard": true,
+  "automaticallyOnCard": true,
+  "showLabelOnMiniCard": true,
+  "showSumAtTopOfList": true,
+  "authorId": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/custom-fields',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/custom-fields', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/custom-fields

+

Create a Custom Field

+
+

Body parameter

+
+
name: string
+type: string
+settings: string
+showOnCard: true
+automaticallyOnCard: true
+showLabelOnMiniCard: true
+showSumAtTopOfList: true
+authorId: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
bodybodyobjectfalsenone
» namebodystringtruethe name of the custom field
» typebodystringtruethe type of the custom field
» settingsbodystringtruethe settings object of the custom field
» showOnCardbodybooleantrueshould we show the custom field on cards?
» automaticallyOnCardbodybooleantrueshould the custom fields automatically be added on cards?
» showLabelOnMiniCardbodybooleantrueshould the label of the custom field be shown on minicards?
» showSumAtTopOfListbodybooleantrueshould the sum of the custom fields be shown at top of list?
» authorIdbodystringtruethe authorId value
+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_custom_field

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/custom-fields/{customField} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/custom-fields/{customField} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields/{customField}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields/{customField}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/custom-fields/{customField}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/custom-fields/{customField}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/custom-fields/{customField}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/custom-fields/{customField}

+

Get a Custom Fields attached to a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe ID of the custom field
+

Detailed descriptions

+

customField: the ID of the custom field

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "boardIds": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» boardIdsstringfalsenonenone
+ +

edit_custom_field

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/custom-fields/{customField} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/custom-fields/{customField} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields/{customField}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "name": "string",
+  "type": "string",
+  "settings": "string",
+  "showOnCard": true,
+  "automaticallyOnCard": true,
+  "alwaysOnCard": "string",
+  "showLabelOnMiniCard": true,
+  "showSumAtTopOfList": true
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields/{customField}',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/custom-fields/{customField}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/custom-fields/{customField}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/custom-fields/{customField}

+

Update a Custom Field

+
+

Body parameter

+
+
name: string
+type: string
+settings: string
+showOnCard: true
+automaticallyOnCard: true
+alwaysOnCard: string
+showLabelOnMiniCard: true
+showSumAtTopOfList: true
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe customField value
bodybodyobjectfalsenone
» namebodystringtruethe name of the custom field
» typebodystringtruethe type of the custom field
» settingsbodystringtruethe settings object of the custom field
» showOnCardbodybooleantrueshould we show the custom field on cards
» automaticallyOnCardbodybooleantrueshould the custom fields automatically be added on cards
» alwaysOnCardbodystringtruethe alwaysOnCard value
» showLabelOnMiniCardbodybooleantrueshould the label of the custom field be shown on minicards
» showSumAtTopOfListbodybooleantrueshould the sum of the custom fields be shown at top of list
+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_custom_field

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/custom-fields/{customField} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/custom-fields/{customField} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields/{customField}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields/{customField}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/custom-fields/{customField}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields/{customField}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/custom-fields/{customField}

+

Delete a Custom Fields attached to a board

+

The Custom Field can't be retrieved after this operation

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe ID of the custom field
+

Detailed descriptions

+

customField: the ID of the custom field

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

add_custom_field_dropdown_items

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/custom-fields/{customField}/dropdown-items \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/custom-fields/{customField}/dropdown-items HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "items": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/custom-fields/{customField}/dropdown-items',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/custom-fields/{customField}/dropdown-items', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/custom-fields/{customField}/dropdown-items", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/custom-fields/{customField}/dropdown-items

+

Update a Custom Field's dropdown items

+
+

Body parameter

+
+
items: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe customField value
bodybodyobjectfalsenone
» itemsbodystringfalsenames of the custom field
+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

edit_custom_field_dropdown_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "name": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}

+

Update a Custom Field's dropdown item

+
+

Body parameter

+
+
name: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe customField value
dropdownItempathstringtruethe dropdownItem value
bodybodyobjectfalsenone
» namebodystringtruenames of the custom field
+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_custom_field_dropdown_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}

+

Update a Custom Field's dropdown items

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe customField value
dropdownItempathstringtruethe dropdownItem value
+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

Integrations

+

get_all_integrations

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/integrations \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/integrations HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/integrations',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/integrations',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/integrations',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/integrations', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/integrations");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/integrations

+

Get all integrations in board

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
+

Detailed descriptions

+

board: the board ID

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "enabled": true,
+    "title": "string",
+    "type": "string",
+    "activities": [
+      "string"
+    ],
+    "url": "string",
+    "token": "string",
+    "boardId": "string",
+    "createdAt": "string",
+    "modifiedAt": "string",
+    "userId": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
anonymous[Integrations]falsenone[Integration with third-party applications]
» enabledbooleantruenoneis the integration enabled?
» titlestring|nullfalsenonename of the integration
» typestringtruenonetype of the integratation (Default to 'outgoing-webhooks')
» activities[string]truenoneactivities the integration gets triggered (list)
» urlstringtruenonenone
» tokenstring|nullfalsenonetoken of the integration
» boardIdstringtruenoneBoard ID of the integration
» createdAtstringtruenoneCreation date of the integration
» modifiedAtstringtruenonenone
» userIdstringtruenoneuser ID who created the interation
+ +

new_integration

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/integrations \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/integrations HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/integrations',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "url": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/integrations',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/integrations',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/integrations', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/integrations");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/integrations

+

Create a new integration

+
+

Body parameter

+
+
url: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
bodybodyobjectfalsenone
» urlbodystringtruethe URL of the integration
+

Detailed descriptions

+

board: the board ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_integration

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/integrations/{int} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/integrations/{int} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/integrations/{int}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/integrations/{int}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/integrations/{int}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/integrations/{int}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/integrations/{int}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/integrations/{int}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/integrations/{int}

+

Get a single integration in board

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
intpathstringtruethe integration ID
+

Detailed descriptions

+

board: the board ID

+

int: the integration ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "enabled": true,
+  "title": "string",
+  "type": "string",
+  "activities": [
+    "string"
+  ],
+  "url": "string",
+  "token": "string",
+  "boardId": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "userId": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseIntegrations
+ +

edit_integration

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/integrations/{int} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/integrations/{int} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/integrations/{int}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "enabled": "string",
+  "title": "string",
+  "url": "string",
+  "token": "string",
+  "activities": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/integrations/{int}',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/integrations/{int}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/integrations/{int}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/integrations/{int}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/integrations/{int}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/integrations/{int}

+

Edit integration data

+
+

Body parameter

+
+
enabled: string
+title: string
+url: string
+token: string
+activities: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
intpathstringtruethe integration ID
bodybodyobjectfalsenone
» enabledbodystringfalseis the integration enabled?
» titlebodystringfalsenew name of the integration
» urlbodystringfalsenew URL of the integration
» tokenbodystringfalsenew token of the integration
» activitiesbodystringfalsenew list of activities of the integration
+

Detailed descriptions

+

board: the board ID

+

int: the integration ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_integration

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/integrations/{int} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/integrations/{int} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/integrations/{int}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/integrations/{int}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/integrations/{int}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/integrations/{int}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/integrations/{int}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/integrations/{int}

+

Delete integration

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
intpathstringtruethe integration ID
+

Detailed descriptions

+

board: the board ID

+

int: the integration ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_integration_activities

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/integrations/{int}/activities \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/integrations/{int}/activities HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/integrations/{int}/activities',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/integrations/{int}/activities',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/integrations/{int}/activities',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/integrations/{int}/activities', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/integrations/{int}/activities", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/integrations/{int}/activities

+

Delete subscribed activities

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
intpathstringtruethe integration ID
+

Detailed descriptions

+

board: the board ID

+

int: the integration ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "enabled": true,
+  "title": "string",
+  "type": "string",
+  "activities": [
+    "string"
+  ],
+  "url": "string",
+  "token": "string",
+  "boardId": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "userId": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseIntegrations
+ +

new_integration_activities

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/integrations/{int}/activities \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/integrations/{int}/activities HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/integrations/{int}/activities',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "activities": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/integrations/{int}/activities',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/integrations/{int}/activities',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/integrations/{int}/activities', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/integrations/{int}/activities");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/integrations/{int}/activities", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/integrations/{int}/activities

+

Add subscribed activities

+
+

Body parameter

+
+
activities: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
intpathstringtruethe integration ID
bodybodyobjectfalsenone
» activitiesbodystringtruethe activities value
+

Detailed descriptions

+

board: the board ID

+

int: the integration ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "enabled": true,
+  "title": "string",
+  "type": "string",
+  "activities": [
+    "string"
+  ],
+  "url": "string",
+  "token": "string",
+  "boardId": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "userId": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseIntegrations
+ +

Lists

+

get_all_lists

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/lists \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/lists HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/lists',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/lists', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/lists", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/lists

+

Get the list of Lists attached to a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
+

Detailed descriptions

+

board: the board ID

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
+ +

new_list

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/lists \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/lists HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/lists',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/lists', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/lists", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/lists

+

Add a List to a board

+
+

Body parameter

+
+
title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
bodybodyobjectfalsenone
» titlebodystringtruethe title of the List
+

Detailed descriptions

+

board: the board ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_list

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/lists/{list} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/lists/{list} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/lists/{list}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/lists/{list}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/lists/{list}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/lists/{list}

+

Get a List attached to a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
listpathstringtruethe List ID
+

Detailed descriptions

+

board: the board ID

+

list: the List ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "title": "string",
+  "starred": true,
+  "archived": true,
+  "archivedAt": "string",
+  "boardId": "string",
+  "swimlaneId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "wipLimit": {
+    "value": 0,
+    "enabled": true,
+    "soft": true
+  },
+  "color": "white",
+  "type": "string",
+  "collapsed": true
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseLists
+ +

edit_list

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/lists/{list} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/lists/{list} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string",
+  "color": "string",
+  "starred": true,
+  "collapsed": true,
+  "wipLimit": {}
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/lists/{list}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/lists/{list}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/lists/{list}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/lists/{list}

+

Edit a List

+

This updates a list on a board. +You can update the title, color, wipLimit, starred, and collapsed properties.

+
+

Body parameter

+
+
title: string
+color: string
+starred: true
+collapsed: true
+wipLimit: {}
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
listpathstringtruethe ID of the list to update
bodybodyobjectfalsenone
» titlebodystringfalsethe new title of the list
» colorbodystringfalsethe new color of the list
» starredbodybooleanfalsewhether the list is starred
» collapsedbodybooleanfalsewhether the list is collapsed
» wipLimitbodyobjectfalsethe WIP limit configuration
+

Detailed descriptions

+

board: the board ID

+

list: the ID of the list to update

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_list

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/lists/{list} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/lists/{list} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/lists/{list}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/lists/{list}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/lists/{list}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/lists/{list}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/lists/{list}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/lists/{list}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/lists/{list}

+

Delete a List

+

This deletes a list from a board. +The list is not put in the recycle bin.

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
listpathstringtruethe ID of the list to remove
+

Detailed descriptions

+

board: the board ID

+

list: the ID of the list to remove

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

Swimlanes

+

get_all_swimlanes

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/swimlanes \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/swimlanes HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/swimlanes',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/swimlanes',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/swimlanes',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/swimlanes', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/swimlanes");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/swimlanes

+

Get the list of swimlanes attached to a board

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board
+

Detailed descriptions

+

board: the ID of the board

+
+

Example responses

+
+
+

200 Response

+
+
[
+  {
+    "_id": "string",
+    "title": "string"
+  }
+]
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
» titlestringfalsenonenone
+ +

new_swimlane

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/swimlanes \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/swimlanes HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/swimlanes',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/swimlanes',
+{
+  method: 'POST',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.post '/api/boards/{board}/swimlanes',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.post('/api/boards/{board}/swimlanes', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/swimlanes");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("POST");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("POST", "/api/boards/{board}/swimlanes", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/swimlanes

+

Add a swimlane to a board

+
+

Body parameter

+
+
title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board
bodybodynew_swimlanefalsenone
» titlebodystringtruethe new title of the swimlane
+

Detailed descriptions

+

board: the ID of the board

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

get_swimlane

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/swimlanes/{swimlane} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/swimlanes/{swimlane}',
+  method: 'get',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/swimlanes/{swimlane}',
+{
+  method: 'GET',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/swimlanes/{swimlane}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("GET", "/api/boards/{board}/swimlanes/{swimlane}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/boards/{board}/swimlanes/{swimlane}

+

Get a swimlane

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board
swimlanepathstringtruethe ID of the swimlane
+

Detailed descriptions

+

board: the ID of the board

+

swimlane: the ID of the swimlane

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "title": "string",
+  "archived": true,
+  "archivedAt": "string",
+  "boardId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "color": "white",
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "type": "string",
+  "collapsed": true
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseSwimlanes
+ +

edit_swimlane

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/boards/{board}/swimlanes/{swimlane} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
+
+Content-Type: multipart/form-data
+Accept: application/json
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/swimlanes/{swimlane}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "title": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/swimlanes/{swimlane}',
+{
+  method: 'PUT',
+  body: inputBody,
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Content-Type' => 'multipart/form-data',
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.put '/api/boards/{board}/swimlanes/{swimlane}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'multipart/form-data',
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.put('/api/boards/{board}/swimlanes/{swimlane}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("PUT");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Content-Type": []string{"multipart/form-data"},
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("PUT", "/api/boards/{board}/swimlanes/{swimlane}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/boards/{board}/swimlanes/{swimlane}

+

Edit the title of a swimlane

+
+

Body parameter

+
+
title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board
swimlanepathstringtruethe ID of the swimlane to edit
bodybodynew_swimlanefalsenone
» titlebodystringtruethe new title of the swimlane
+

Detailed descriptions

+

board: the ID of the board

+

swimlane: the ID of the swimlane to edit

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

delete_swimlane

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/swimlanes/{swimlane} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/swimlanes/{swimlane}',
+  method: 'delete',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+
+const headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/swimlanes/{swimlane}',
+{
+  method: 'DELETE',
+
+  headers: headers
+})
+.then(function(res) {
+    return res.json();
+}).then(function(body) {
+    console.log(body);
+});
+
+
+
require 'rest-client'
+require 'json'
+
+headers = {
+  'Accept' => 'application/json',
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/swimlanes/{swimlane}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/boards/{board}/swimlanes/{swimlane}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/swimlanes/{swimlane}");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("DELETE");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+    new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+    response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+
package main
+
+import (
+       "bytes"
+       "net/http"
+)
+
+func main() {
+
+    headers := map[string][]string{
+        "Accept": []string{"application/json"},
+        "Authorization": []string{"API_KEY"},
+        
+    }
+
+    data := bytes.NewBuffer([]byte{jsonReq})
+    req, err := http.NewRequest("DELETE", "/api/boards/{board}/swimlanes/{swimlane}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/boards/{board}/swimlanes/{swimlane}

+

Delete a swimlane

+

The swimlane will be deleted, not moved to the recycle bin

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe ID of the board
swimlanepathstringtruethe ID of the swimlane
+

Detailed descriptions

+

board: the ID of the board

+

swimlane: the ID of the swimlane

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "_id": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseInline
+

Response Schema

+

Status Code 200

+ + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» _idstringfalsenonenone
+ +

Schemas

+

Boards

+

+
{
+  "title": "string",
+  "slug": "string",
+  "archived": true,
+  "archivedAt": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "stars": 0,
+  "labels": [
+    {
+      "_id": "string",
+      "name": "string",
+      "color": "white"
+    }
+  ],
+  "members": [
+    {
+      "userId": "string",
+      "isAdmin": true,
+      "isActive": true,
+      "isNoComments": true,
+      "isCommentOnly": true,
+      "isWorker": true
+    }
+  ],
+  "permission": "public",
+  "orgs": [
+    {
+      "orgId": "string",
+      "orgDisplayName": "string",
+      "isActive": true
+    }
+  ],
+  "teams": [
+    {
+      "teamId": "string",
+      "teamDisplayName": "string",
+      "isActive": true
+    }
+  ],
+  "color": "belize",
+  "backgroundImageURL": "string",
+  "allowsCardCounterList": true,
+  "allowsBoardMemberList": true,
+  "description": "string",
+  "subtasksDefaultBoardId": "string",
+  "subtasksDefaultListId": "string",
+  "dateSettingsDefaultBoardId": "string",
+  "dateSettingsDefaultListId": "string",
+  "allowsSubtasks": true,
+  "allowsAttachments": true,
+  "allowsChecklists": true,
+  "allowsComments": true,
+  "allowsDescriptionTitle": true,
+  "allowsDescriptionText": true,
+  "allowsDescriptionTextOnMinicard": true,
+  "allowsCoverAttachmentOnMinicard": true,
+  "allowsBadgeAttachmentOnMinicard": true,
+  "allowsCardSortingByNumberOnMinicard": true,
+  "allowsCardNumber": true,
+  "allowsActivities": true,
+  "allowsLabels": true,
+  "allowsCreator": true,
+  "allowsCreatorOnMinicard": true,
+  "allowsAssignee": true,
+  "allowsMembers": true,
+  "allowsRequestedBy": true,
+  "allowsCardSortingByNumber": true,
+  "allowsShowLists": true,
+  "allowsAssignedBy": true,
+  "allowsReceivedDate": true,
+  "allowsStartDate": true,
+  "allowsEndDate": true,
+  "allowsDueDate": true,
+  "presentParentTask": "prefix-with-full-path",
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "type": "board",
+  "sort": 0,
+  "showActivities": true
+}
+
+
+

This is a Board.

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestringtruenoneThe title of the board
slugstringtruenoneThe title slugified.
archivedbooleantruenoneIs the board archived?
archivedAtstring|nullfalsenoneLatest archiving time of the board
createdAtstringtruenoneCreation time of the board
modifiedAtstring|nullfalsenoneLast modification time of the board
starsnumbertruenoneHow many stars the board has
labels[BoardsLabels]|nullfalsenoneList of labels attached to a board
members[BoardsMembers]truenoneList of members of a board
permissionstringtruenonevisibility of the board
orgs[BoardsOrgs]|nullfalsenonethe list of organizations that a board belongs to
teams[BoardsTeams]|nullfalsenonethe list of teams that a board belongs to
colorstringtruenoneThe color of the board.
backgroundImageURLstring|nullfalsenoneThe background image URL of the board.
allowsCardCounterListbooleantruenoneShow card counter per list
allowsBoardMemberListbooleantruenoneShow board member list
descriptionstring|nullfalsenoneThe description of the board
subtasksDefaultBoardIdstring|nullfalsenoneThe default board ID assigned to subtasks.
subtasksDefaultListIdstring|nullfalsenoneThe default List ID assigned to subtasks.
dateSettingsDefaultBoardIdstring|nullfalsenonenone
dateSettingsDefaultListIdstring|nullfalsenonenone
allowsSubtasksbooleantruenoneDoes the board allows subtasks?
allowsAttachmentsbooleantruenoneDoes the board allows attachments?
allowsChecklistsbooleantruenoneDoes the board allows checklists?
allowsCommentsbooleantruenoneDoes the board allows comments?
allowsDescriptionTitlebooleantruenoneDoes the board allows description title?
allowsDescriptionTextbooleantruenoneDoes the board allows description text?
allowsDescriptionTextOnMinicardbooleantruenoneDoes the board allows description text on minicard?
allowsCoverAttachmentOnMinicardbooleantruenoneDoes the board allows cover attachment on minicard?
allowsBadgeAttachmentOnMinicardbooleantruenoneDoes the board allows badge attachment on minicard?
allowsCardSortingByNumberOnMinicardbooleantruenoneDoes the board allows card sorting by number on minicard?
allowsCardNumberbooleantruenoneDoes the board allows card numbers?
allowsActivitiesbooleantruenoneDoes the board allows comments?
allowsLabelsbooleantruenoneDoes the board allows labels?
allowsCreatorbooleantruenoneDoes the board allow creator?
allowsCreatorOnMinicardbooleantruenoneDoes the board allow creator?
allowsAssigneebooleantruenoneDoes the board allows assignee?
allowsMembersbooleantruenoneDoes the board allows members?
allowsRequestedBybooleantruenoneDoes the board allows requested by?
allowsCardSortingByNumberbooleantruenoneDoes the board allows card sorting by number?
allowsShowListsbooleantruenoneDoes the board allows show lists on the card?
allowsAssignedBybooleantruenoneDoes the board allows requested by?
allowsReceivedDatebooleantruenoneDoes the board allows received date?
allowsStartDatebooleantruenoneDoes the board allows start date?
allowsEndDatebooleantruenoneDoes the board allows end date?
allowsDueDatebooleantruenoneDoes the board allows due date?
presentParentTaskstring|nullfalsenoneControls how to present the parent task: - prefix-with-full-path: add a prefix with the full path - prefix-with-parent: add a prefisx with the parent name - subtext-with-full-path: add a subtext with the full path - subtext-with-parent: add a subtext with the parent name - no-parent: does not show the parent at all
receivedAtstring|nullfalsenoneDate the card was received
startAtstring|nullfalsenoneStarting date of the board.
dueAtstring|nullfalsenoneDue date of the board.
endAtstring|nullfalsenoneEnd date of the board.
spentTimenumber|nullfalsenoneTime spent in the board.
isOvertimeboolean|nullfalsenoneIs the board overtimed?
typestringtruenoneThe type of board possible values: board, template-board, template-container
sortnumbertruenoneSort value
showActivitiesbooleantruenonenone
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
permissionpublic
permissionprivate
colorbelize
colornephritis
colorpomegranate
colorpumpkin
colorwisteria
colormoderatepink
colorstrongcyan
colorlimegreen
colormidnight
colordark
colorrelax
colorcorteza
colorclearblue
colornatural
colormodern
colormoderndark
colorexodark
colorcleandark
colorcleanlight
presentParentTaskprefix-with-full-path
presentParentTaskprefix-with-parent
presentParentTasksubtext-with-full-path
presentParentTasksubtext-with-parent
presentParentTaskno-parent
typeboard
typetemplate-board
typetemplate-container
+

BoardsLabels

+

+
{
+  "_id": "string",
+  "name": "string",
+  "color": "white"
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
_idstringtruenoneUnique id of a label
namestringfalsenoneName of a label
colorstringtruenonecolor of a label. Can be amongst green, yellow, orange, red, purple, blue, sky, lime, pink, black, silver, peachpuff, crimson, plum, darkgreen, slateblue, magenta, gold, navy, gray, saddlebrown, paleturquoise, mistyrose, indigo
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
colorwhite
colorgreen
coloryellow
colororange
colorred
colorpurple
colorblue
colorsky
colorlime
colorpink
colorblack
colorsilver
colorpeachpuff
colorcrimson
colorplum
colordarkgreen
colorslateblue
colormagenta
colorgold
colornavy
colorgray
colorsaddlebrown
colorpaleturquoise
colormistyrose
colorindigo
+

BoardsMembers

+

+
{
+  "userId": "string",
+  "isAdmin": true,
+  "isActive": true,
+  "isNoComments": true,
+  "isCommentOnly": true,
+  "isWorker": true
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
userIdstringtruenoneThe uniq ID of the member
isAdminbooleantruenoneIs the member an admin of the board?
isActivebooleantruenoneIs the member active?
isNoCommentsbooleanfalsenoneIs the member not allowed to make comments
isCommentOnlybooleanfalsenoneIs the member only allowed to comment on the board
isWorkerbooleanfalsenoneIs the member only allowed to move card, assign himself to card and comment
+

BoardsOrgs

+

+
{
+  "orgId": "string",
+  "orgDisplayName": "string",
+  "isActive": true
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
orgIdstringtruenoneThe uniq ID of the organization
orgDisplayNamestringtruenoneThe display name of the organization
isActivebooleantruenoneIs the organization active?
+

BoardsTeams

+

+
{
+  "teamId": "string",
+  "teamDisplayName": "string",
+  "isActive": true
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
teamIdstringtruenoneThe uniq ID of the team
teamDisplayNamestringtruenoneThe display name of the team
isActivebooleantruenoneIs the team active?
+

CardComments

+

+
{
+  "boardId": "string",
+  "cardId": "string",
+  "text": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "userId": "string"
+}
+
+
+

A comment on a card

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
boardIdstringtruenonethe board ID
cardIdstringtruenonethe card ID
textstringtruenonethe text of the comment
createdAtstringtruenonewhen was the comment created
modifiedAtstringtruenonenone
userIdstringtruenonethe author ID of the comment
+

Cards

+

+
{
+  "title": "string",
+  "archived": true,
+  "archivedAt": "string",
+  "parentId": "string",
+  "listId": "string",
+  "swimlaneId": "string",
+  "boardId": "string",
+  "coverId": "string",
+  "color": "white",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "customFields": [
+    {}
+  ],
+  "dateLastActivity": "string",
+  "description": "string",
+  "requestedBy": "string",
+  "assignedBy": "string",
+  "labelIds": [
+    "string"
+  ],
+  "members": [
+    "string"
+  ],
+  "assignees": [
+    "string"
+  ],
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "userId": "string",
+  "sort": 0,
+  "subtaskSort": 0,
+  "type": "string",
+  "linkedId": "string",
+  "vote": {
+    "question": "string",
+    "positive": [
+      "string"
+    ],
+    "negative": [
+      "string"
+    ],
+    "end": "string",
+    "public": true,
+    "allowNonBoardMembers": true
+  },
+  "poker": {
+    "question": true,
+    "one": [
+      "string"
+    ],
+    "two": [
+      "string"
+    ],
+    "three": [
+      "string"
+    ],
+    "five": [
+      "string"
+    ],
+    "eight": [
+      "string"
+    ],
+    "thirteen": [
+      "string"
+    ],
+    "twenty": [
+      "string"
+    ],
+    "forty": [
+      "string"
+    ],
+    "oneHundred": [
+      "string"
+    ],
+    "unsure": [
+      "string"
+    ],
+    "end": "string",
+    "allowNonBoardMembers": true,
+    "estimation": 0
+  },
+  "targetId_gantt": [
+    "string"
+  ],
+  "linkType_gantt": [
+    0
+  ],
+  "linkId_gantt": [
+    "string"
+  ],
+  "cardNumber": 0,
+  "showActivities": true,
+  "hideFinishedChecklistIfItemsAreHidden": true
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestring|nullfalsenonethe title of the card
archivedbooleantruenoneis the card archived
archivedAtstring|nullfalsenonelatest archiving date
parentIdstring|nullfalsenoneID of the parent card
listIdstring|nullfalsenoneList ID where the card is
swimlaneIdstringtruenoneSwimlane ID where the card is
boardIdstring|nullfalsenoneBoard ID of the card
coverIdstring|nullfalsenoneCover ID of the card
colorstring|nullfalsenonenone
createdAtstringtruenonecreation date
modifiedAtstringtruenonenone
customFields[CardsCustomfields]|nullfalsenonelist of custom fields
dateLastActivitystringtruenoneDate of last activity
descriptionstring|nullfalsenonedescription of the card
requestedBystring|nullfalsenonewho requested the card (ID of the user)
assignedBystring|nullfalsenonewho assigned the card (ID of the user)
labelIds[string]|nullfalsenonelist of labels ID the card has
members[string]|nullfalsenonelist of members (user IDs)
assignees[string]|nullfalsenonewho is assignee of the card (user ID), maximum one ID of assignee in array.
receivedAtstring|nullfalsenoneDate the card was received
startAtstring|nullfalsenoneDate the card was started to be worked on
dueAtstring|nullfalsenoneDate the card is due
endAtstring|nullfalsenoneDate the card ended
spentTimenumber|nullfalsenoneHow much time has been spent on this
isOvertimeboolean|nullfalsenoneis the card over time?
userIdstringtruenoneuser ID of the author of the card
sortnumber|nullfalsenoneSort value
subtaskSortnumber|nullfalsenonesubtask sort value
typestringtruenonetype of the card
linkedIdstring|nullfalsenoneID of the linked card
voteCardsVotefalsenonevote object, see below
pokerCardsPokerfalsenonepoker object, see below
targetId_gantt[string]|nullfalsenoneID of card which is the child link in gantt view
linkType_gantt[number]|nullfalsenoneID of card which is the parent link in gantt view
linkId_gantt[string]|nullfalsenoneID of card which is the parent link in gantt view
cardNumbernumber|nullfalsenoneA boardwise sequentially increasing number that is assigned to every newly created card
showActivitiesbooleantruenonenone
hideFinishedChecklistIfItemsAreHiddenboolean|nullfalsenonehide completed checklist?
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
colorwhite
colorgreen
coloryellow
colororange
colorred
colorpurple
colorblue
colorsky
colorlime
colorpink
colorblack
colorsilver
colorpeachpuff
colorcrimson
colorplum
colordarkgreen
colorslateblue
colormagenta
colorgold
colornavy
colorgray
colorsaddlebrown
colorpaleturquoise
colormistyrose
colorindigo
+

CardsVote

+

+
{
+  "question": "string",
+  "positive": [
+    "string"
+  ],
+  "negative": [
+    "string"
+  ],
+  "end": "string",
+  "public": true,
+  "allowNonBoardMembers": true
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
questionstringtruenonenone
positive[string]falsenonelist of members (user IDs)
negative[string]falsenonelist of members (user IDs)
endstringfalsenonenone
publicbooleantruenonenone
allowNonBoardMembersbooleantruenonenone
+

CardsPoker

+

+
{
+  "question": true,
+  "one": [
+    "string"
+  ],
+  "two": [
+    "string"
+  ],
+  "three": [
+    "string"
+  ],
+  "five": [
+    "string"
+  ],
+  "eight": [
+    "string"
+  ],
+  "thirteen": [
+    "string"
+  ],
+  "twenty": [
+    "string"
+  ],
+  "forty": [
+    "string"
+  ],
+  "oneHundred": [
+    "string"
+  ],
+  "unsure": [
+    "string"
+  ],
+  "end": "string",
+  "allowNonBoardMembers": true,
+  "estimation": 0
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
questionbooleanfalsenonenone
one[string]falsenonepoker card one
two[string]falsenonepoker card two
three[string]falsenonepoker card three
five[string]falsenonepoker card five
eight[string]falsenonepoker card eight
thirteen[string]falsenonepoker card thirteen
twenty[string]falsenonepoker card twenty
forty[string]falsenonepoker card forty
oneHundred[string]falsenonepoker card oneHundred
unsure[string]falsenonepoker card unsure
endstringfalsenonenone
allowNonBoardMembersbooleanfalsenonenone
estimationnumberfalsenonepoker estimation value
+

CardsCustomfields

+

+
{}
+
+
+

Properties

+

None

+

ChecklistItems

+

+
{
+  "title": "string",
+  "sort": 0,
+  "isFinished": true,
+  "checklistId": "string",
+  "cardId": "string",
+  "createdAt": "string",
+  "modifiedAt": "string"
+}
+
+
+

An item in a checklist

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestringtruenonethe text of the item
sortnumbertruenonethe sorting field of the item
isFinishedbooleantruenoneIs the item checked?
checklistIdstringtruenonethe checklist ID the item is attached to
cardIdstringtruenonethe card ID the item is attached to
createdAtstring|nullfalsenonenone
modifiedAtstringtruenonenone
+

Checklists

+

+
{
+  "cardId": "string",
+  "title": "string",
+  "finishedAt": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "sort": 0,
+  "hideCheckedChecklistItems": true,
+  "hideAllChecklistItems": true
+}
+
+
+

A Checklist

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
cardIdstringtruenoneThe ID of the card the checklist is in
titlestringtruenonethe title of the checklist
finishedAtstring|nullfalsenoneWhen was the checklist finished
createdAtstringtruenoneCreation date of the checklist
modifiedAtstringtruenonenone
sortnumbertruenonesorting value of the checklist
hideCheckedChecklistItemsboolean|nullfalsenonehide the checked checklist-items?
hideAllChecklistItemsboolean|nullfalsenonehide all checklist items ?
+

CustomFields

+

+
{
+  "boardIds": [
+    "string"
+  ],
+  "name": "string",
+  "type": "text",
+  "settings": {
+    "currencyCode": "string",
+    "dropdownItems": [
+      {}
+    ],
+    "stringtemplateFormat": "string",
+    "stringtemplateSeparator": "string"
+  },
+  "showOnCard": true,
+  "automaticallyOnCard": true,
+  "alwaysOnCard": true,
+  "showLabelOnMiniCard": true,
+  "showSumAtTopOfList": true,
+  "createdAt": "string",
+  "modifiedAt": "string"
+}
+
+
+

A custom field on a card in the board

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
boardIds[string]truenonethe ID of the board
namestringtruenonename of the custom field
typestringtruenonetype of the custom field
settingsCustomFieldsSettingstruenonesettings of the custom field
showOnCardbooleantruenoneshould we show on the cards this custom field
automaticallyOnCardbooleantruenoneshould the custom fields automatically be added on cards?
alwaysOnCardbooleantruenoneshould the custom field be automatically added to all cards?
showLabelOnMiniCardbooleantruenoneshould the label of the custom field be shown on minicards?
showSumAtTopOfListbooleantruenoneshould the sum of the custom fields be shown at top of list?
createdAtstring|nullfalsenonenone
modifiedAtstringtruenonenone
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
typetext
typenumber
typedate
typedropdown
typecheckbox
typecurrency
typestringtemplate
+

CustomFieldsSettings

+

+
{
+  "currencyCode": "string",
+  "dropdownItems": [
+    {}
+  ],
+  "stringtemplateFormat": "string",
+  "stringtemplateSeparator": "string"
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
currencyCodestringfalsenonenone
dropdownItems[CustomFieldsSettingsDropdownitems]falsenonelist of drop down items objects
stringtemplateFormatstringfalsenonenone
stringtemplateSeparatorstringfalsenonenone
+

CustomFieldsSettingsDropdownitems

+

+
{}
+
+
+

Properties

+

None

+

Integrations

+

+
{
+  "enabled": true,
+  "title": "string",
+  "type": "string",
+  "activities": [
+    "string"
+  ],
+  "url": "string",
+  "token": "string",
+  "boardId": "string",
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "userId": "string"
+}
+
+
+

Integration with third-party applications

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
enabledbooleantruenoneis the integration enabled?
titlestring|nullfalsenonename of the integration
typestringtruenonetype of the integratation (Default to 'outgoing-webhooks')
activities[string]truenoneactivities the integration gets triggered (list)
urlstringtruenonenone
tokenstring|nullfalsenonetoken of the integration
boardIdstringtruenoneBoard ID of the integration
createdAtstringtruenoneCreation date of the integration
modifiedAtstringtruenonenone
userIdstringtruenoneuser ID who created the interation
+

Lists

+

+
{
+  "title": "string",
+  "starred": true,
+  "archived": true,
+  "archivedAt": "string",
+  "boardId": "string",
+  "swimlaneId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "wipLimit": {
+    "value": 0,
+    "enabled": true,
+    "soft": true
+  },
+  "color": "white",
+  "type": "string",
+  "collapsed": true
+}
+
+
+

A list (column) in the Wekan board.

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestringtruenonethe title of the list
starredboolean|nullfalsenoneif a list is stared then we put it on the top
archivedbooleantruenoneis the list archived
archivedAtstring|nullfalsenonelatest archiving date
boardIdstringtruenonethe board associated to this list
swimlaneIdstringtruenonethe swimlane associated to this list. Used for templates
createdAtstringtruenonecreation date
sortnumber|nullfalsenoneis the list sorted
updatedAtstring|nullfalsenonelast update of the list
modifiedAtstringtruenonenone
wipLimitListsWiplimitfalsenoneWIP object, see below
colorstring|nullfalsenonethe color of the list
typestringtruenoneThe type of list
collapsedbooleantruenoneis the list collapsed
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
colorwhite
colorgreen
coloryellow
colororange
colorred
colorpurple
colorblue
colorsky
colorlime
colorpink
colorblack
colorsilver
colorpeachpuff
colorcrimson
colorplum
colordarkgreen
colorslateblue
colormagenta
colorgold
colornavy
colorgray
colorsaddlebrown
colorpaleturquoise
colormistyrose
colorindigo
+

ListsWiplimit

+

+
{
+  "value": 0,
+  "enabled": true,
+  "soft": true
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
valuenumbertruenonevalue of the WIP
enabledbooleantruenoneis the WIP enabled
softbooleantruenoneis the WIP a soft or hard requirement
+

Swimlanes

+

+
{
+  "title": "string",
+  "archived": true,
+  "archivedAt": "string",
+  "boardId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "color": "white",
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "type": "string",
+  "collapsed": true
+}
+
+
+

A swimlane is an line in the kaban board.

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestringtruenonethe title of the swimlane
archivedbooleantruenoneis the swimlane archived?
archivedAtstring|nullfalsenonelatest archiving date of the swimlane
boardIdstringtruenonethe ID of the board the swimlane is attached to
createdAtstringtruenonecreation date of the swimlane
sortnumber|nullfalsenonethe sort value of the swimlane
colorstring|nullfalsenonethe color of the swimlane
updatedAtstring|nullfalsenonewhen was the swimlane last edited
modifiedAtstringtruenonenone
typestringtruenoneThe type of swimlane
collapsedbooleantruenoneis the swimlane collapsed
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
colorwhite
colorgreen
coloryellow
colororange
colorred
colorpurple
colorblue
colorsky
colorlime
colorpink
colorblack
colorsilver
colorpeachpuff
colorcrimson
colorplum
colordarkgreen
colorslateblue
colormagenta
colorgold
colornavy
colorgray
colorsaddlebrown
colorpaleturquoise
colormistyrose
colorindigo
+ +
+
+ +
+ + + Shell + + + + HTTP + + + + JavaScript + + + + Node.js + + + + Ruby + + + + Python + + + + Java + + + + Go + + +
+ +
+
+ + diff --git a/v7.93/wekan.yml b/v7.93/wekan.yml new file mode 100644 index 000000000..de7a0d0bf --- /dev/null +++ b/v7.93/wekan.yml @@ -0,0 +1,3982 @@ +swagger: '2.0' +info: + title: Wekan REST API + version: v7.93 + description: | + 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](https://github.com/wekan/wekan/issues/new) 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. + + # Production Security Concerns + 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: + + * Only call via HTTPS + * Implement a timed authorization token expiration strategy + * Ensure the calling user only has permissions for what they are calling and no more + +schemes: + - http + +securityDefinitions: + UserSecurity: + type: apiKey + in: header + name: Authorization + +paths: + /users/login: + post: + operationId: login + summary: Login with REST API + consumes: + - application/json + - application/x-www-form-urlencoded + tags: + - Login + parameters: + - name: loginRequest + in: body + required: true + description: Login credentials + schema: + type: object + required: + - username + - password + properties: + username: + description: | + Your username + type: string + password: + description: | + Your password + type: string + format: password + responses: + 200: + description: |- + Successful authentication + schema: + type: object + required: + - id + - token + - tokenExpires + properties: + id: + type: string + description: User ID + token: + type: string + description: | + Authentication token + tokenExpires: + type: string + format: date-time + description: | + Token expiration date + 400: + description: | + Error in authentication + schema: + type: object + properties: + error: + type: string + reason: + type: string + default: + description: | + Error in authentication + /users/register: + post: + operationId: register + summary: Register with REST API + description: | + Notes: + - You will need to provide the token for any of the authenticated methods. + consumes: + - application/x-www-form-urlencoded + - application/json + tags: + - Login + parameters: + - name: username + in: formData + required: true + description: | + Your username + type: string + - name: password + in: formData + required: true + description: | + Your password + type: string + format: password + - name: email + in: formData + required: true + description: | + Your email + type: string + responses: + 200: + description: |- + Successful registration + schema: + items: + properties: + id: + type: string + token: + type: string + tokenExpires: + type: string + 400: + description: | + Error in registration + schema: + items: + properties: + error: + type: number + reason: + type: string + default: + description: | + Error in registration + + /api/boards: + get: + operationId: get_public_boards + summary: Get all public boards + tags: + - Boards + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + post: + operationId: new_board + summary: Create a board + description: | + This allows to create a board. + + The color has to be chosen between `belize`, `nephritis`, `pomegranate`, + `pumpkin`, `wisteria`, `moderatepink`, `strongcyan`, + `limegreen`, `midnight`, `dark`, `relax`, `corteza`: + + Wekan logo + tags: + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the new title of the board + type: string + required: true + - name: owner + in: formData + description: | + "ABCDE12345" <= User ID in Wekan. + (Not username or email) + type: string + required: true + - name: isAdmin + in: formData + description: | + is the owner an admin of the board (default true) + type: boolean + required: false + - name: isActive + in: formData + description: | + is the board active (default true) + type: boolean + required: false + - name: isNoComments + in: formData + description: | + disable comments (default false) + type: boolean + required: false + - name: isCommentOnly + in: formData + description: | + only enable comments (default false) + type: boolean + required: false + - name: isWorker + in: formData + description: | + only move cards, assign himself to card and comment (default false) + type: boolean + required: false + - name: permission + in: formData + description: | + "private" board <== Set to "public" if you + want public Wekan board + type: string + required: false + - name: color + in: formData + description: | + the color of the board + type: string + required: false + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + defaultSwimlaneId: + type: string + /api/boards/{board}: + get: + operationId: get_board + summary: Get the board with that particular ID + tags: + - Boards + parameters: + - name: board + in: path + description: | + the ID of the board to retrieve the data + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Boards" + delete: + operationId: delete_board + summary: Delete a board + tags: + - Boards + parameters: + - name: board + in: path + description: | + the ID of the board + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/attachments: + get: + operationId: get_board_attachments + summary: Get the list of attachments of a board + tags: + - Boards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + attachmentId: + type: string + attachmentName: + type: string + attachmentType: + type: string + url: + type: string + urlDownload: + type: string + boardId: + type: string + swimlaneId: + type: string + listId: + type: string + cardId: + type: string + /api/boards/{board}/attachments/{attachment}/export: + get: + operationId: exportJson + summary: This route is used to export a attachement to a json file format. + description: | + If user is already logged-in, pass loginToken as param + "authToken": '/api/boards/:boardId/attachments/:attachmentId/export?authToken=:token' + tags: + - Boards + parameters: + - name: board + in: path + description: | + the ID of the board we are exporting + type: string + required: true + - name: attachment + in: path + description: | + the ID of the attachment we are exporting + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/cards/{card}/checklists: + get: + operationId: get_all_checklists + summary: Get the list of checklists attached to a card + tags: + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + post: + operationId: new_checklist + summary: create a new checklist + tags: + - Checklists + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the title of the new checklist + type: string + required: true + - name: items + in: formData + description: | + the list of items on the new checklist + type: string + required: false + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/checklists/{checklist}: + get: + operationId: get_checklist + summary: Get a checklist + tags: + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the ID of the checklist + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + cardId: + type: string + title: + type: string + finishedAt: + type: string + createdAt: + type: string + sort: + type: number + items: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + isFinished: + type: boolean + delete: + operationId: delete_checklist + summary: Delete a checklist + description: | + The checklist will be removed, not put in the recycle bin. + tags: + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the ID of the checklist to remove + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/checklists/{checklist}/items: + post: + operationId: new_checklist_item + summary: add a new item to a checklist + tags: + - ChecklistItems + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the title of the new item + type: string + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the ID of the checklist + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}: + get: + operationId: get_checklist_item + summary: Get a checklist item + tags: + - ChecklistItems + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the checklist ID + type: string + required: true + - name: item + in: path + description: | + the ID of the item + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/ChecklistItems" + put: + operationId: edit_checklist_item + summary: Edit a checklist item + tags: + - ChecklistItems + - Checklists + consumes: + - multipart/form-data + - application/json + parameters: + - name: isFinished + in: formData + description: | + is the item checked? + type: string + required: false + - name: title + in: formData + description: | + the new text of the item + type: string + required: false + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the checklist ID + type: string + required: true + - name: item + in: path + description: | + the ID of the item + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_checklist_item + summary: Delete a checklist item + description: | + Note: this operation can't be reverted. + tags: + - ChecklistItems + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the checklist ID + type: string + required: true + - name: item + in: path + description: | + the ID of the item to be removed + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/comments: + get: + operationId: get_all_comments + summary: Get all comments attached to a card + tags: + - CardComments + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + comment: + type: string + authorId: + type: string + post: + operationId: new_comment + summary: Add a comment on a card + tags: + - CardComments + consumes: + - multipart/form-data + - application/json + parameters: + - name: authorId + in: formData + description: | + the user who 'posted' the comment + type: string + required: true + - name: comment + in: formData + description: the comment value + type: string + required: true + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/comments/{comment}: + get: + operationId: get_comment + summary: Get a comment on a card + tags: + - CardComments + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + - name: comment + in: path + description: | + the ID of the comment to retrieve + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/CardComments" + delete: + operationId: delete_comment + summary: Delete a comment on a card + tags: + - CardComments + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + - name: comment + in: path + description: | + the ID of the comment to delete + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}: + get: + operationId: get_cards_by_custom_field + summary: Get all Cards that matchs a value of a specific custom field + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: customField + in: path + description: | + the list ID + type: string + required: true + - name: customFieldValue + in: path + description: | + the value to look for + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + description: + type: string + listId: + type: string + swinlaneId: + type: string + /api/boards/{board}/cards_count: + get: + operationId: get_board_cards_count + summary: Get a cards count to a board + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + board_cards_count: + type: integer + /api/boards/{board}/copy: + post: + operationId: copy_board + summary: Copy a board to a new one + description: | + If your are board admin or wekan admin, this copies the + given board to a new one. + tags: + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the title of the new board (default to old one) + type: string + required: true + - name: board + in: path + description: | + the board + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: string + /api/boards/{board}/custom-fields: + get: + operationId: get_all_custom_fields + summary: Get the list of Custom Fields attached to a board + tags: + - CustomFields + parameters: + - name: board + in: path + description: the board value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + name: + type: string + type: + type: string + post: + operationId: new_custom_field + summary: Create a Custom Field + tags: + - CustomFields + consumes: + - multipart/form-data + - application/json + parameters: + - name: name + in: formData + description: | + the name of the custom field + type: string + required: true + - name: type + in: formData + description: | + the type of the custom field + type: string + required: true + - name: settings + in: formData + description: | + the settings object of the custom field + type: string + required: true + - name: showOnCard + in: formData + description: | + should we show the custom field on cards? + type: boolean + required: true + - name: automaticallyOnCard + in: formData + description: | + should the custom fields automatically be added on cards? + type: boolean + required: true + - name: showLabelOnMiniCard + in: formData + description: | + should the label of the custom field be shown on minicards? + type: boolean + required: true + - name: showSumAtTopOfList + in: formData + description: | + should the sum of the custom fields be shown at top of list? + type: boolean + required: true + - name: authorId + in: formData + description: the authorId value + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/custom-fields/{customField}: + get: + operationId: get_custom_field + summary: Get a Custom Fields attached to a board + tags: + - CustomFields + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: | + the ID of the custom field + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + boardIds: + type: string + put: + operationId: edit_custom_field + summary: Update a Custom Field + tags: + - CustomFields + consumes: + - multipart/form-data + - application/json + parameters: + - name: name + in: formData + description: | + the name of the custom field + type: string + required: true + - name: type + in: formData + description: | + the type of the custom field + type: string + required: true + - name: settings + in: formData + description: | + the settings object of the custom field + type: string + required: true + - name: showOnCard + in: formData + description: | + should we show the custom field on cards + type: boolean + required: true + - name: automaticallyOnCard + in: formData + description: | + should the custom fields automatically be added on cards + type: boolean + required: true + - name: alwaysOnCard + in: formData + description: the alwaysOnCard value + type: string + required: true + - name: showLabelOnMiniCard + in: formData + description: | + should the label of the custom field be shown on minicards + type: boolean + required: true + - name: showSumAtTopOfList + in: formData + description: | + should the sum of the custom fields be shown at top of list + type: boolean + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_custom_field + summary: Delete a Custom Fields attached to a board + description: | + The Custom Field can't be retrieved after this operation + tags: + - CustomFields + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: | + the ID of the custom field + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/custom-fields/{customField}/dropdown-items: + post: + operationId: add_custom_field_dropdown_items + summary: Update a Custom Field's dropdown items + tags: + - CustomFields + consumes: + - multipart/form-data + - application/json + parameters: + - name: items + in: formData + description: | + names of the custom field + type: string + required: false + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}: + put: + operationId: edit_custom_field_dropdown_item + summary: Update a Custom Field's dropdown item + tags: + - CustomFields + consumes: + - multipart/form-data + - application/json + parameters: + - name: name + in: formData + description: | + names of the custom field + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + - name: dropdownItem + in: path + description: the dropdownItem value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_custom_field_dropdown_item + summary: Update a Custom Field's dropdown items + tags: + - CustomFields + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + - name: dropdownItem + in: path + description: the dropdownItem value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/export: + get: + operationId: exportJson + summary: This route is used to export the board to a json file format. + description: | + 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 + tags: + - Boards + parameters: + - name: board + in: path + description: | + the ID of the board we are exporting + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/integrations: + get: + operationId: get_all_integrations + summary: Get all integrations in board + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + $ref: "#/definitions/Integrations" + post: + operationId: new_integration + summary: Create a new integration + tags: + - Integrations + consumes: + - multipart/form-data + - application/json + parameters: + - name: url + in: formData + description: | + the URL of the integration + type: string + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/integrations/{int}: + get: + operationId: get_integration + summary: Get a single integration in board + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Integrations" + put: + operationId: edit_integration + summary: Edit integration data + tags: + - Integrations + consumes: + - multipart/form-data + - application/json + parameters: + - name: enabled + in: formData + description: | + is the integration enabled? + type: string + required: false + - name: title + in: formData + description: | + new name of the integration + type: string + required: false + - name: url + in: formData + description: | + new URL of the integration + type: string + required: false + - name: token + in: formData + description: | + new token of the integration + type: string + required: false + - name: activities + in: formData + description: | + new list of activities of the integration + type: string + required: false + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_integration + summary: Delete integration + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/integrations/{int}/activities: + delete: + operationId: delete_integration_activities + summary: Delete subscribed activities + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Integrations" + post: + operationId: new_integration_activities + summary: Add subscribed activities + tags: + - Integrations + consumes: + - multipart/form-data + - application/json + parameters: + - name: activities + in: formData + description: the activities value + type: string + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Integrations" + /api/boards/{board}/labels: + put: + operationId: add_board_label + summary: Add a label to a board + description: | + If the board doesn't have the name/color label, this function + adds the label to the board. + tags: + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: label + in: formData + description: the label value + type: string + required: true + - name: board + in: path + description: | + the board + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: string + /api/boards/{board}/lists: + get: + operationId: get_all_lists + summary: Get the list of Lists attached to a board + tags: + - Lists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + post: + operationId: new_list + summary: Add a List to a board + tags: + - Lists + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the title of the List + type: string + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/lists/{list}: + get: + operationId: get_list + summary: Get a List attached to a board + tags: + - Lists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the List ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Lists" + put: + operationId: edit_list + summary: Edit a List + description: | + This updates a list on a board. + You can update the title, color, wipLimit, starred, and collapsed properties. + tags: + - Lists + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the new title of the list + type: string + required: false + - name: color + in: formData + description: | + the new color of the list + type: string + required: false + - name: starred + in: formData + description: | + whether the list is starred + type: boolean + required: false + - name: collapsed + in: formData + description: | + whether the list is collapsed + type: boolean + required: false + - name: wipLimit + in: formData + description: | + the WIP limit configuration + type: object + required: false + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the ID of the list to update + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_list + summary: Delete a List + description: | + This **deletes** a list from a board. + The list is not put in the recycle bin. + tags: + - Lists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the ID of the list to remove + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/lists/{list}/cards: + get: + operationId: get_all_cards + summary: Get all Cards attached to a List + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the list ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + description: + type: string + post: + operationId: new_card + summary: Create a new Card + tags: + - Cards + consumes: + - multipart/form-data + - application/json + parameters: + - name: authorId + in: formData + description: the authorId value + type: string + required: true + - name: members + in: formData + description: | + the member IDs list of the new card + type: string + required: false + - name: assignees + in: formData + description: | + the assignee IDs list of the new card + type: string + required: false + - name: title + in: formData + description: | + the title of the new card + type: string + required: true + - name: description + in: formData + description: | + the description of the new card + type: string + required: true + - name: swimlaneId + in: formData + description: | + the swimlane ID of the new card + type: string + required: true + - name: board + in: path + description: | + the board ID of the new card + type: string + required: true + - name: list + in: path + description: | + the list ID of the new card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/lists/{list}/cards/{card}: + get: + operationId: get_card + summary: Get a Card + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the list ID of the card + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Cards" + put: + operationId: edit_card + summary: Edit Fields in a Card + description: | + Edit a card + + The color has to be chosen between `white`, `green`, `yellow`, `orange`, + `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, + `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, + `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, + `indigo`: + + Wekan card colors + + Note: setting the color to white has the same effect than removing it. + tags: + - Cards + consumes: + - multipart/form-data + - application/json + parameters: + - name: newBoardId + in: formData + description: the newBoardId value + type: string + required: true + - name: newSwimlaneId + in: formData + description: the newSwimlaneId value + type: string + required: true + - name: newListId + in: formData + description: the newListId value + type: string + required: true + - name: title + in: formData + description: | + the new title of the card + type: string + required: false + - name: sort + in: formData + description: | + the new sort value of the card + type: string + required: false + - name: parentId + in: formData + description: | + change the parent of the card + type: string + required: false + - name: description + in: formData + description: | + the new description of the card + type: string + required: false + - name: color + in: formData + description: | + the new color of the card + type: string + required: false + - name: vote + in: formData + description: | + the vote object + type: object + required: false + - name: poker + in: formData + description: | + the poker object + type: object + required: false + - name: labelIds + in: formData + description: | + the new list of label IDs attached to the card + type: string + required: false + - name: requestedBy + in: formData + description: | + the new requestedBy field of the card + type: string + required: false + - name: assignedBy + in: formData + description: | + the new assignedBy field of the card + type: string + required: false + - name: receivedAt + in: formData + description: | + the new receivedAt field of the card + type: string + required: false + - name: startAt + in: formData + description: | + the new startAt field of the card + type: string + required: false + - name: dueAt + in: formData + description: | + the new dueAt field of the card + type: string + required: false + - name: endAt + in: formData + description: | + the new endAt field of the card + type: string + required: false + - name: spentTime + in: formData + description: | + the new spentTime field of the card + type: string + required: false + - name: isOverTime + in: formData + description: | + the new isOverTime field of the card + type: boolean + required: false + - name: customFields + in: formData + description: | + the new customFields value of the card + type: string + required: false + - name: members + in: formData + description: | + the new list of member IDs attached to the card + type: string + required: false + - name: assignees + in: formData + description: | + the array of maximum one ID of assignee attached to the card + type: string + required: false + - name: swimlaneId + in: formData + description: | + the new swimlane ID of the card + type: string + required: false + - name: listId + in: formData + description: | + the new list ID of the card (move operation) + type: string + required: false + - name: authorId + in: formData + description: | + change the owner of the card + type: string + required: false + - name: archive + in: formData + description: the archive value + type: string + required: true + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: list + in: path + description: | + the list ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_card + summary: Delete a card from a board + description: | + This operation **deletes** a card, and therefore the card + is not put in the recycle bin. + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: list + in: path + description: | + the list ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}: + post: + operationId: edit_card_custom_field + summary: Edit Custom Field in a Card + description: | + Edit a custom field value in a card + tags: + - Cards + consumes: + - multipart/form-data + - application/json + parameters: + - name: value + in: formData + description: | + the new custom field value + type: string + required: true + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: list + in: path + description: | + the list ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + - name: customField + in: path + description: | + the ID of the custom field + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + customFields: + type: array + items: + type: object + properties: + _id: + type: string + value: + type: object + /api/boards/{board}/lists/{list}/cards_count: + get: + operationId: get_list_cards_count + summary: Get a cards count to a list + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the List ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + list_cards_count: + type: integer + /api/boards/{board}/members/{member}: + post: + operationId: set_board_member_permission + summary: Change the permission of a member of a board + tags: + - Boards + - Users + consumes: + - multipart/form-data + - application/json + parameters: + - name: isAdmin + in: formData + description: | + admin capability + type: boolean + required: true + - name: isNoComments + in: formData + description: | + NoComments capability + type: boolean + required: true + - name: isCommentOnly + in: formData + description: | + CommentsOnly capability + type: boolean + required: true + - name: isWorker + in: formData + description: | + Worker capability + type: boolean + required: true + - name: board + in: path + description: | + the ID of the board that we are changing + type: string + required: true + - name: member + in: path + description: | + the ID of the user to change permissions + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/swimlanes: + get: + operationId: get_all_swimlanes + summary: Get the list of swimlanes attached to a board + tags: + - Swimlanes + parameters: + - name: board + in: path + description: | + the ID of the board + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + post: + operationId: new_swimlane + summary: Add a swimlane to a board + tags: + - Swimlanes + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the new title of the swimlane + type: string + required: true + - name: board + in: path + description: | + the ID of the board + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/swimlanes/{swimlane}: + get: + operationId: get_swimlane + summary: Get a swimlane + tags: + - Swimlanes + parameters: + - name: board + in: path + description: | + the ID of the board + type: string + required: true + - name: swimlane + in: path + description: | + the ID of the swimlane + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Swimlanes" + put: + operationId: edit_swimlane + summary: Edit the title of a swimlane + tags: + - Swimlanes + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the new title of the swimlane + type: string + required: true + - name: board + in: path + description: | + the ID of the board + type: string + required: true + - name: swimlane + in: path + description: | + the ID of the swimlane to edit + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_swimlane + summary: Delete a swimlane + description: | + The swimlane will be deleted, not moved to the recycle bin + tags: + - Swimlanes + parameters: + - name: board + in: path + description: | + the ID of the board + type: string + required: true + - name: swimlane + in: path + description: | + the ID of the swimlane + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/swimlanes/{swimlane}/cards: + get: + operationId: get_swimlane_cards + summary: get all cards attached to a swimlane + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: swimlane + in: path + description: | + the swimlane ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + description: + type: string + listId: + type: string + /api/boards/{board}/title: + put: + operationId: update_board_title + summary: Update the title of a board + tags: + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the new title for the board + type: string + required: true + - name: board + in: path + description: | + the ID of the board to update + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards_count: + get: + operationId: get_boards_count + summary: Get public and private boards count + tags: + - Boards + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + private: + type: integer + public: + type: integer + /api/cards/{card}: + get: + operationId: get_card_by_id + summary: Get a Card by Card ID + tags: + - Cards + parameters: + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Cards" + /api/users/{user}/boards: + get: + operationId: get_boards_from_user + summary: Get all boards attached to a user + tags: + - Boards + parameters: + - name: user + in: path + description: | + the ID of the user to retrieve the data + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string +definitions: + Boards: + type: object + description: This is a Board. + properties: + title: + description: | + The title of the board + type: string + slug: + description: | + The title slugified. + type: string + archived: + description: | + Is the board archived? + type: boolean + archivedAt: + description: | + Latest archiving time of the board + type: string + x-nullable: true + createdAt: + description: | + Creation time of the board + type: string + modifiedAt: + description: | + Last modification time of the board + type: string + x-nullable: true + stars: + description: | + How many stars the board has + type: number + labels: + description: | + List of labels attached to a board + type: array + items: + $ref: "#/definitions/BoardsLabels" + x-nullable: true + members: + description: | + List of members of a board + type: array + items: + $ref: "#/definitions/BoardsMembers" + permission: + description: | + visibility of the board + type: string + enum: + - public + - private + orgs: + description: | + the list of organizations that a board belongs to + type: array + items: + $ref: "#/definitions/BoardsOrgs" + x-nullable: true + teams: + description: | + the list of teams that a board belongs to + type: array + items: + $ref: "#/definitions/BoardsTeams" + x-nullable: true + color: + description: | + The color of the board. + type: string + enum: + - belize + - nephritis + - pomegranate + - pumpkin + - wisteria + - moderatepink + - strongcyan + - limegreen + - midnight + - dark + - relax + - corteza + - clearblue + - natural + - modern + - moderndark + - exodark + - cleandark + - cleanlight + backgroundImageURL: + description: | + The background image URL of the board. + type: string + x-nullable: true + allowsCardCounterList: + description: | + Show card counter per list + type: boolean + allowsBoardMemberList: + description: | + Show board member list + type: boolean + description: + description: | + The description of the board + type: string + x-nullable: true + subtasksDefaultBoardId: + description: | + The default board ID assigned to subtasks. + type: string + x-nullable: true + subtasksDefaultListId: + description: | + The default List ID assigned to subtasks. + type: string + x-nullable: true + dateSettingsDefaultBoardId: + type: string + x-nullable: true + dateSettingsDefaultListId: + type: string + x-nullable: true + allowsSubtasks: + description: | + Does the board allows subtasks? + type: boolean + allowsAttachments: + description: | + Does the board allows attachments? + type: boolean + allowsChecklists: + description: | + Does the board allows checklists? + type: boolean + allowsComments: + description: | + Does the board allows comments? + type: boolean + allowsDescriptionTitle: + description: | + Does the board allows description title? + type: boolean + allowsDescriptionText: + description: | + Does the board allows description text? + type: boolean + allowsDescriptionTextOnMinicard: + description: | + Does the board allows description text on minicard? + type: boolean + allowsCoverAttachmentOnMinicard: + description: | + Does the board allows cover attachment on minicard? + type: boolean + allowsBadgeAttachmentOnMinicard: + description: | + Does the board allows badge attachment on minicard? + type: boolean + allowsCardSortingByNumberOnMinicard: + description: | + Does the board allows card sorting by number on minicard? + type: boolean + allowsCardNumber: + description: | + Does the board allows card numbers? + type: boolean + allowsActivities: + description: | + Does the board allows comments? + type: boolean + allowsLabels: + description: | + Does the board allows labels? + type: boolean + allowsCreator: + description: | + Does the board allow creator? + type: boolean + allowsCreatorOnMinicard: + description: | + Does the board allow creator? + type: boolean + allowsAssignee: + description: | + Does the board allows assignee? + type: boolean + allowsMembers: + description: | + Does the board allows members? + type: boolean + allowsRequestedBy: + description: | + Does the board allows requested by? + type: boolean + allowsCardSortingByNumber: + description: | + Does the board allows card sorting by number? + type: boolean + allowsShowLists: + description: | + Does the board allows show lists on the card? + type: boolean + allowsAssignedBy: + description: | + Does the board allows requested by? + type: boolean + allowsReceivedDate: + description: | + Does the board allows received date? + type: boolean + allowsStartDate: + description: | + Does the board allows start date? + type: boolean + allowsEndDate: + description: | + Does the board allows end date? + type: boolean + allowsDueDate: + description: | + Does the board allows due date? + type: boolean + presentParentTask: + description: | + Controls how to present the parent task: + + - `prefix-with-full-path`: add a prefix with the full path + - `prefix-with-parent`: add a prefisx with the parent name + - `subtext-with-full-path`: add a subtext with the full path + - `subtext-with-parent`: add a subtext with the parent name + - `no-parent`: does not show the parent at all + type: string + enum: + - prefix-with-full-path + - prefix-with-parent + - subtext-with-full-path + - subtext-with-parent + - no-parent + x-nullable: true + receivedAt: + description: | + Date the card was received + type: string + x-nullable: true + startAt: + description: | + Starting date of the board. + type: string + x-nullable: true + dueAt: + description: | + Due date of the board. + type: string + x-nullable: true + endAt: + description: | + End date of the board. + type: string + x-nullable: true + spentTime: + description: | + Time spent in the board. + type: number + x-nullable: true + isOvertime: + description: | + Is the board overtimed? + type: boolean + x-nullable: true + type: + description: | + The type of board + possible values: board, template-board, template-container + type: string + enum: + - board + - template-board + - template-container + sort: + description: | + Sort value + type: number + showActivities: + type: boolean + required: + - title + - slug + - archived + - createdAt + - stars + - members + - permission + - color + - allowsCardCounterList + - allowsBoardMemberList + - allowsSubtasks + - allowsAttachments + - allowsChecklists + - allowsComments + - allowsDescriptionTitle + - allowsDescriptionText + - allowsDescriptionTextOnMinicard + - allowsCoverAttachmentOnMinicard + - allowsBadgeAttachmentOnMinicard + - allowsCardSortingByNumberOnMinicard + - allowsCardNumber + - allowsActivities + - allowsLabels + - allowsCreator + - allowsCreatorOnMinicard + - allowsAssignee + - allowsMembers + - allowsRequestedBy + - allowsCardSortingByNumber + - allowsShowLists + - allowsAssignedBy + - allowsReceivedDate + - allowsStartDate + - allowsEndDate + - allowsDueDate + - type + - sort + - showActivities + BoardsLabels: + type: object + properties: + _id: + description: | + Unique id of a label + type: string + name: + description: | + Name of a label + type: string + color: + description: | + color of a label. + + Can be amongst `green`, `yellow`, `orange`, `red`, `purple`, + `blue`, `sky`, `lime`, `pink`, `black`, + `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`, + `slateblue`, `magenta`, `gold`, `navy`, `gray`, + `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo` + type: string + enum: + - white + - green + - yellow + - orange + - red + - purple + - blue + - sky + - lime + - pink + - black + - silver + - peachpuff + - crimson + - plum + - darkgreen + - slateblue + - magenta + - gold + - navy + - gray + - saddlebrown + - paleturquoise + - mistyrose + - indigo + required: + - _id + - color + BoardsMembers: + type: object + properties: + userId: + description: | + The uniq ID of the member + type: string + isAdmin: + description: | + Is the member an admin of the board? + type: boolean + isActive: + description: | + Is the member active? + type: boolean + isNoComments: + description: | + Is the member not allowed to make comments + type: boolean + isCommentOnly: + description: | + Is the member only allowed to comment on the board + type: boolean + isWorker: + description: | + Is the member only allowed to move card, assign himself to card and comment + type: boolean + required: + - userId + - isAdmin + - isActive + BoardsOrgs: + type: object + properties: + orgId: + description: | + The uniq ID of the organization + type: string + orgDisplayName: + description: | + The display name of the organization + type: string + isActive: + description: | + Is the organization active? + type: boolean + required: + - orgId + - orgDisplayName + - isActive + BoardsTeams: + type: object + properties: + teamId: + description: | + The uniq ID of the team + type: string + teamDisplayName: + description: | + The display name of the team + type: string + isActive: + description: | + Is the team active? + type: boolean + required: + - teamId + - teamDisplayName + - isActive + CardComments: + type: object + description: A comment on a card + properties: + boardId: + description: | + the board ID + type: string + cardId: + description: | + the card ID + type: string + text: + description: | + the text of the comment + type: string + createdAt: + description: | + when was the comment created + type: string + modifiedAt: + type: string + userId: + description: | + the author ID of the comment + type: string + required: + - boardId + - cardId + - text + - createdAt + - modifiedAt + - userId + Cards: + type: object + properties: + title: + description: | + the title of the card + type: string + x-nullable: true + archived: + description: | + is the card archived + type: boolean + archivedAt: + description: | + latest archiving date + type: string + x-nullable: true + parentId: + description: | + ID of the parent card + type: string + x-nullable: true + listId: + description: | + List ID where the card is + type: string + x-nullable: true + swimlaneId: + description: | + Swimlane ID where the card is + type: string + boardId: + description: | + Board ID of the card + type: string + x-nullable: true + coverId: + description: | + Cover ID of the card + type: string + x-nullable: true + color: + type: string + enum: + - white + - green + - yellow + - orange + - red + - purple + - blue + - sky + - lime + - pink + - black + - silver + - peachpuff + - crimson + - plum + - darkgreen + - slateblue + - magenta + - gold + - navy + - gray + - saddlebrown + - paleturquoise + - mistyrose + - indigo + x-nullable: true + createdAt: + description: | + creation date + type: string + modifiedAt: + type: string + customFields: + description: | + list of custom fields + type: array + items: + $ref: "#/definitions/CardsCustomfields" + x-nullable: true + dateLastActivity: + description: | + Date of last activity + type: string + description: + description: | + description of the card + type: string + x-nullable: true + requestedBy: + description: | + who requested the card (ID of the user) + type: string + x-nullable: true + assignedBy: + description: | + who assigned the card (ID of the user) + type: string + x-nullable: true + labelIds: + description: | + list of labels ID the card has + type: array + items: + type: string + x-nullable: true + x-nullable: true + members: + description: | + list of members (user IDs) + type: array + items: + type: string + x-nullable: true + x-nullable: true + assignees: + description: | + who is assignee of the card (user ID), + maximum one ID of assignee in array. + type: array + items: + type: string + x-nullable: true + x-nullable: true + receivedAt: + description: | + Date the card was received + type: string + x-nullable: true + startAt: + description: | + Date the card was started to be worked on + type: string + x-nullable: true + dueAt: + description: | + Date the card is due + type: string + x-nullable: true + endAt: + description: | + Date the card ended + type: string + x-nullable: true + spentTime: + description: | + How much time has been spent on this + type: number + x-nullable: true + isOvertime: + description: | + is the card over time? + type: boolean + x-nullable: true + userId: + description: | + user ID of the author of the card + type: string + sort: + description: | + Sort value + type: number + x-nullable: true + subtaskSort: + description: | + subtask sort value + type: number + x-nullable: true + type: + description: | + type of the card + type: string + linkedId: + description: | + ID of the linked card + type: string + x-nullable: true + vote: + description: | + vote object, see below + $ref: "#/definitions/CardsVote" + x-nullable: true + poker: + description: | + poker object, see below + $ref: "#/definitions/CardsPoker" + x-nullable: true + targetId_gantt: + description: | + ID of card which is the child link in gantt view + type: array + items: + type: string + x-nullable: true + x-nullable: true + linkType_gantt: + description: | + ID of card which is the parent link in gantt view + type: array + items: + type: number + x-nullable: true + x-nullable: true + linkId_gantt: + description: | + ID of card which is the parent link in gantt view + type: array + items: + type: string + x-nullable: true + x-nullable: true + cardNumber: + description: | + A boardwise sequentially increasing number that is assigned + to every newly created card + type: number + x-nullable: true + showActivities: + type: boolean + hideFinishedChecklistIfItemsAreHidden: + description: | + hide completed checklist? + type: boolean + x-nullable: true + required: + - archived + - swimlaneId + - createdAt + - modifiedAt + - dateLastActivity + - userId + - type + - showActivities + CardsVote: + type: object + properties: + question: + type: string + positive: + description: | + list of members (user IDs) + type: array + items: + type: string + x-nullable: true + negative: + description: | + list of members (user IDs) + type: array + items: + type: string + x-nullable: true + end: + type: string + public: + type: boolean + allowNonBoardMembers: + type: boolean + required: + - question + - public + - allowNonBoardMembers + CardsPoker: + type: object + properties: + question: + type: boolean + one: + description: | + poker card one + type: array + items: + type: string + x-nullable: true + two: + description: | + poker card two + type: array + items: + type: string + x-nullable: true + three: + description: | + poker card three + type: array + items: + type: string + x-nullable: true + five: + description: | + poker card five + type: array + items: + type: string + x-nullable: true + eight: + description: | + poker card eight + type: array + items: + type: string + x-nullable: true + thirteen: + description: | + poker card thirteen + type: array + items: + type: string + x-nullable: true + twenty: + description: | + poker card twenty + type: array + items: + type: string + x-nullable: true + forty: + description: | + poker card forty + type: array + items: + type: string + x-nullable: true + oneHundred: + description: | + poker card oneHundred + type: array + items: + type: string + x-nullable: true + unsure: + description: | + poker card unsure + type: array + items: + type: string + x-nullable: true + end: + type: string + allowNonBoardMembers: + type: boolean + estimation: + description: | + poker estimation value + type: number + CardsCustomfields: + type: object + ChecklistItems: + type: object + description: An item in a checklist + properties: + title: + description: | + the text of the item + type: string + sort: + description: | + the sorting field of the item + type: number + isFinished: + description: | + Is the item checked? + type: boolean + checklistId: + description: | + the checklist ID the item is attached to + type: string + cardId: + description: | + the card ID the item is attached to + type: string + createdAt: + type: string + x-nullable: true + modifiedAt: + type: string + required: + - title + - sort + - isFinished + - checklistId + - cardId + - modifiedAt + Checklists: + type: object + description: A Checklist + properties: + cardId: + description: | + The ID of the card the checklist is in + type: string + title: + description: | + the title of the checklist + type: string + finishedAt: + description: | + When was the checklist finished + type: string + x-nullable: true + createdAt: + description: | + Creation date of the checklist + type: string + modifiedAt: + type: string + sort: + description: | + sorting value of the checklist + type: number + hideCheckedChecklistItems: + description: | + hide the checked checklist-items? + type: boolean + x-nullable: true + hideAllChecklistItems: + description: | + hide all checklist items ? + type: boolean + x-nullable: true + required: + - cardId + - title + - createdAt + - modifiedAt + - sort + CustomFields: + type: object + description: A custom field on a card in the board + properties: + boardIds: + description: | + the ID of the board + type: array + items: + type: string + name: + description: | + name of the custom field + type: string + type: + description: | + type of the custom field + type: string + enum: + - text + - number + - date + - dropdown + - checkbox + - currency + - stringtemplate + settings: + description: | + settings of the custom field + $ref: "#/definitions/CustomFieldsSettings" + showOnCard: + description: | + should we show on the cards this custom field + type: boolean + automaticallyOnCard: + description: | + should the custom fields automatically be added on cards? + type: boolean + alwaysOnCard: + description: | + should the custom field be automatically added to all cards? + type: boolean + showLabelOnMiniCard: + description: | + should the label of the custom field be shown on minicards? + type: boolean + showSumAtTopOfList: + description: | + should the sum of the custom fields be shown at top of list? + type: boolean + createdAt: + type: string + x-nullable: true + modifiedAt: + type: string + required: + - boardIds + - name + - type + - settings + - showOnCard + - automaticallyOnCard + - alwaysOnCard + - showLabelOnMiniCard + - showSumAtTopOfList + - modifiedAt + CustomFieldsSettings: + type: object + properties: + currencyCode: + type: string + dropdownItems: + description: | + list of drop down items objects + type: array + items: + $ref: "#/definitions/CustomFieldsSettingsDropdownitems" + stringtemplateFormat: + type: string + stringtemplateSeparator: + type: string + CustomFieldsSettingsDropdownitems: + type: object + Integrations: + type: object + description: Integration with third-party applications + properties: + enabled: + description: | + is the integration enabled? + type: boolean + title: + description: | + name of the integration + type: string + x-nullable: true + type: + description: | + type of the integratation (Default to 'outgoing-webhooks') + type: string + activities: + description: | + activities the integration gets triggered (list) + type: array + items: + type: string + url: + type: string + token: + description: | + token of the integration + type: string + x-nullable: true + boardId: + description: | + Board ID of the integration + type: string + createdAt: + description: | + Creation date of the integration + type: string + modifiedAt: + type: string + userId: + description: | + user ID who created the interation + type: string + required: + - enabled + - type + - activities + - url + - boardId + - createdAt + - modifiedAt + - userId + Lists: + type: object + description: A list (column) in the Wekan board. + properties: + title: + description: | + the title of the list + type: string + starred: + description: | + if a list is stared + then we put it on the top + type: boolean + x-nullable: true + archived: + description: | + is the list archived + type: boolean + archivedAt: + description: | + latest archiving date + type: string + x-nullable: true + boardId: + description: | + the board associated to this list + type: string + swimlaneId: + description: | + the swimlane associated to this list. Used for templates + type: string + createdAt: + description: | + creation date + type: string + sort: + description: | + is the list sorted + type: number + x-nullable: true + updatedAt: + description: | + last update of the list + type: string + x-nullable: true + modifiedAt: + type: string + wipLimit: + description: | + WIP object, see below + $ref: "#/definitions/ListsWiplimit" + x-nullable: true + color: + description: | + the color of the list + type: string + enum: + - white + - green + - yellow + - orange + - red + - purple + - blue + - sky + - lime + - pink + - black + - silver + - peachpuff + - crimson + - plum + - darkgreen + - slateblue + - magenta + - gold + - navy + - gray + - saddlebrown + - paleturquoise + - mistyrose + - indigo + x-nullable: true + type: + description: | + The type of list + type: string + collapsed: + description: | + is the list collapsed + type: boolean + required: + - title + - archived + - boardId + - swimlaneId + - createdAt + - modifiedAt + - type + - collapsed + ListsWiplimit: + type: object + properties: + value: + description: | + value of the WIP + type: number + enabled: + description: | + is the WIP enabled + type: boolean + soft: + description: | + is the WIP a soft or hard requirement + type: boolean + required: + - value + - enabled + - soft + Swimlanes: + type: object + description: A swimlane is an line in the kaban board. + properties: + title: + description: | + the title of the swimlane + type: string + archived: + description: | + is the swimlane archived? + type: boolean + archivedAt: + description: | + latest archiving date of the swimlane + type: string + x-nullable: true + boardId: + description: | + the ID of the board the swimlane is attached to + type: string + createdAt: + description: | + creation date of the swimlane + type: string + sort: + description: | + the sort value of the swimlane + type: number + x-nullable: true + color: + description: | + the color of the swimlane + type: string + enum: + - white + - green + - yellow + - orange + - red + - purple + - blue + - sky + - lime + - pink + - black + - silver + - peachpuff + - crimson + - plum + - darkgreen + - slateblue + - magenta + - gold + - navy + - gray + - saddlebrown + - paleturquoise + - mistyrose + - indigo + x-nullable: true + updatedAt: + description: | + when was the swimlane last edited + type: string + x-nullable: true + modifiedAt: + type: string + type: + description: | + The type of swimlane + type: string + collapsed: + description: | + is the swimlane collapsed + type: boolean + required: + - title + - archived + - boardId + - createdAt + - modifiedAt + - type + - collapsed