From 6f2eb00c4397dc8ff599ef0acd7c6df33f61d695 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 17 Jul 2019 17:06:25 +0300 Subject: Add API docs to repo. --- public/api/wekan.html | 15766 ++++++++++++++++++++++++++++++++++++++++++++++++ public/api/wekan.yml | 2937 +++++++++ 2 files changed, 18703 insertions(+) create mode 100644 public/api/wekan.html create mode 100644 public/api/wekan.yml (limited to 'public/api') diff --git a/public/api/wekan.html b/public/api/wekan.html new file mode 100644 index 00000000..c437c049 --- /dev/null +++ b/public/api/wekan.html @@ -0,0 +1,15766 @@ + + + + + + + + + + Wekan REST API + + + + + + + + + + + + + + + + NAV + Navigation + + +
+ + +
+ + + Shell + + + + HTTP + + + + JavaScript + + + + Node.js + + + + Ruby + + + + Python + + + + Java + + + + Go + + +
+ + + + + +
+ +
+ + + +
+
+
+
+

Wekan REST API v2.99

+
+

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:

+
    +
  • 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
  • +
+

Authentication

+
    +
  • API Key (UserSecurity) +
      +
    • Parameter Name: Authorization, in: header.
    • +
    +
  • +
+

Login

+

login

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /users/login \
+  -H 'Content-Type: application/x-www-form-urlencoded' \
+  -H 'Accept: */*'
+
+
+
POST /users/login HTTP/1.1
+
+Content-Type: application/x-www-form-urlencoded
+Accept: */*
+
+
+
var headers = {
+  'Content-Type':'application/x-www-form-urlencoded',
+  '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/x-www-form-urlencoded',
+  '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/x-www-form-urlencoded',
+  'Accept' => '*/*'
+}
+
+result = RestClient.post '/users/login',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Content-Type': 'application/x-www-form-urlencoded',
+  '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/x-www-form-urlencoded"},
+        "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
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
bodybodyobjectfalsenone
» 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
» idstringfalsenonenone
» tokenstringfalsenonenone
» tokenExpiresstringfalsenonenone
+

Status Code 400

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
» errornumberfalsenonenone
» 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:

+
    +
  • You will need to provide the token for any of the authenticated methods.
  • +
+
+

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,
+  "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
+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)
» 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,
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "stars": 0,
+  "labels": [
+    {
+      "_id": "string",
+      "name": "string",
+      "color": "green"
+    }
+  ],
+  "members": [
+    {
+      "userId": "string",
+      "isAdmin": true,
+      "isActive": true,
+      "isNoComments": true,
+      "isCommentOnly": true
+    }
+  ],
+  "permission": "public",
+  "color": "belize",
+  "description": "string",
+  "subtasksDefaultBoardId": "string",
+  "subtasksDefaultListId": "string",
+  "allowsSubtasks": true,
+  "presentParentTask": "prefix-with-full-path",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "type": "string"
+}
+
+

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
+ +

export

+

+
+

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.

+

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
+ +

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
+}';
+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
+
+
+

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
+

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
+ +

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_board_card_checklists

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/checklists \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/checklists HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/checklists',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
+

Responses

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

post_board_card_checklists

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/cards/{card}/checklists \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/cards/{card}/checklists HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  '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"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  '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',
+  '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',
+  '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"},
+        "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

+
+

Body parameter

+
+
title: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
bodybodyobjectfalsenone
» titlebodystringtruethe title value
+

Responses

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

get_board_card_checklist

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist} \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/checklists/{checklist}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
checklistpathstringtruethe checklist value
+

Responses

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

delete_board_card_checklist

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/cards/{card}/checklists/{checklist} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/cards/{card}/checklists/{checklist}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
checklistpathstringtruethe checklist value
+

Responses

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

ChecklistItems

+

get_board_card_checklist_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  '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 = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
checklistpathstringtruethe checklist value
itempathstringtruethe item value
+

Responses

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

put_board_card_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 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  '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',
+  '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',
+  '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',
+  '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"},
+        "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}

+
+

Body parameter

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

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
checklistpathstringtruethe checklist value
itempathstringtruethe item value
bodybodyobjectfalsenone
» isFinishedbodystringtruethe isFinished value
» titlebodystringtruethe title value
+

Responses

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

delete_board_card_checklist_item

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  '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 = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
checklistpathstringtruethe checklist value
itempathstringtruethe item value
+

Responses

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

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
+ +

post_board_card_comments

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/cards/{card}/comments \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/cards/{card}/comments HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  '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',
+  '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',
+  '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',
+  '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"},
+        "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

+
+

Body parameter

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

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
bodybodyobjectfalsenone
» authorIdbodystringtruethe authorId value
» commentbodystringtruethe comment value
+

Responses

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

get_board_card_comment

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/cards/{card}/comments/{comment} \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/cards/{card}/comments/{comment}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
commentpathstringtruethe comment value
+

Responses

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

delete_board_card_comment

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/cards/{card}/comments/{comment} \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/cards/{card}/comments/{comment} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/cards/{card}/comments/{comment}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
cardpathstringtruethe card value
commentpathstringtruethe comment value
+

Responses

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

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,
+  "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
+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?
» authorIdbodystringtruethe authorId value
+
+

Example responses

+
+
+

200 Response

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

Responses

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

Response Schema

+

Status Code 200

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

get_board_customField

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/custom-fields/{customField} \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/custom-fields/{customField} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/custom-fields/{customField}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe customField value
+

Responses

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

delete_board_customField

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/custom-fields/{customField} \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/custom-fields/{customField} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/custom-fields/{customField}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
customFieldpathstringtruethe customField value
+

Responses

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

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_board_int_activities

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/integrations/{int}/activities \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/integrations/{int}/activities HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/integrations/{int}/activities',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
intpathstringtruethe int value
+

Responses

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

post_board_int_activities

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/integrations/{int}/activities \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/integrations/{int}/activities HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  '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',
+  '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',
+  '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',
+  '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"},
+        "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

+
+

Body parameter

+
+
activities: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
intpathstringtruethe int value
bodybodyobjectfalsenone
» activitiesbodystringtruethe activities value
+

Responses

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

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",
+  "archived": true,
+  "boardId": "string",
+  "swimlaneId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "wipLimit": {
+    "value": 0,
+    "enabled": true,
+    "soft": true
+  },
+  "color": "white",
+  "type": "string"
+}
+
+

Responses

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

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
+ +

Cards

+

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",
+  "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
+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
» 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_board_list_card

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/lists/{list}/cards/{card} \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/lists/{list}/cards/{card}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
listpathstringtruethe list value
cardpathstringtruethe card value
+

Responses

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

put_board_list_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 'Authorization: API_KEY'
+
+
+
PUT /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  '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 = '{
+  "title": "string",
+  "listId": "string",
+  "authorId": "string",
+  "parentId": "string",
+  "description": "string",
+  "color": "string",
+  "labelIds": "string",
+  "requestedBy": "string",
+  "assignedBy": "string",
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": "string",
+  "isOverTime": "string",
+  "customFields": "string",
+  "members": "string",
+  "swimlaneId": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  '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',
+  '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',
+  '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"},
+        "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}

+
+

Body parameter

+
+
title: string
+listId: string
+authorId: string
+parentId: string
+description: string
+color: string
+labelIds: string
+requestedBy: string
+assignedBy: string
+receivedAt: string
+startAt: string
+dueAt: string
+endAt: string
+spentTime: string
+isOverTime: string
+customFields: string
+members: string
+swimlaneId: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
listpathstringtruethe list value
cardpathstringtruethe card value
bodybodyobjectfalsenone
» titlebodystringtruethe title value
» listIdbodystringtruethe listId value
» authorIdbodystringtruethe authorId value
» parentIdbodystringtruethe parentId value
» descriptionbodystringtruethe description value
» colorbodystringtruethe color value
» labelIdsbodystringtruethe labelIds value
» requestedBybodystringtruethe requestedBy value
» assignedBybodystringtruethe assignedBy value
» receivedAtbodystringtruethe receivedAt value
» startAtbodystringtruethe startAt value
» dueAtbodystringtruethe dueAt value
» endAtbodystringtruethe endAt value
» spentTimebodystringtruethe spentTime value
» isOverTimebodystringtruethe isOverTime value
» customFieldsbodystringtruethe customFields value
» membersbodystringtruethe members value
» swimlaneIdbodystringtruethe swimlaneId value
+

Responses

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

delete_board_list_card

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/lists/{list}/cards/{card} \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/lists/{list}/cards/{card} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/lists/{list}/cards/{card}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
listpathstringtruethe list value
cardpathstringtruethe card value
+

Responses

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

get_board_swimlane_cards

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/boards/{board}/swimlanes/{swimlane}/cards \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/boards/{board}/swimlanes/{swimlane}/cards HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/swimlanes/{swimlane}/cards',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
swimlanepathstringtruethe swimlane value
+

Responses

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

Users

+

add_board_member

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/members/{user}/add \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/members/{user}/add 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}/members/{user}/add',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "action": "string",
+  "isAdmin": true,
+  "isNoComments": true,
+  "isCommentOnly": true
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/members/{user}/add',
+{
+  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}/members/{user}/add',
+  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}/members/{user}/add', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/members/{user}/add");
+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}/members/{user}/add", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/members/{user}/add

+

Add New Board Member with Role

+

Only the admin user (the first user) can call the REST API.

+

Note: see Boards.set_board_member_permission +to later change the permissions.

+
+

Body parameter

+
+
action: string
+isAdmin: true
+isNoComments: true
+isCommentOnly: true
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board ID
userpathstringtruethe user ID
bodybodyobjectfalsenone
» actionbodystringtruethe action value
» isAdminbodybooleantrueis the user an admin of the board
» isNoCommentsbodybooleantruedisable comments
» isCommentOnlybodybooleantrueonly enable comments
+

Detailed descriptions

+

board: the board ID

+

user: the user ID

+
+

Example responses

+
+
+

200 Response

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

Responses

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

Response Schema

+

Status Code 200

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

post_board_user_remove

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/boards/{board}/members/{user}/remove \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/boards/{board}/members/{user}/remove HTTP/1.1
+
+Content-Type: multipart/form-data
+
+
+
var headers = {
+  'Content-Type':'multipart/form-data',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/boards/{board}/members/{user}/remove',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "action": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/members/{user}/remove',
+{
+  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/{user}/remove',
+  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/{user}/remove', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/boards/{board}/members/{user}/remove");
+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/{user}/remove", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/boards/{board}/members/{user}/remove

+
+

Body parameter

+
+
action: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
userpathstringtruethe user value
bodybodyobjectfalsenone
» actionbodystringtruethe action value
+

Responses

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

get_current_user

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/user \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/user HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/user',
+  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/user',
+{
+  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/user',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/user', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/user");
+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/user", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/user

+

returns the current user

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "username": "string",
+  "emails": [
+    {
+      "address": "string",
+      "verified": true
+    }
+  ],
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "profile": {
+    "avatarUrl": "string",
+    "emailBuffer": [
+      "string"
+    ],
+    "fullname": "string",
+    "hiddenSystemMessages": true,
+    "initials": "string",
+    "invitedBoards": [
+      "string"
+    ],
+    "language": "string",
+    "notifications": [
+      "string"
+    ],
+    "showCardsCountAt": 0,
+    "starredBoards": [
+      "string"
+    ],
+    "icode": "string",
+    "boardView": "board-view-lists",
+    "templatesBoardId": "string",
+    "cardTemplatesSwimlaneId": "string",
+    "listTemplatesSwimlaneId": "string",
+    "boardTemplatesSwimlaneId": "string"
+  },
+  "services": {},
+  "heartbeat": "string",
+  "isAdmin": true,
+  "createdThroughApi": true,
+  "loginDisabled": true,
+  "authenticationMethod": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseUsers
+ +

get_all_users

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/users \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/users HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/users',
+  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',
+{
+  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',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/users', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/users");
+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", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/users

+

return all the users

+

Only the admin user (the first user) can call the REST API.

+
+

Example responses

+
+
+

200 Response

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

Responses

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

Response Schema

+

Status Code 200

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

new_user

+

+
+

Code samples

+
+
# You can also use wget
+curl -X POST /api/users \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
POST /api/users 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/users',
+  method: 'post',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "username": "string",
+  "email": "string",
+  "password": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/users',
+{
+  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/users',
+  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/users', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/users");
+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/users", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

POST /api/users

+

Create a new user

+

Only the admin user (the first user) can call the REST API.

+
+

Body parameter

+
+
username: string
+email: string
+password: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
bodybodyobjectfalsenone
» usernamebodystringtruethe new username
» emailbodystringtruethe email of the new user
» passwordbodystringtruethe password of the new user
+
+

Example responses

+
+
+

200 Response

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

Responses

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

Response Schema

+

Status Code 200

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

get_user

+

+
+

Code samples

+
+
# You can also use wget
+curl -X GET /api/users/{user} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
GET /api/users/{user} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/users/{user}',
+  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}',
+{
+  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}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/users/{user}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/users/{user}");
+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}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

GET /api/users/{user}

+

get a given user

+

Only the admin user (the first user) can call the REST API.

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
userpathstringtruethe user ID
+

Detailed descriptions

+

user: the user ID

+
+

Example responses

+
+
+

200 Response

+
+
{
+  "username": "string",
+  "emails": [
+    {
+      "address": "string",
+      "verified": true
+    }
+  ],
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "profile": {
+    "avatarUrl": "string",
+    "emailBuffer": [
+      "string"
+    ],
+    "fullname": "string",
+    "hiddenSystemMessages": true,
+    "initials": "string",
+    "invitedBoards": [
+      "string"
+    ],
+    "language": "string",
+    "notifications": [
+      "string"
+    ],
+    "showCardsCountAt": 0,
+    "starredBoards": [
+      "string"
+    ],
+    "icode": "string",
+    "boardView": "board-view-lists",
+    "templatesBoardId": "string",
+    "cardTemplatesSwimlaneId": "string",
+    "listTemplatesSwimlaneId": "string",
+    "boardTemplatesSwimlaneId": "string"
+  },
+  "services": {},
+  "heartbeat": "string",
+  "isAdmin": true,
+  "createdThroughApi": true,
+  "loginDisabled": true,
+  "authenticationMethod": "string"
+}
+
+

Responses

+ + + + + + + + + + + + + + + + + +
StatusMeaningDescriptionSchema
200OK200 responseUsers
+ +

edit_user

+

+
+

Code samples

+
+
# You can also use wget
+curl -X PUT /api/users/{user} \
+  -H 'Content-Type: multipart/form-data' \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
PUT /api/users/{user} 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/users/{user}',
+  method: 'put',
+
+  headers: headers,
+  success: function(data) {
+    console.log(JSON.stringify(data));
+  }
+})
+
+
+
const fetch = require('node-fetch');
+const inputBody = '{
+  "action": "string"
+}';
+const headers = {
+  'Content-Type':'multipart/form-data',
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+fetch('/api/users/{user}',
+{
+  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/users/{user}',
+  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/users/{user}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/users/{user}");
+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/users/{user}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

PUT /api/users/{user}

+

edit a given user

+

Only the admin user (the first user) can call the REST API.

+

Possible values for action:

+
    +
  • takeOwnership: The admin takes the ownership of ALL boards of the user (archived and not archived) where the user is admin on.
  • +
  • disableLogin: Disable a user (the user is not allowed to login and his login tokens are purged)
  • +
  • enableLogin: Enable a user
  • +
+
+

Body parameter

+
+
action: string
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
userpathstringtruethe user ID
bodybodyobjectfalsenone
» actionbodystringtruethe action
+

Detailed descriptions

+

user: the user ID

+
+

Example responses

+
+
+

200 Response

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

Responses

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

Response Schema

+

Status Code 200

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

delete_user

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/users/{user} \
+  -H 'Accept: application/json' \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/users/{user} HTTP/1.1
+
+Accept: application/json
+
+
+
var headers = {
+  'Accept':'application/json',
+  'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+  url: '/api/users/{user}',
+  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/users/{user}',
+{
+  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/users/{user}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  'Accept': 'application/json',
+  'Authorization': 'API_KEY'
+}
+
+r = requests.delete('/api/users/{user}', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+
URL obj = new URL("/api/users/{user}");
+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/users/{user}", data)
+    req.Header = headers
+
+    client := &http.Client{}
+    resp, err := client.Do(req)
+    // ...
+}
+
+
+

DELETE /api/users/{user}

+

Delete a user

+

Only the admin user (the first user) can call the REST API.

+

Parameters

+ + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
userpathstringtruethe ID of the user to delete
+

Detailed descriptions

+

user: the ID of the user to delete

+
+

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
bodybodyobjectfalsenone
» 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,
+  "boardId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "color": "white",
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "type": "string"
+}
+
+

Responses

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

delete_board_swimlane

+

+
+

Code samples

+
+
# You can also use wget
+curl -X DELETE /api/boards/{board}/swimlanes/{swimlane} \
+  -H 'Authorization: API_KEY'
+
+
+
DELETE /api/boards/{board}/swimlanes/{swimlane} HTTP/1.1
+
+
+
var headers = {
+  '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 = {
+  '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 = {
+  'Authorization' => 'API_KEY'
+}
+
+result = RestClient.delete '/api/boards/{board}/swimlanes/{swimlane}',
+  params: {
+  }, headers: headers
+
+p JSON.parse(result)
+
+
+
import requests
+headers = {
+  '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{
+        "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}

+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameInTypeRequiredDescription
boardpathstringtruethe board value
swimlanepathstringtruethe swimlane value
+

Responses

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

Schemas

+

Boards

+

+
{
+  "title": "string",
+  "slug": "string",
+  "archived": true,
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "stars": 0,
+  "labels": [
+    {
+      "_id": "string",
+      "name": "string",
+      "color": "green"
+    }
+  ],
+  "members": [
+    {
+      "userId": "string",
+      "isAdmin": true,
+      "isActive": true,
+      "isNoComments": true,
+      "isCommentOnly": true
+    }
+  ],
+  "permission": "public",
+  "color": "belize",
+  "description": "string",
+  "subtasksDefaultBoardId": "string",
+  "subtasksDefaultListId": "string",
+  "allowsSubtasks": true,
+  "presentParentTask": "prefix-with-full-path",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "type": "string"
+}
+
+
+

This is a Board.

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestringtruenoneThe title of the board
slugstringtruenoneThe title slugified.
archivedbooleantruenoneIs the board archived?
createdAtstringtruenoneCreation time of the board
modifiedAtstring|nullfalsenoneLast modification time of the board
starsnumbertruenoneHow many stars the board has
labels[BoardsLabels]truenoneList of labels attached to a board
members[BoardsMembers]truenoneList of members of a board
permissionstringtruenonevisibility of the board
colorstringtruenoneThe color of the board.
descriptionstring|nullfalsenoneThe description of the board
subtasksDefaultBoardIdstring|nullfalsenoneThe default board ID assigned to subtasks.
subtasksDefaultListIdstring|nullfalsenoneThe default List ID assigned to subtasks.
allowsSubtasksbooleantruenoneDoes the board allows subtasks?
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
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
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
permissionpublic
permissionprivate
colorbelize
colornephritis
colorpomegranate
colorpumpkin
colorwisteria
colormoderatepink
colorstrongcyan
colorlimegreen
colormidnight
colordark
colorrelax
colorcorteza
presentParentTaskprefix-with-full-path
presentParentTaskprefix-with-parent
presentParentTasksubtext-with-full-path
presentParentTasksubtext-with-parent
presentParentTaskno-parent
+

BoardsLabels

+

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

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
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
+}
+
+
+

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
+

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,
+  "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"
+  ],
+  "receivedAt": "string",
+  "startAt": "string",
+  "dueAt": "string",
+  "endAt": "string",
+  "spentTime": 0,
+  "isOvertime": true,
+  "userId": "string",
+  "sort": 0,
+  "subtaskSort": 0,
+  "type": "string",
+  "linkedId": "string"
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestring|nullfalsenonethe title of the card
archivedbooleantruenoneis the card archived
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)
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
sortnumbertruenoneSort value
subtaskSortnumber|nullfalsenonesubtask sort value
typestringtruenonetype of the card
linkedIdstring|nullfalsenoneID of the linked card
+

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
+

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
+}
+
+
+

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
+

CustomFields

+

+
{
+  "boardIds": [
+    "string"
+  ],
+  "name": "string",
+  "type": "text",
+  "settings": {
+    "dropdownItems": [
+      {}
+    ]
+  },
+  "showOnCard": true,
+  "automaticallyOnCard": true,
+  "showLabelOnMiniCard": 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?
showLabelOnMiniCardbooleantruenoneshould the label of the custom field be shown on minicards?
createdAtstring|nullfalsenonenone
modifiedAtstringtruenonenone
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
typetext
typenumber
typedate
typedropdown
+

CustomFieldsSettings

+

+
{
+  "dropdownItems": [
+    {}
+  ]
+}
+
+
+

Properties

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

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",
+  "archived": true,
+  "boardId": "string",
+  "swimlaneId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "wipLimit": {
+    "value": 0,
+    "enabled": true,
+    "soft": true
+  },
+  "color": "white",
+  "type": "string"
+}
+
+
+

A list (column) in the Wekan board.

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestringtruenonethe title of the list
archivedbooleantruenoneis the list archived
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
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyValue
colorwhite
colorgreen
coloryellow
colororange
colorred
colorpurple
colorblue
colorsky
colorlime
colorpink
colorblack
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,
+  "boardId": "string",
+  "createdAt": "string",
+  "sort": 0,
+  "color": "white",
+  "updatedAt": "string",
+  "modifiedAt": "string",
+  "type": "string"
+}
+
+
+

A swimlane is an line in the kaban board.

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
titlestringtruenonethe title of the swimlane
archivedbooleantruenoneis the swimlane archived?
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
+

Enumerated Values

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

Users

+

+
{
+  "username": "string",
+  "emails": [
+    {
+      "address": "string",
+      "verified": true
+    }
+  ],
+  "createdAt": "string",
+  "modifiedAt": "string",
+  "profile": {
+    "avatarUrl": "string",
+    "emailBuffer": [
+      "string"
+    ],
+    "fullname": "string",
+    "hiddenSystemMessages": true,
+    "initials": "string",
+    "invitedBoards": [
+      "string"
+    ],
+    "language": "string",
+    "notifications": [
+      "string"
+    ],
+    "showCardsCountAt": 0,
+    "starredBoards": [
+      "string"
+    ],
+    "icode": "string",
+    "boardView": "board-view-lists",
+    "templatesBoardId": "string",
+    "cardTemplatesSwimlaneId": "string",
+    "listTemplatesSwimlaneId": "string",
+    "boardTemplatesSwimlaneId": "string"
+  },
+  "services": {},
+  "heartbeat": "string",
+  "isAdmin": true,
+  "createdThroughApi": true,
+  "loginDisabled": true,
+  "authenticationMethod": "string"
+}
+
+
+

A User in wekan

+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
usernamestring|nullfalsenonethe username of the user
emails[UsersEmails]|nullfalsenonethe list of emails attached to a user
createdAtstringtruenonecreation date of the user
modifiedAtstringtruenonenone
profileUsersProfilefalsenoneprofile settings
servicesobject|nullfalsenoneservices field of the user
heartbeatstring|nullfalsenonelast time the user has been seen
isAdminboolean|nullfalsenoneis the user an admin of the board?
createdThroughApiboolean|nullfalsenonewas the user created through the API?
loginDisabledboolean|nullfalsenoneloginDisabled field of the user
authenticationMethodstringtruenoneauthentication method of the user
+

UsersEmails

+

+
{
+  "address": "string",
+  "verified": true
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
addressstringtruenoneThe email address
verifiedbooleantruenoneHas the email been verified
+

UsersProfile

+

+
{
+  "avatarUrl": "string",
+  "emailBuffer": [
+    "string"
+  ],
+  "fullname": "string",
+  "hiddenSystemMessages": true,
+  "initials": "string",
+  "invitedBoards": [
+    "string"
+  ],
+  "language": "string",
+  "notifications": [
+    "string"
+  ],
+  "showCardsCountAt": 0,
+  "starredBoards": [
+    "string"
+  ],
+  "icode": "string",
+  "boardView": "board-view-lists",
+  "templatesBoardId": "string",
+  "cardTemplatesSwimlaneId": "string",
+  "listTemplatesSwimlaneId": "string",
+  "boardTemplatesSwimlaneId": "string"
+}
+
+
+

Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeRequiredRestrictionsDescription
avatarUrlstringfalsenoneURL of the avatar of the user
emailBuffer[string]falsenonelist of email buffers of the user
fullnamestringfalsenonefull name of the user
hiddenSystemMessagesbooleanfalsenonedoes the user wants to hide system messages?
initialsstringfalsenoneinitials of the user
invitedBoards[string]falsenoneboard IDs the user has been invited to
languagestringfalsenonelanguage of the user
notifications[string]falsenoneenabled notifications for the user
showCardsCountAtnumberfalsenoneshowCardCountAt field of the user
starredBoards[string]falsenonelist of starred board IDs
icodestringfalsenoneicode
boardViewstringfalsenoneboardView field of the user
templatesBoardIdstringtruenoneReference to the templates board
cardTemplatesSwimlaneIdstringtruenoneReference to the card templates swimlane Id
listTemplatesSwimlaneIdstringtruenoneReference to the list templates swimlane Id
boardTemplatesSwimlaneIdstringtruenoneReference to the board templates swimlane Id
+

Enumerated Values

+ + + + + + + + + + + + + + + + + + + + + +
PropertyValue
boardViewboard-view-lists
boardViewboard-view-swimlanes
boardViewboard-view-cal
+ +
+
+ +
+ + + Shell + + + + HTTP + + + + JavaScript + + + + Node.js + + + + Ruby + + + + Python + + + + Java + + + + Go + + +
+ +
+
+ + diff --git a/public/api/wekan.yml b/public/api/wekan.yml new file mode 100644 index 00000000..84cade13 --- /dev/null +++ b/public/api/wekan.yml @@ -0,0 +1,2937 @@ +swagger: '2.0' +info: + title: Wekan REST API + version: v2.99 + 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/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 + responses: + 200: + description: |- + Successful authentication + schema: + items: + properties: + id: + type: string + token: + type: string + tokenExpires: + type: string + 400: + description: | + Error in authentication + schema: + items: + properties: + error: + type: number + 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: 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}/cards/{card}/checklists: + get: + operationId: get_board_card_checklists + tags: + - Checklists + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + post: + operationId: post_board_card_checklists + tags: + - Checklists + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: the title value + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/cards/{card}/checklists/{checklist}: + get: + operationId: get_board_card_checklist + tags: + - Checklists + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + - name: checklist + in: path + description: the checklist value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + delete: + operationId: delete_board_card_checklist + tags: + - Checklists + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + - name: checklist + in: path + description: the checklist value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}: + get: + operationId: get_board_card_checklist_item + tags: + - ChecklistItems + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + - name: checklist + in: path + description: the checklist value + type: string + required: true + - name: item + in: path + description: the item value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + put: + operationId: put_board_card_checklist_item + tags: + - ChecklistItems + consumes: + - multipart/form-data + - application/json + parameters: + - name: isFinished + in: formData + description: the isFinished value + type: string + required: true + - name: title + in: formData + description: the title value + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + - name: checklist + in: path + description: the checklist value + type: string + required: true + - name: item + in: path + description: the item value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + delete: + operationId: delete_board_card_checklist_item + tags: + - ChecklistItems + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + - name: checklist + in: path + description: the checklist value + type: string + required: true + - name: item + in: path + description: the item value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /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: post_board_card_comments + tags: + - CardComments + consumes: + - multipart/form-data + - application/json + parameters: + - name: authorId + in: formData + description: the authorId value + type: string + required: true + - name: comment + in: formData + description: the comment value + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/cards/{card}/comments/{comment}: + get: + operationId: get_board_card_comment + tags: + - CardComments + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + - name: comment + in: path + description: the comment value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + delete: + operationId: delete_board_card_comment + tags: + - CardComments + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + - name: comment + in: path + description: the comment value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /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: 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_board_customField + 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 + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + delete: + operationId: delete_board_customField + 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 + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/export: + get: + operationId: export + summary: This route is used to export the board. + 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_board_int_activities + tags: + - Integrations + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: int + in: path + description: the int value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + post: + operationId: post_board_int_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 value + type: string + required: true + - name: int + in: path + description: the int value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /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" + 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: 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_board_list_card + tags: + - Cards + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: list + in: path + description: the list value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + put: + operationId: put_board_list_card + tags: + - Cards + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: the title value + type: string + required: true + - name: listId + in: formData + description: the listId value + type: string + required: true + - name: authorId + in: formData + description: the authorId value + type: string + required: true + - name: parentId + in: formData + description: the parentId value + type: string + required: true + - name: description + in: formData + description: the description value + type: string + required: true + - name: color + in: formData + description: the color value + type: string + required: true + - name: labelIds + in: formData + description: the labelIds value + type: string + required: true + - name: requestedBy + in: formData + description: the requestedBy value + type: string + required: true + - name: assignedBy + in: formData + description: the assignedBy value + type: string + required: true + - name: receivedAt + in: formData + description: the receivedAt value + type: string + required: true + - name: startAt + in: formData + description: the startAt value + type: string + required: true + - name: dueAt + in: formData + description: the dueAt value + type: string + required: true + - name: endAt + in: formData + description: the endAt value + type: string + required: true + - name: spentTime + in: formData + description: the spentTime value + type: string + required: true + - name: isOverTime + in: formData + description: the isOverTime value + type: string + required: true + - name: customFields + in: formData + description: the customFields value + type: string + required: true + - name: members + in: formData + description: the members value + type: string + required: true + - name: swimlaneId + in: formData + description: the swimlaneId value + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: list + in: path + description: the list value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + delete: + operationId: delete_board_list_card + tags: + - Cards + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: list + in: path + description: the list value + type: string + required: true + - name: card + in: path + description: the card value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /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: 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}/members/{user}/add: + post: + operationId: add_board_member + summary: Add New Board Member with Role + description: | + Only the admin user (the first user) can call the REST API. + + **Note**: see [Boards.set_board_member_permission](#set_board_member_permission) + to later change the permissions. + tags: + - Users + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: action + in: formData + description: the action value + type: string + required: true + - name: isAdmin + in: formData + description: | + is the user an admin of the board + type: boolean + required: true + - name: isNoComments + in: formData + description: | + disable comments + type: boolean + required: true + - name: isCommentOnly + in: formData + description: | + only enable comments + type: boolean + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: user + in: path + description: | + the user ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + title: + type: string + /api/boards/{board}/members/{user}/remove: + post: + operationId: post_board_user_remove + tags: + - Users + consumes: + - multipart/form-data + - application/json + parameters: + - name: action + in: formData + description: the action value + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: user + in: path + description: the user value + 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" + delete: + operationId: delete_board_swimlane + tags: + - Swimlanes + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: swimlane + in: path + description: the swimlane value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/swimlanes/{swimlane}/cards: + get: + operationId: get_board_swimlane_cards + tags: + - Cards + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: swimlane + in: path + description: the swimlane value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/user: + get: + operationId: get_current_user + summary: returns the current user + tags: + - Users + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Users" + /api/users: + get: + operationId: get_all_users + summary: return all the users + description: | + Only the admin user (the first user) can call the REST API. + tags: + - Users + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + username: + type: string + post: + operationId: new_user + summary: Create a new user + description: | + Only the admin user (the first user) can call the REST API. + tags: + - Users + consumes: + - multipart/form-data + - application/json + parameters: + - name: username + in: formData + description: | + the new username + type: string + required: true + - name: email + in: formData + description: | + the email of the new user + type: string + required: true + - name: password + in: formData + description: | + the password of the new user + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/users/{user}: + get: + operationId: get_user + summary: get a given user + description: | + Only the admin user (the first user) can call the REST API. + tags: + - Users + parameters: + - name: user + in: path + description: | + the user ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Users" + put: + operationId: edit_user + summary: edit a given user + description: | + Only the admin user (the first user) can call the REST API. + + Possible values for *action*: + - `takeOwnership`: The admin takes the ownership of ALL boards of the user (archived and not archived) where the user is admin on. + - `disableLogin`: Disable a user (the user is not allowed to login and his login tokens are purged) + - `enableLogin`: Enable a user + tags: + - Users + consumes: + - multipart/form-data + - application/json + parameters: + - name: action + in: formData + description: | + the action + type: string + required: true + - name: user + in: path + description: | + the user ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + title: + type: string + delete: + operationId: delete_user + summary: Delete a user + description: | + Only the admin user (the first user) can call the REST API. + tags: + - Users + parameters: + - name: user + in: path + description: | + the ID of the user to delete + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /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 + 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" + 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 + color: + description: | + The color of the board. + type: string + enum: + - belize + - nephritis + - pomegranate + - pumpkin + - wisteria + - moderatepink + - strongcyan + - limegreen + - midnight + - dark + - relax + - corteza + 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 + allowsSubtasks: + description: | + Does the board allows subtasks? + 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 + 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 + type: string + required: + - title + - slug + - archived + - createdAt + - stars + - labels + - members + - permission + - color + - allowsSubtasks + - type + 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: + - 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 + required: + - userId + - isAdmin + - 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 + 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 + 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 + 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 + required: + - archived + - swimlaneId + - createdAt + - modifiedAt + - dateLastActivity + - userId + - sort + - type + 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 + 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 + 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 + showLabelOnMiniCard: + description: | + should the label of the custom field be shown on minicards? + type: boolean + createdAt: + type: string + x-nullable: true + modifiedAt: + type: string + required: + - boardIds + - name + - type + - settings + - showOnCard + - automaticallyOnCard + - showLabelOnMiniCard + - modifiedAt + CustomFieldsSettings: + type: object + properties: + dropdownItems: + description: | + list of drop down items objects + type: array + items: + $ref: "#/definitions/CustomFieldsSettingsDropdownitems" + 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 + archived: + description: | + is the list archived + type: boolean + 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 + - peachpuff + - crimson + - plum + - darkgreen + - slateblue + - magenta + - gold + - navy + - gray + - saddlebrown + - paleturquoise + - mistyrose + - indigo + x-nullable: true + type: + description: | + The type of list + type: string + required: + - title + - archived + - boardId + - swimlaneId + - createdAt + - modifiedAt + - type + 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 + 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 + - 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 + required: + - title + - archived + - boardId + - createdAt + - modifiedAt + - type + Users: + type: object + description: A User in wekan + properties: + username: + description: | + the username of the user + type: string + x-nullable: true + emails: + description: | + the list of emails attached to a user + type: array + items: + $ref: "#/definitions/UsersEmails" + x-nullable: true + createdAt: + description: | + creation date of the user + type: string + modifiedAt: + type: string + profile: + description: | + profile settings + $ref: "#/definitions/UsersProfile" + x-nullable: true + services: + description: | + services field of the user + type: object + x-nullable: true + heartbeat: + description: | + last time the user has been seen + type: string + x-nullable: true + isAdmin: + description: | + is the user an admin of the board? + type: boolean + x-nullable: true + createdThroughApi: + description: | + was the user created through the API? + type: boolean + x-nullable: true + loginDisabled: + description: | + loginDisabled field of the user + type: boolean + x-nullable: true + authenticationMethod: + description: | + authentication method of the user + type: string + required: + - createdAt + - modifiedAt + - authenticationMethod + UsersEmails: + type: object + properties: + address: + description: | + The email address + type: string + verified: + description: | + Has the email been verified + type: boolean + required: + - address + - verified + UsersProfile: + type: object + properties: + avatarUrl: + description: | + URL of the avatar of the user + type: string + emailBuffer: + description: | + list of email buffers of the user + type: array + items: + type: string + x-nullable: true + fullname: + description: | + full name of the user + type: string + hiddenSystemMessages: + description: | + does the user wants to hide system messages? + type: boolean + initials: + description: | + initials of the user + type: string + invitedBoards: + description: | + board IDs the user has been invited to + type: array + items: + type: string + x-nullable: true + language: + description: | + language of the user + type: string + notifications: + description: | + enabled notifications for the user + type: array + items: + type: string + x-nullable: true + showCardsCountAt: + description: | + showCardCountAt field of the user + type: number + starredBoards: + description: | + list of starred board IDs + type: array + items: + type: string + x-nullable: true + icode: + description: | + icode + type: string + boardView: + description: | + boardView field of the user + type: string + enum: + - board-view-lists + - board-view-swimlanes + - board-view-cal + templatesBoardId: + description: | + Reference to the templates board + type: string + cardTemplatesSwimlaneId: + description: | + Reference to the card templates swimlane Id + type: string + listTemplatesSwimlaneId: + description: | + Reference to the list templates swimlane Id + type: string + boardTemplatesSwimlaneId: + description: | + Reference to the board templates swimlane Id + type: string + required: + - templatesBoardId + - cardTemplatesSwimlaneId + - listTemplatesSwimlaneId + - boardTemplatesSwimlaneId -- cgit v1.2.3-1-g7c22