diff --git a/openapi/generate_openapi.py b/openapi/generate_openapi.py index d23fba8b3..41c6fa5d8 100644 --- a/openapi/generate_openapi.py +++ b/openapi/generate_openapi.py @@ -1,6 +1,7 @@ #!/bin/env python3 import argparse +import esprima import json import logging import os @@ -14,7 +15,7 @@ err_context = 3 def get_req_body_elems(obj, elems): - if obj.type == 'FunctionExpression': + if obj.type in ['FunctionExpression', 'ArrowFunctionExpression']: get_req_body_elems(obj.body, elems) elif obj.type == 'BlockStatement': for s in obj.body: diff --git a/public/api/wekan.html b/public/api/wekan.html index 075f1cf7b..b1214af66 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -7,7 +7,7 @@ - Wekan REST API v5.08 + Wekan REST API v4.96 @@ -1467,6 +1467,26 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc + + + + + + + + + + + + + + + + + + + + @@ -1529,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc + + +
  • + Boards + + + +
  • + +
  • + Checklists + + + +
  • + +
  • + ChecklistItems + + + +
  • + +
  • + CardComments + + + +
  • + +
  • + Cards + + + +
  • + +
  • + CustomFields + + + +
  • + +
  • + Integrations + + + +
  • + +
  • + Lists + + + +
  • + +
  • + Users + + + +
  • + +
  • + Swimlanes + + + +
  • + +
  • + Schemas + + +
  • @@ -1573,7 +2077,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
    -

    Wekan REST API v5.08

    +

    Wekan REST API v4.96

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

    @@ -1683,7 +2187,7 @@ headers = { r = requests.post('/users/login', headers = headers) -print(r.json()) +print(r.json())
    URL obj = new URL("/users/login");
    @@ -1985,7 +2489,7 @@ headers = {
     
     r = requests.post('/users/register', headers = headers)
     
    -print(r.json())
    +print(r.json())
     
     
    URL obj = new URL("/users/register");
    @@ -2212,8 +2716,17358 @@ System.out.println(response.toString());
     
    +

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    const inputBody = '{
    +  "title": "string",
    +  "owner": "string",
    +  "isAdmin": true,
    +  "isActive": true,
    +  "isNoComments": true,
    +  "isCommentOnly": true,
    +  "isWorker": true,
    +  "permission": "string",
    +  "color": "string"
    +}';
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Accept':'application/json',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/boards',
    +{
    +  method: 'POST',
    +  body: inputBody,
    +  headers: headers
    +})
    +.then(function(res) {
    +    return res.json();
    +}).then(function(body) {
    +    console.log(body);
    +});
    +
    +
    +
    const fetch = require('node-fetch');
    +const inputBody = {
    +  "title": "string",
    +  "owner": "string",
    +  "isAdmin": true,
    +  "isActive": true,
    +  "isNoComments": true,
    +  "isCommentOnly": true,
    +  "isWorker": true,
    +  "permission": "string",
    +  "color": "string"
    +};
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Accept':'application/json',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/boards',
    +{
    +  method: 'POST',
    +  body: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    POST /api/boards

    +

    Create a board

    +

    This allows to create a board.

    +

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

    + Wekan logo +
    +

    Body parameter

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

    Parameters

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

    Detailed descriptions

    +

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

    +

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

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    get_board

    +

    +
    +

    Code samples

    +
    +
    # You can also use wget
    +curl -X GET /api/boards/{board} \
    +  -H 'Accept: application/json' \
    +  -H 'Authorization: API_KEY'
    +
    +
    +
    GET /api/boards/{board} HTTP/1.1
    +
    +Accept: application/json
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    GET /api/boards/{board}

    +

    Get the board with that particular ID

    +

    Parameters

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

    Detailed descriptions

    +

    board: the ID of the board to retrieve the data

    +
    +

    Example responses

    +
    +
    +

    200 Response

    +
    +
    {
    +  "title": "string",
    +  "slug": "string",
    +  "archived": true,
    +  "archivedAt": "string",
    +  "createdAt": "string",
    +  "modifiedAt": "string",
    +  "stars": 0,
    +  "labels": [
    +    {
    +      "_id": "string",
    +      "name": "string",
    +      "color": "green"
    +    }
    +  ],
    +  "members": [
    +    {
    +      "userId": "string",
    +      "isAdmin": true,
    +      "isActive": true,
    +      "isNoComments": true,
    +      "isCommentOnly": true,
    +      "isWorker": true
    +    }
    +  ],
    +  "permission": "public",
    +  "color": "belize",
    +  "description": "string",
    +  "subtasksDefaultBoardId": "string",
    +  "subtasksDefaultListId": "string",
    +  "dateSettingsDefaultBoardId": "string",
    +  "dateSettingsDefaultListId": "string",
    +  "allowsSubtasks": true,
    +  "allowsAttachments": true,
    +  "allowsChecklists": true,
    +  "allowsComments": true,
    +  "allowsDescriptionTitle": true,
    +  "allowsDescriptionText": true,
    +  "allowsActivities": true,
    +  "allowsLabels": true,
    +  "allowsAssignee": true,
    +  "allowsMembers": true,
    +  "allowsRequestedBy": true,
    +  "allowsAssignedBy": true,
    +  "allowsReceivedDate": true,
    +  "allowsStartDate": true,
    +  "allowsEndDate": true,
    +  "allowsDueDate": true,
    +  "presentParentTask": "prefix-with-full-path",
    +  "startAt": "string",
    +  "dueAt": "string",
    +  "endAt": "string",
    +  "spentTime": 0,
    +  "isOvertime": true,
    +  "type": "string",
    +  "sort": 0
    +}
    +
    +

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('DELETE','/api/boards/{board}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    DELETE /api/boards/{board}

    +

    Delete a board

    +

    Parameters

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

    Detailed descriptions

    +

    board: the ID of the board

    +

    Responses

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

    get_board_attachments

    +

    +
    +

    Code samples

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

    GET /api/boards/{board}/attachments

    +

    Get the list of attachments of a board

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    » attachmentIdstringfalsenonenone
    » attachmentNamestringfalsenonenone
    » attachmentTypestringfalsenonenone
    » cardIdstringfalsenonenone
    » listIdstringfalsenonenone
    » swimlaneIdstringfalsenonenone
    + +

    exportJson

    +

    +
    +

    Code samples

    +
    +
    # You can also use wget
    +curl -X GET /api/boards/{board}/export \
    +  -H 'Authorization: API_KEY'
    +
    +
    +
    GET /api/boards/{board}/export HTTP/1.1
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/export', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    GET /api/boards/{board}/export

    +

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

    +

    If user is already logged-in, pass loginToken as param +"authToken": '/api/boards/:boardId/export?authToken=:token'

    +

    See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ +for detailed explanations

    +

    Parameters

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

    Detailed descriptions

    +

    board: the ID of the board we are exporting

    +

    Responses

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

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('PUT','/api/boards/{board}/labels', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    bodybodyobjecttruenone
    » 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
    +
    +
    +
    const inputBody = '{
    +  "isAdmin": true,
    +  "isNoComments": true,
    +  "isCommentOnly": true,
    +  "isWorker": true
    +}';
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/boards/{board}/members/{member}',
    +{
    +  method: 'POST',
    +  body: inputBody,
    +  headers: headers
    +})
    +.then(function(res) {
    +    return res.json();
    +}).then(function(body) {
    +    console.log(body);
    +});
    +
    +
    +
    const fetch = require('node-fetch');
    +const inputBody = {
    +  "isAdmin": true,
    +  "isNoComments": true,
    +  "isCommentOnly": true,
    +  "isWorker": true
    +};
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/boards/{board}/members/{member}',
    +{
    +  method: 'POST',
    +  body: JSON.stringify(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}', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/members/{member}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    +

    Change the permission of a member of a board

    +
    +

    Body parameter

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

    Parameters

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

    Detailed descriptions

    +

    board: the ID of the board that we are changing

    +

    member: the ID of the user to change permissions

    +

    Responses

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

    get_boards_count

    +

    +
    +

    Code samples

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

    GET /api/boards_count

    +

    Get public and private boards count

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    get_boards_from_user

    +

    +
    +

    Code samples

    +
    +
    # You can also use wget
    +curl -X GET /api/users/{user}/boards \
    +  -H 'Accept: application/json' \
    +  -H 'Authorization: API_KEY'
    +
    +
    +
    GET /api/users/{user}/boards HTTP/1.1
    +
    +Accept: application/json
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/users/{user}/boards', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    GET /api/users/{user}/boards

    +

    Get all boards attached to a user

    +

    Parameters

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

    Detailed descriptions

    +

    user: the ID of the user to retrieve the data

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    Checklists

    +

    get_all_checklists

    +

    +
    +

    Code samples

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

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

    +

    Get the list of checklists attached to a card

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    card: the card ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    new_checklist

    +

    +
    +

    Code samples

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

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

    +

    create a new checklist

    +
    +

    Body parameter

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

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    card: the card ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    get_checklist

    +

    +
    +

    Code samples

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

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

    +

    Get a checklist

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    card: the card ID

    +

    checklist: the ID of the checklist

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    delete_checklist

    +

    +
    +

    Code samples

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

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

    +

    Delete a checklist

    +

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

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    card: the card ID

    +

    checklist: the ID of the checklist to remove

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    ChecklistItems

    +

    get_checklist_item

    +

    +
    +

    Code samples

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

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

    +

    Get a checklist item

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    card: the card ID

    +

    checklist: the checklist ID

    +

    item: the ID of the item

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    edit_checklist_item

    +

    +
    +

    Code samples

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

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

    +

    Edit a checklist item

    +
    +

    Body parameter

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

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    card: the card ID

    +

    checklist: the checklist ID

    +

    item: the ID of the item

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    delete_checklist_item

    +

    +
    +

    Code samples

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

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

    +

    Delete a checklist item

    +

    Note: this operation can't be reverted.

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    card: the card ID

    +

    checklist: the checklist ID

    +

    item: the ID of the item to be removed

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    CardComments

    +

    get_all_comments

    +

    +
    +

    Code samples

    +
    +
    # You can also use wget
    +curl -X GET /api/boards/{board}/cards/{card}/comments \
    +  -H 'Accept: application/json' \
    +  -H 'Authorization: API_KEY'
    +
    +
    +
    GET /api/boards/{board}/cards/{card}/comments HTTP/1.1
    +
    +Accept: application/json
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/cards/{card}/comments', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    +

    Get all comments attached to a card

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID of the card

    +

    card: the ID of the card

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    new_comment

    +

    +
    +

    Code samples

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

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

    +

    Add a comment on a card

    +
    +

    Body parameter

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

    Parameters

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

    Detailed descriptions

    +

    board: the board ID of the card

    +

    card: the ID of the card

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    get_comment

    +

    +
    +

    Code samples

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

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

    +

    Get a comment on a card

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID of the card

    +

    card: the ID of the card

    +

    comment: the ID of the comment to retrieve

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    delete_comment

    +

    +
    +

    Code samples

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

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

    +

    Delete a comment on a card

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID of the card

    +

    card: the ID of the card

    +

    comment: the ID of the comment to delete

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    Cards

    +

    get_cards_by_custom_field

    +

    +
    +

    Code samples

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

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

    +

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

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    customField: the list ID

    +

    customFieldValue: the value to look for

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    get_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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/lists/{list}/cards', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    const inputBody = '{
    +  "authorId": "string",
    +  "members": "string",
    +  "assignees": "string",
    +  "title": "string",
    +  "description": "string",
    +  "swimlaneId": "string"
    +}';
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Accept':'application/json',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/boards/{board}/lists/{list}/cards',
    +{
    +  method: 'POST',
    +  body: inputBody,
    +  headers: headers
    +})
    +.then(function(res) {
    +    return res.json();
    +}).then(function(body) {
    +    console.log(body);
    +});
    +
    +
    +
    const fetch = require('node-fetch');
    +const inputBody = {
    +  "authorId": "string",
    +  "members": "string",
    +  "assignees": "string",
    +  "title": "string",
    +  "description": "string",
    +  "swimlaneId": "string"
    +};
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Accept':'application/json',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/boards/{board}/lists/{list}/cards',
    +{
    +  method: 'POST',
    +  body: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/lists/{list}/cards', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    +

    Create a new Card

    +
    +

    Body parameter

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

    Parameters

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

    Detailed descriptions

    +

    board: the board ID of the new card

    +

    list: the list ID of the new card

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    get_card

    +

    +
    +

    Code samples

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

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

    +

    Get a Card

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    list: the list ID of the card

    +

    card: the card ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

    +
    +
    {
    +  "title": "string",
    +  "archived": true,
    +  "archivedAt": "string",
    +  "parentId": "string",
    +  "listId": "string",
    +  "swimlaneId": "string",
    +  "boardId": "string",
    +  "coverId": "string",
    +  "color": "white",
    +  "createdAt": "string",
    +  "modifiedAt": "string",
    +  "customFields": [
    +    {}
    +  ],
    +  "dateLastActivity": "string",
    +  "description": "string",
    +  "requestedBy": "string",
    +  "assignedBy": "string",
    +  "labelIds": [
    +    "string"
    +  ],
    +  "members": [
    +    "string"
    +  ],
    +  "assignees": [
    +    "string"
    +  ],
    +  "receivedAt": "string",
    +  "startAt": "string",
    +  "dueAt": "string",
    +  "endAt": "string",
    +  "spentTime": 0,
    +  "isOvertime": true,
    +  "userId": "string",
    +  "sort": 0,
    +  "subtaskSort": 0,
    +  "type": "string",
    +  "linkedId": "string",
    +  "vote": {
    +    "question": "string",
    +    "positive": [
    +      "string"
    +    ],
    +    "negative": [
    +      "string"
    +    ],
    +    "end": "string",
    +    "public": true,
    +    "allowNonBoardMembers": true
    +  }
    +}
    +
    +

    Responses

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

    edit_card

    +

    +
    +

    Code samples

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

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

    +

    Edit Fields in a Card

    +

    Edit a card

    +

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

    + Wekan card colors +

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

    +
    +

    Body parameter

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

    Parameters

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

    Detailed descriptions

    +

    board: the board ID of the card

    +

    list: the list ID of the card

    +

    card: the ID of the card

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    delete_card

    +

    +
    +

    Code samples

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

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

    +

    Delete a card from a board

    +

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

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID of the card

    +

    list: the list ID of the card

    +

    card: the ID of the card

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    get_swimlane_cards

    +

    +
    +

    Code samples

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

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

    +

    get all cards attached to a swimlane

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    swimlane: the swimlane ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/custom-fields', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/custom-fields', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    bodybodyobjecttruenone
    » 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_custom_field

    +

    +
    +

    Code samples

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

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

    +

    Get a Custom Fields attached to a board

    +

    Parameters

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

    Detailed descriptions

    +

    customField: the ID of the custom field

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

    + + + + + + + + + + + + + + + + + +
    StatusMeaningDescriptionSchema
    200OK200 responseCustomFields
    + +

    edit_custom_field

    +

    +
    +

    Code samples

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

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

    +

    Update a Custom Field

    +
    +

    Body parameter

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

    Parameters

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

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    delete_custom_field

    +

    +
    +

    Code samples

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

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

    +

    Delete a Custom Fields attached to a board

    +

    The Custom Field can't be retrieved after this operation

    +

    Parameters

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

    Detailed descriptions

    +

    customField: the ID of the custom field

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/integrations', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/integrations', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    POST /api/boards/{board}/integrations

    +

    Create a new integration

    +
    +

    Body parameter

    +
    +
    url: string
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    boardpathstringtruethe board ID
    bodybodyobjecttruenone
    » 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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/integrations/{int}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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}', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('PUT','/api/boards/{board}/integrations/{int}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('DELETE','/api/boards/{board}/integrations/{int}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    +

    Delete integration

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    int: the integration ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    delete_integration_activities

    +

    +
    +

    Code samples

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

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

    +

    Delete subscribed activities

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    int: the integration ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    new_integration_activities

    +

    +
    +

    Code samples

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

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

    +

    Add subscribed activities

    +
    +

    Body parameter

    +
    +
    activities: string
    +
    +
    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    int: the integration ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Lists

    +

    get_all_lists

    +

    +
    +

    Code samples

    +
    +
    # You can also use wget
    +curl -X GET /api/boards/{board}/lists \
    +  -H 'Accept: application/json' \
    +  -H 'Authorization: API_KEY'
    +
    +
    +
    GET /api/boards/{board}/lists HTTP/1.1
    +
    +Accept: application/json
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/lists', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/lists', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    POST /api/boards/{board}/lists

    +

    Add a List to a board

    +
    +

    Body parameter

    +
    +
    title: string
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    boardpathstringtruethe board ID
    bodybodyobjecttruenone
    » 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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/lists/{list}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    +

    Get a List attached to a board

    +

    Parameters

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

    Detailed descriptions

    +

    board: the board ID

    +

    list: the List ID

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('DELETE','/api/boards/{board}/lists/{list}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/members/{user}/add', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    remove_board_member

    +

    +
    +

    Code samples

    +
    +
    # You can also use wget
    +curl -X POST /api/boards/{board}/members/{user}/remove \
    +  -H 'Content-Type: multipart/form-data' \
    +  -H 'Accept: application/json' \
    +  -H 'Authorization: API_KEY'
    +
    +
    +
    POST /api/boards/{board}/members/{user}/remove HTTP/1.1
    +
    +Content-Type: multipart/form-data
    +Accept: application/json
    +
    +
    +
    const inputBody = '{
    +  "action": "string"
    +}';
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Accept':'application/json',
    +  '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);
    +});
    +
    +
    +
    const fetch = require('node-fetch');
    +const inputBody = {
    +  "action": "string"
    +};
    +const headers = {
    +  'Content-Type':'multipart/form-data',
    +  'Accept':'application/json',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/boards/{board}/members/{user}/remove',
    +{
    +  method: 'POST',
    +  body: JSON.stringify(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}/remove',
    +  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}/remove', 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"},
    +        "Accept": []string{"application/json"},
    +        "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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/members/{user}/remove', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    +

    Remove Member from Board

    +

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

    +
    +

    Body parameter

    +
    +
    action: string
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    boardpathstringtruethe board ID
    userpathstringtruethe user ID
    bodybodyobjecttruenone
    » actionbodystringtruethe action (needs to be remove)
    +

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

    create_user_token

    +

    +
    +

    Code samples

    +
    +
    # You can also use wget
    +curl -X POST /api/createtoken/{user} \
    +  -H 'Accept: application/json' \
    +  -H 'Authorization: API_KEY'
    +
    +
    +
    POST /api/createtoken/{user} HTTP/1.1
    +
    +Accept: application/json
    +
    +
    +
    
    +const headers = {
    +  'Accept':'application/json',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/createtoken/{user}',
    +{
    +  method: 'POST',
    +
    +  headers: headers
    +})
    +.then(function(res) {
    +    return res.json();
    +}).then(function(body) {
    +    console.log(body);
    +});
    +
    +
    +
    const fetch = require('node-fetch');
    +
    +const headers = {
    +  'Accept':'application/json',
    +  'Authorization':'API_KEY'
    +};
    +
    +fetch('/api/createtoken/{user}',
    +{
    +  method: 'POST',
    +
    +  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.post '/api/createtoken/{user}',
    +  params: {
    +  }, headers: headers
    +
    +p JSON.parse(result)
    +
    +
    +
    import requests
    +headers = {
    +  'Accept': 'application/json',
    +  'Authorization': 'API_KEY'
    +}
    +
    +r = requests.post('/api/createtoken/{user}', headers = headers)
    +
    +print(r.json())
    +
    +
    +
    URL obj = new URL("/api/createtoken/{user}");
    +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{
    +        "Accept": []string{"application/json"},
    +        "Authorization": []string{"API_KEY"},
    +    }
    +
    +    data := bytes.NewBuffer([]byte{jsonReq})
    +    req, err := http.NewRequest("POST", "/api/createtoken/{user}", data)
    +    req.Header = headers
    +
    +    client := &http.Client{}
    +    resp, err := client.Do(req)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/createtoken/{user}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    POST /api/createtoken/{user}

    +

    Create a user token

    +

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

    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    userpathstringtruethe ID of the user to create token for.
    +

    Detailed descriptions

    +

    user: the ID of the user to create token for.

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/user', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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",
    +    "showDesktopDragHandles": true,
    +    "hideCheckedItems": true,
    +    "hiddenSystemMessages": true,
    +    "hiddenMinicardLabelText": true,
    +    "initials": "string",
    +    "invitedBoards": [
    +      "string"
    +    ],
    +    "language": "string",
    +    "notifications": [],
    +    "activity": "string",
    +    "read": "string",
    +    "showCardsCountAt": 0,
    +    "startDayOfWeek": 0,
    +    "starredBoards": [
    +      "string"
    +    ],
    +    "icode": "string",
    +    "boardView": "board-view-swimlanes",
    +    "listSortBy": "-modifiedat",
    +    "templatesBoardId": "string",
    +    "cardTemplatesSwimlaneId": "string",
    +    "listTemplatesSwimlaneId": "string",
    +    "boardTemplatesSwimlaneId": "string"
    +  },
    +  "services": {},
    +  "heartbeat": "string",
    +  "isAdmin": true,
    +  "createdThroughApi": true,
    +  "loginDisabled": true,
    +  "authenticationMethod": "string",
    +  "sessionData": {
    +    "totalHits": 0,
    +    "lastHit": 0
    +  },
    +  "importUsernames": [
    +    "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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/users', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/users', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    bodybodyobjecttruenone
    » 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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/users/{user}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    Detailed descriptions

    +

    user: the user ID or username

    +
    +

    Example responses

    +
    +
    +

    200 Response

    +
    +
    {
    +  "username": "string",
    +  "emails": [
    +    {
    +      "address": "string",
    +      "verified": true
    +    }
    +  ],
    +  "createdAt": "string",
    +  "modifiedAt": "string",
    +  "profile": {
    +    "avatarUrl": "string",
    +    "emailBuffer": [
    +      "string"
    +    ],
    +    "fullname": "string",
    +    "showDesktopDragHandles": true,
    +    "hideCheckedItems": true,
    +    "hiddenSystemMessages": true,
    +    "hiddenMinicardLabelText": true,
    +    "initials": "string",
    +    "invitedBoards": [
    +      "string"
    +    ],
    +    "language": "string",
    +    "notifications": [],
    +    "activity": "string",
    +    "read": "string",
    +    "showCardsCountAt": 0,
    +    "startDayOfWeek": 0,
    +    "starredBoards": [
    +      "string"
    +    ],
    +    "icode": "string",
    +    "boardView": "board-view-swimlanes",
    +    "listSortBy": "-modifiedat",
    +    "templatesBoardId": "string",
    +    "cardTemplatesSwimlaneId": "string",
    +    "listTemplatesSwimlaneId": "string",
    +    "boardTemplatesSwimlaneId": "string"
    +  },
    +  "services": {},
    +  "heartbeat": "string",
    +  "isAdmin": true,
    +  "createdThroughApi": true,
    +  "loginDisabled": true,
    +  "authenticationMethod": "string",
    +  "sessionData": {
    +    "totalHits": 0,
    +    "lastHit": 0
    +  },
    +  "importUsernames": [
    +    "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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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}', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('PUT','/api/users/{user}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    bodybodyobjecttruenone
    » 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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('DELETE','/api/users/{user}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/swimlanes', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    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
    +
    +
    +
    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);
    +});
    +
    +
    +
    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: JSON.stringify(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', 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)
    +    // ...
    +}
    +
    +
    +
     'multipart/form-data',
    +    'Accept' => 'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('POST','/api/boards/{board}/swimlanes', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

    POST /api/boards/{board}/swimlanes

    +

    Add a swimlane to a board

    +
    +

    Body parameter

    +
    +
    title: string
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameInTypeRequiredDescription
    boardpathstringtruethe ID of the board
    bodybodyobjecttruenone
    » 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
    +
    +
    +
    
    +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);
    +});
    +
    +
    +
    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}', 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)
    +    // ...
    +}
    +
    +
    +
     'application/json',
    +    'Authorization' => 'API_KEY',
    +);
    +
    +$client = new \GuzzleHttp\Client();
    +
    +// Define array of request body.
    +$request_body = array();
    +
    +try {
    +    $response = $client->request('GET','/api/boards/{board}/swimlanes/{swimlane}', array(
    +        'headers' => $headers,
    +        'json' => $request_body,
    +       )
    +    );
    +    print_r($response->getBody()->getContents());
    + }
    + catch (\GuzzleHttp\Exception\BadResponseException $e) {
    +    // handle exception or api errors.
    +    print_r($e->getMessage());
    + }
    +
    + // ...
    +
    +
    +

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

    +

    Get a swimlane

    +

    Parameters

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

    Detailed descriptions

    +

    board: the ID of the board

    +

    swimlane: the ID of the swimlane

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    delete_swimlane

    +

    +
    +

    Code samples

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

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

    +

    Delete a swimlane

    +

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

    +

    Parameters

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

    Detailed descriptions

    +

    board: the ID of the board

    +

    swimlane: the ID of the swimlane

    +
    +

    Example responses

    +
    +
    +

    200 Response

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

    Responses

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

    Response Schema

    +

    Status Code 200

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

    Schemas

    +

    Boards

    +

    + + +

    +
    {
    +  "title": "string",
    +  "slug": "string",
    +  "archived": true,
    +  "archivedAt": "string",
    +  "createdAt": "string",
    +  "modifiedAt": "string",
    +  "stars": 0,
    +  "labels": [
    +    {
    +      "_id": "string",
    +      "name": "string",
    +      "color": "green"
    +    }
    +  ],
    +  "members": [
    +    {
    +      "userId": "string",
    +      "isAdmin": true,
    +      "isActive": true,
    +      "isNoComments": true,
    +      "isCommentOnly": true,
    +      "isWorker": true
    +    }
    +  ],
    +  "permission": "public",
    +  "color": "belize",
    +  "description": "string",
    +  "subtasksDefaultBoardId": "string",
    +  "subtasksDefaultListId": "string",
    +  "dateSettingsDefaultBoardId": "string",
    +  "dateSettingsDefaultListId": "string",
    +  "allowsSubtasks": true,
    +  "allowsAttachments": true,
    +  "allowsChecklists": true,
    +  "allowsComments": true,
    +  "allowsDescriptionTitle": true,
    +  "allowsDescriptionText": true,
    +  "allowsActivities": true,
    +  "allowsLabels": true,
    +  "allowsAssignee": true,
    +  "allowsMembers": true,
    +  "allowsRequestedBy": true,
    +  "allowsAssignedBy": true,
    +  "allowsReceivedDate": true,
    +  "allowsStartDate": true,
    +  "allowsEndDate": true,
    +  "allowsDueDate": true,
    +  "presentParentTask": "prefix-with-full-path",
    +  "startAt": "string",
    +  "dueAt": "string",
    +  "endAt": "string",
    +  "spentTime": 0,
    +  "isOvertime": true,
    +  "type": "string",
    +  "sort": 0
    +}
    +
    +
    +

    This is a Board.

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    titlestringtruenoneThe title of the board
    slugstringtruenoneThe title slugified.
    archivedbooleantruenoneIs the board archived?
    archivedAtstring¦nullfalsenoneLatest archiving time of the board
    createdAtstringtruenoneCreation time of the board
    modifiedAtstring¦nullfalsenoneLast modification time of the board
    starsnumbertruenoneHow many stars the board has
    labels[BoardsLabels]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.
    dateSettingsDefaultBoardIdstring¦nullfalsenonenone
    dateSettingsDefaultListIdstring¦nullfalsenonenone
    allowsSubtasksbooleantruenoneDoes the board allows subtasks?
    allowsAttachmentsbooleantruenoneDoes the board allows attachments?
    allowsChecklistsbooleantruenoneDoes the board allows checklists?
    allowsCommentsbooleantruenoneDoes the board allows comments?
    allowsDescriptionTitlebooleantruenoneDoes the board allows description title?
    allowsDescriptionTextbooleantruenoneDoes the board allows description text?
    allowsActivitiesbooleantruenoneDoes the board allows comments?
    allowsLabelsbooleantruenoneDoes the board allows labels?
    allowsAssigneebooleantruenoneDoes the board allows assignee?
    allowsMembersbooleantruenoneDoes the board allows members?
    allowsRequestedBybooleantruenoneDoes the board allows requested by?
    allowsAssignedBybooleantruenoneDoes the board allows requested by?
    allowsReceivedDatebooleantruenoneDoes the board allows received date?
    allowsStartDatebooleantruenoneDoes the board allows start date?
    allowsEndDatebooleantruenoneDoes the board allows end date?
    allowsDueDatebooleantruenoneDoes the board allows due date?
    presentParentTaskstring¦nullfalsenoneControls how to present the parent task:

    - prefix-with-full-path: add a prefix with the full path
    - prefix-with-parent: add a prefisx with the parent name
    - subtext-with-full-path: add a subtext with the full path
    - subtext-with-parent: add a subtext with the parent name
    - no-parent: does not show the parent at all
    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
    sortnumbertruenoneSort value
    +

    Enumerated Values

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    PropertyValue
    permissionpublic
    permissionprivate
    colorbelize
    colornephritis
    colorpomegranate
    colorpumpkin
    colorwisteria
    colormoderatepink
    colorstrongcyan
    colorlimegreen
    colormidnight
    colordark
    colorrelax
    colorcorteza
    colorclearblue
    colornatural
    colormodern
    colormoderndark
    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,
    +  "isWorker": true
    +}
    +
    +
    +

    Properties

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

    CardComments

    +

    + + +

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

    A comment on a card

    +

    Properties

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

    Cards

    +

    + + +

    +
    {
    +  "title": "string",
    +  "archived": true,
    +  "archivedAt": "string",
    +  "parentId": "string",
    +  "listId": "string",
    +  "swimlaneId": "string",
    +  "boardId": "string",
    +  "coverId": "string",
    +  "color": "white",
    +  "createdAt": "string",
    +  "modifiedAt": "string",
    +  "customFields": [
    +    {}
    +  ],
    +  "dateLastActivity": "string",
    +  "description": "string",
    +  "requestedBy": "string",
    +  "assignedBy": "string",
    +  "labelIds": [
    +    "string"
    +  ],
    +  "members": [
    +    "string"
    +  ],
    +  "assignees": [
    +    "string"
    +  ],
    +  "receivedAt": "string",
    +  "startAt": "string",
    +  "dueAt": "string",
    +  "endAt": "string",
    +  "spentTime": 0,
    +  "isOvertime": true,
    +  "userId": "string",
    +  "sort": 0,
    +  "subtaskSort": 0,
    +  "type": "string",
    +  "linkedId": "string",
    +  "vote": {
    +    "question": "string",
    +    "positive": [
    +      "string"
    +    ],
    +    "negative": [
    +      "string"
    +    ],
    +    "end": "string",
    +    "public": true,
    +    "allowNonBoardMembers": true
    +  }
    +}
    +
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    titlestring¦nullfalsenonethe title of the card
    archivedbooleantruenoneis the card archived
    archivedAtstring¦nullfalsenonelatest archiving date
    parentIdstring¦nullfalsenoneID of the parent card
    listIdstring¦nullfalsenoneList ID where the card is
    swimlaneIdstringtruenoneSwimlane ID where the card is
    boardIdstring¦nullfalsenoneBoard ID of the card
    coverIdstring¦nullfalsenoneCover ID of the card
    colorstring¦nullfalsenonenone
    createdAtstringtruenonecreation date
    modifiedAtstringtruenonenone
    customFields[CardsCustomfields]¦nullfalsenonelist of custom fields
    dateLastActivitystringtruenoneDate of last activity
    descriptionstring¦nullfalsenonedescription of the card
    requestedBystring¦nullfalsenonewho requested the card (ID of the user)
    assignedBystring¦nullfalsenonewho assigned the card (ID of the user)
    labelIds[string]¦nullfalsenonelist of labels ID the card has
    members[string]¦nullfalsenonelist of members (user IDs)
    assignees[string]¦nullfalsenonewho is assignee of the card (user ID),
    maximum one ID of assignee in array.
    receivedAtstring¦nullfalsenoneDate the card was received
    startAtstring¦nullfalsenoneDate the card was started to be worked on
    dueAtstring¦nullfalsenoneDate the card is due
    endAtstring¦nullfalsenoneDate the card ended
    spentTimenumber¦nullfalsenoneHow much time has been spent on this
    isOvertimeboolean¦nullfalsenoneis the card over time?
    userIdstringtruenoneuser ID of the author of the card
    sortnumbertruenoneSort value
    subtaskSortnumber¦nullfalsenonesubtask sort value
    typestringtruenonetype of the card
    linkedIdstring¦nullfalsenoneID of the linked card
    voteCardsVotefalsenonenone
    +

    Enumerated Values

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

    CardsVote

    +

    + + +

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

    Properties

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

    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": {
    +    "currencyCode": "string",
    +    "dropdownItems": [
    +      {}
    +    ]
    +  },
    +  "showOnCard": true,
    +  "automaticallyOnCard": true,
    +  "alwaysOnCard": 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
    settingsCustomFieldsSettingstruenonenone
    showOnCardbooleantruenoneshould we show on the cards this custom field
    automaticallyOnCardbooleantruenoneshould the custom fields automatically be added on cards?
    alwaysOnCardbooleantruenoneshould the custom field be automatically added to all cards?
    showLabelOnMiniCardbooleantruenoneshould the label of the custom field be shown on minicards?
    createdAtstring¦nullfalsenonenone
    modifiedAtstringtruenonenone
    +

    Enumerated Values

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

    CustomFieldsSettings

    +

    + + +

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

    Properties

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

    A list (column) in the Wekan board.

    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    titlestringtruenonethe title of the list
    starredboolean¦nullfalsenoneif a list is stared
    then we put it on the top
    archivedbooleantruenoneis the list archived
    archivedAtstring¦nullfalsenonelatest archiving date
    boardIdstringtruenonethe board associated to this list
    swimlaneIdstringtruenonethe swimlane associated to this list. Used for templates
    createdAtstringtruenonecreation date
    sortnumber¦nullfalsenoneis the list sorted
    updatedAtstring¦nullfalsenonelast update of the list
    modifiedAtstringtruenonenone
    wipLimitListsWiplimitfalsenonenone
    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,
    +  "archivedAt": "string",
    +  "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?
    archivedAtstring¦nullfalsenonelatest archiving date of the swimlane
    boardIdstringtruenonethe ID of the board the swimlane is attached to
    createdAtstringtruenonecreation date of the swimlane
    sortnumber¦nullfalsenonethe sort value of the swimlane
    colorstring¦nullfalsenonethe color of the swimlane
    updatedAtstring¦nullfalsenonewhen was the swimlane last edited
    modifiedAtstringtruenonenone
    typestringtruenoneThe type of swimlane
    +

    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",
    +    "showDesktopDragHandles": true,
    +    "hideCheckedItems": true,
    +    "hiddenSystemMessages": true,
    +    "hiddenMinicardLabelText": true,
    +    "initials": "string",
    +    "invitedBoards": [
    +      "string"
    +    ],
    +    "language": "string",
    +    "notifications": [],
    +    "activity": "string",
    +    "read": "string",
    +    "showCardsCountAt": 0,
    +    "startDayOfWeek": 0,
    +    "starredBoards": [
    +      "string"
    +    ],
    +    "icode": "string",
    +    "boardView": "board-view-swimlanes",
    +    "listSortBy": "-modifiedat",
    +    "templatesBoardId": "string",
    +    "cardTemplatesSwimlaneId": "string",
    +    "listTemplatesSwimlaneId": "string",
    +    "boardTemplatesSwimlaneId": "string"
    +  },
    +  "services": {},
    +  "heartbeat": "string",
    +  "isAdmin": true,
    +  "createdThroughApi": true,
    +  "loginDisabled": true,
    +  "authenticationMethod": "string",
    +  "sessionData": {
    +    "totalHits": 0,
    +    "lastHit": 0
    +  },
    +  "importUsernames": [
    +    "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
    profileUsersProfilefalsenonenone
    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
    sessionDataUsersSessiondatafalsenonenone
    importUsernames[string]¦nullfalsenoneusername for imported
    +

    UsersEmails

    +

    + + +

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

    Properties

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

    UsersProfile

    +

    + + +

    +
    {
    +  "avatarUrl": "string",
    +  "emailBuffer": [
    +    "string"
    +  ],
    +  "fullname": "string",
    +  "showDesktopDragHandles": true,
    +  "hideCheckedItems": true,
    +  "hiddenSystemMessages": true,
    +  "hiddenMinicardLabelText": true,
    +  "initials": "string",
    +  "invitedBoards": [
    +    "string"
    +  ],
    +  "language": "string",
    +  "notifications": [],
    +  "activity": "string",
    +  "read": "string",
    +  "showCardsCountAt": 0,
    +  "startDayOfWeek": 0,
    +  "starredBoards": [
    +    "string"
    +  ],
    +  "icode": "string",
    +  "boardView": "board-view-swimlanes",
    +  "listSortBy": "-modifiedat",
    +  "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
    showDesktopDragHandlesbooleanfalsenonedoes the user want to hide system messages?
    hideCheckedItemsbooleanfalsenonedoes the user want to hide checked checklist items?
    hiddenSystemMessagesbooleanfalsenonedoes the user want to hide system messages?
    hiddenMinicardLabelTextbooleanfalsenonedoes the user want to hide minicard label texts?
    initialsstringfalsenoneinitials of the user
    invitedBoards[string]falsenoneboard IDs the user has been invited to
    languagestringfalsenonelanguage of the user
    notifications[UsersProfileNotifications]falsenoneenabled notifications for the user
    activitystringtruenoneThe id of the activity this notification references
    readstringfalsenonethe date on which this notification was read
    showCardsCountAtnumberfalsenoneshowCardCountAt field of the user
    startDayOfWeeknumberfalsenonestartDayOfWeek field of the user
    starredBoards[string]falsenonelist of starred board IDs
    icodestringfalsenoneicode
    boardViewstringfalsenoneboardView field of the user
    listSortBystringfalsenonedefault sort list for 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-swimlanes
    boardViewboard-view-lists
    boardViewboard-view-cal
    listSortBy-modifiedat
    listSortBymodifiedat
    listSortBy-title
    listSortBytitle
    listSortBy-sort
    listSortBysort
    +

    UsersSessiondata

    +

    + + +

    +
    {
    +  "totalHits": 0,
    +  "lastHit": 0
    +}
    +
    +
    +

    Properties

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeRequiredRestrictionsDescription
    totalHitsnumberfalsenoneTotal hits from last search
    lastHitnumberfalsenonelast hit that was returned
    + + + + + + + + + + + + + + + + + + + +
    diff --git a/public/api/wekan.yml b/public/api/wekan.yml index d58febc65..06975fd37 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -134,4 +134,3650 @@ paths: description: | Error in registration + /api/boards: + get: + operationId: get_public_boards + summary: Get all public boards + tags: + - Boards + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + post: + operationId: new_board + summary: Create a board + description: | + This allows to create a board. + + The color has to be chosen between `belize`, `nephritis`, `pomegranate`, + `pumpkin`, `wisteria`, `moderatepink`, `strongcyan`, + `limegreen`, `midnight`, `dark`, `relax`, `corteza`: + + Wekan logo + tags: + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the new title of the board + type: string + required: true + - name: owner + in: formData + description: | + "ABCDE12345" <= User ID in Wekan. + (Not username or email) + type: string + required: true + - name: isAdmin + in: formData + description: | + is the owner an admin of the board (default true) + type: boolean + required: false + - name: isActive + in: formData + description: | + is the board active (default true) + type: boolean + required: false + - name: isNoComments + in: formData + description: | + disable comments (default false) + type: boolean + required: false + - name: isCommentOnly + in: formData + description: | + only enable comments (default false) + type: boolean + required: false + - name: isWorker + in: formData + description: | + only move cards, assign himself to card and comment (default false) + type: boolean + required: false + - name: permission + in: formData + description: | + "private" board <== Set to "public" if you + want public Wekan board + type: string + required: false + - name: color + in: formData + description: | + the color of the board + type: string + required: false + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + defaultSwimlaneId: + type: string + /api/boards/{board}: + get: + operationId: get_board + summary: Get the board with that particular ID + tags: + - Boards + parameters: + - name: board + in: path + description: | + the ID of the board to retrieve the data + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Boards" + delete: + operationId: delete_board + summary: Delete a board + tags: + - Boards + parameters: + - name: board + in: path + description: | + the ID of the board + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/attachments: + get: + operationId: get_board_attachments + summary: Get the list of attachments of a board + tags: + - Boards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + attachmentId: + type: string + attachmentName: + type: string + attachmentType: + type: string + cardId: + type: string + listId: + type: string + swimlaneId: + type: string + /api/boards/{board}/cards/{card}/checklists: + get: + operationId: get_all_checklists + summary: Get the list of checklists attached to a card + tags: + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + post: + operationId: new_checklist + summary: create a new checklist + tags: + - Checklists + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the title of the new checklist + type: string + required: true + - name: items + in: formData + description: | + the list of items on the new checklist + type: string + required: false + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/checklists/{checklist}: + get: + operationId: get_checklist + summary: Get a checklist + tags: + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the ID of the checklist + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + cardId: + type: string + title: + type: string + finishedAt: + type: string + createdAt: + type: string + sort: + type: number + items: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + isFinished: + type: boolean + delete: + operationId: delete_checklist + summary: Delete a checklist + description: | + The checklist will be removed, not put in the recycle bin. + tags: + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the ID of the checklist to remove + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}: + get: + operationId: get_checklist_item + summary: Get a checklist item + tags: + - ChecklistItems + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the checklist ID + type: string + required: true + - name: item + in: path + description: | + the ID of the item + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/ChecklistItems" + put: + operationId: edit_checklist_item + summary: Edit a checklist item + tags: + - ChecklistItems + - Checklists + consumes: + - multipart/form-data + - application/json + parameters: + - name: isFinished + in: formData + description: | + is the item checked? + type: string + required: false + - name: title + in: formData + description: | + the new text of the item + type: string + required: false + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the checklist ID + type: string + required: true + - name: item + in: path + description: | + the ID of the item + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_checklist_item + summary: Delete a checklist item + description: | + Note: this operation can't be reverted. + tags: + - ChecklistItems + - Checklists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + - name: checklist + in: path + description: | + the checklist ID + type: string + required: true + - name: item + in: path + description: | + the ID of the item to be removed + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/comments: + get: + operationId: get_all_comments + summary: Get all comments attached to a card + tags: + - CardComments + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + comment: + type: string + authorId: + type: string + post: + operationId: new_comment + summary: Add a comment on a card + tags: + - CardComments + consumes: + - multipart/form-data + - application/json + parameters: + - name: authorId + in: formData + description: | + the user who 'posted' the comment + type: string + required: true + - name: comment + in: formData + description: the comment value + type: string + required: true + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cards/{card}/comments/{comment}: + get: + operationId: get_comment + summary: Get a comment on a card + tags: + - CardComments + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + - name: comment + in: path + description: | + the ID of the comment to retrieve + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/CardComments" + delete: + operationId: delete_comment + summary: Delete a comment on a card + tags: + - CardComments + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + - name: comment + in: path + description: | + the ID of the comment to delete + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}: + get: + operationId: get_cards_by_custom_field + summary: Get all Cards that matchs a value of a specific custom field + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: customField + in: path + description: | + the list ID + type: string + required: true + - name: customFieldValue + in: path + description: | + the value to look for + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + description: + type: string + listId: + type: string + swinlaneId: + type: string + /api/boards/{board}/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_custom_field + summary: Get a Custom Fields attached to a board + tags: + - CustomFields + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: | + the ID of the custom field + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + boardIds: + type: string + put: + operationId: edit_custom_field + summary: Update a Custom Field + tags: + - CustomFields + consumes: + - multipart/form-data + - application/json + parameters: + - name: name + in: formData + description: | + the name of the custom field + type: string + required: true + - name: type + in: formData + description: | + the type of the custom field + type: string + required: true + - name: settings + in: formData + description: | + the settings object of the custom field + type: string + required: true + - name: showOnCard + in: formData + description: | + should we show the custom field on cards + type: boolean + required: true + - name: automaticallyOnCard + in: formData + description: | + should the custom fields automatically be added on cards + type: boolean + required: true + - name: alwaysOnCard + in: formData + description: the alwaysOnCard value + type: string + required: true + - name: showLabelOnMiniCard + in: formData + description: | + should the label of the custom field be shown on minicards + type: boolean + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_custom_field + summary: Delete a Custom Fields attached to a board + description: | + The Custom Field can't be retrieved after this operation + tags: + - CustomFields + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: | + the ID of the custom field + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/custom-fields/{customField}/dropdown-items: + post: + operationId: add_custom_field_dropdown_items + summary: Update a Custom Field's dropdown items + tags: + - CustomFields + consumes: + - multipart/form-data + - application/json + parameters: + - name: items + in: formData + description: | + names of the custom field + type: string + required: false + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/custom-fields/{customField}/dropdown-items/{dropdownItem}: + put: + operationId: edit_custom_field_dropdown_item + summary: Update a Custom Field's dropdown item + tags: + - CustomFields + consumes: + - multipart/form-data + - application/json + parameters: + - name: name + in: formData + description: | + names of the custom field + type: string + required: true + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + - name: dropdownItem + in: path + description: the dropdownItem value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_custom_field_dropdown_item + summary: Update a Custom Field's dropdown items + tags: + - CustomFields + parameters: + - name: board + in: path + description: the board value + type: string + required: true + - name: customField + in: path + description: the customField value + type: string + required: true + - name: dropdownItem + in: path + description: the dropdownItem value + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/export: + get: + operationId: exportJson + summary: This route is used to export the board to a json file format. + description: | + If user is already logged-in, pass loginToken as param + "authToken": '/api/boards/:boardId/export?authToken=:token' + + See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ + for detailed explanations + tags: + - Boards + parameters: + - name: board + in: path + description: | + the ID of the board we are exporting + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/integrations: + get: + operationId: get_all_integrations + summary: Get all integrations in board + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + $ref: "#/definitions/Integrations" + post: + operationId: new_integration + summary: Create a new integration + tags: + - Integrations + consumes: + - multipart/form-data + - application/json + parameters: + - name: url + in: formData + description: | + the URL of the integration + type: string + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/integrations/{int}: + get: + operationId: get_integration + summary: Get a single integration in board + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Integrations" + put: + operationId: edit_integration + summary: Edit integration data + tags: + - Integrations + consumes: + - multipart/form-data + - application/json + parameters: + - name: enabled + in: formData + description: | + is the integration enabled? + type: string + required: false + - name: title + in: formData + description: | + new name of the integration + type: string + required: false + - name: url + in: formData + description: | + new URL of the integration + type: string + required: false + - name: token + in: formData + description: | + new token of the integration + type: string + required: false + - name: activities + in: formData + description: | + new list of activities of the integration + type: string + required: false + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_integration + summary: Delete integration + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/integrations/{int}/activities: + delete: + operationId: delete_integration_activities + summary: Delete subscribed activities + tags: + - Integrations + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Integrations" + post: + operationId: new_integration_activities + summary: Add subscribed activities + tags: + - Integrations + consumes: + - multipart/form-data + - application/json + parameters: + - name: activities + in: formData + description: the activities value + type: string + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: int + in: path + description: | + the integration ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Integrations" + /api/boards/{board}/labels: + put: + operationId: add_board_label + summary: Add a label to a board + description: | + If the board doesn't have the name/color label, this function + adds the label to the board. + tags: + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: label + in: formData + description: the label value + type: string + required: true + - name: board + in: path + description: | + the board + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: string + /api/boards/{board}/lists: + get: + operationId: get_all_lists + summary: Get the list of Lists attached to a board + tags: + - Lists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + post: + operationId: new_list + summary: Add a List to a board + tags: + - Lists + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the title of the List + type: string + required: true + - name: board + in: path + description: | + the board ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/lists/{list}: + get: + operationId: get_list + summary: Get a List attached to a board + tags: + - Lists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the List ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Lists" + delete: + operationId: delete_list + summary: Delete a List + description: | + This **deletes** a list from a board. + The list is not put in the recycle bin. + tags: + - Lists + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the ID of the list to remove + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/lists/{list}/cards: + get: + operationId: get_all_cards + summary: Get all Cards attached to a List + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the list ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + description: + type: string + post: + operationId: new_card + summary: Create a new Card + tags: + - Cards + consumes: + - multipart/form-data + - application/json + parameters: + - name: authorId + in: formData + description: the authorId value + type: string + required: true + - name: members + in: formData + description: | + the member IDs list of the new card + type: string + required: false + - name: assignees + in: formData + description: | + the array of maximum one ID of assignee of the new card + type: string + required: false + - name: title + in: formData + description: | + the title of the new card + type: string + required: true + - name: description + in: formData + description: | + the description of the new card + type: string + required: true + - name: swimlaneId + in: formData + description: | + the swimlane ID of the new card + type: string + required: true + - name: board + in: path + description: | + the board ID of the new card + type: string + required: true + - name: list + in: path + description: | + the list ID of the new card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/lists/{list}/cards/{card}: + get: + operationId: get_card + summary: Get a Card + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: list + in: path + description: | + the list ID of the card + type: string + required: true + - name: card + in: path + description: | + the card ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + $ref: "#/definitions/Cards" + put: + operationId: edit_card + summary: Edit Fields in a Card + description: | + Edit a card + + The color has to be chosen between `white`, `green`, `yellow`, `orange`, + `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, + `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, + `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, + `indigo`: + + Wekan card colors + + Note: setting the color to white has the same effect than removing it. + tags: + - Cards + consumes: + - multipart/form-data + - application/json + parameters: + - name: title + in: formData + description: | + the new title of the card + type: string + required: false + - name: sort + in: formData + description: | + the new sort value of the card + type: string + required: false + - name: parentId + in: formData + description: | + change the parent of the card + type: string + required: false + - name: description + in: formData + description: | + the new description of the card + type: string + required: false + - name: color + in: formData + description: | + the new color of the card + type: string + required: false + - name: vote + in: formData + description: | + the vote object + type: object + required: false + - name: labelIds + in: formData + description: | + the new list of label IDs attached to the card + type: string + required: false + - name: requestedBy + in: formData + description: | + the new requestedBy field of the card + type: string + required: false + - name: assignedBy + in: formData + description: | + the new assignedBy field of the card + type: string + required: false + - name: receivedAt + in: formData + description: | + the new receivedAt field of the card + type: string + required: false + - name: startAt + in: formData + description: | + the new startAt field of the card + type: string + required: false + - name: dueAt + in: formData + description: | + the new dueAt field of the card + type: string + required: false + - name: endAt + in: formData + description: | + the new endAt field of the card + type: string + required: false + - name: spentTime + in: formData + description: | + the new spentTime field of the card + type: string + required: false + - name: isOverTime + in: formData + description: | + the new isOverTime field of the card + type: boolean + required: false + - name: customFields + in: formData + description: | + the new customFields value of the card + type: string + required: false + - name: members + in: formData + description: | + the new list of member IDs attached to the card + type: string + required: false + - name: assignees + in: formData + description: | + the array of maximum one ID of assignee attached to the card + type: string + required: false + - name: swimlaneId + in: formData + description: | + the new swimlane ID of the card + type: string + required: false + - name: listId + in: formData + description: | + the new list ID of the card (move operation) + type: string + required: false + - name: authorId + in: formData + description: | + change the owner of the card + type: string + required: false + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: list + in: path + description: | + the list ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + delete: + operationId: delete_card + summary: Delete a card from a board + description: | + This operation **deletes** a card, and therefore the card + is not put in the recycle bin. + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID of the card + type: string + required: true + - name: list + in: path + description: | + the list ID of the card + type: string + required: true + - name: card + in: path + description: | + the ID of the card + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/members/{member}: + post: + operationId: set_board_member_permission + summary: Change the permission of a member of a board + tags: + - Boards + - Users + consumes: + - multipart/form-data + - application/json + parameters: + - name: isAdmin + in: formData + description: | + admin capability + type: boolean + required: true + - name: isNoComments + in: formData + description: | + NoComments capability + type: boolean + required: true + - name: isCommentOnly + in: formData + description: | + CommentsOnly capability + type: boolean + required: true + - name: isWorker + in: formData + description: | + Worker capability + type: boolean + required: true + - name: board + in: path + description: | + the ID of the board that we are changing + type: string + required: true + - name: member + in: path + description: | + the ID of the user to change permissions + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + /api/boards/{board}/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: remove_board_member + summary: Remove Member from Board + description: | + Only the admin user (the first user) can call the REST API. + tags: + - Users + - Boards + consumes: + - multipart/form-data + - application/json + parameters: + - name: action + in: formData + description: | + the action (needs to be `remove`) + type: string + 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}/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_swimlane + summary: Delete a swimlane + description: | + The swimlane will be deleted, not moved to the recycle bin + tags: + - Swimlanes + parameters: + - name: board + in: path + description: | + the ID of the board + type: string + required: true + - name: swimlane + in: path + description: | + the ID of the swimlane + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /api/boards/{board}/swimlanes/{swimlane}/cards: + get: + operationId: get_swimlane_cards + summary: get all cards attached to a swimlane + tags: + - Cards + parameters: + - name: board + in: path + description: | + the board ID + type: string + required: true + - name: swimlane + in: path + description: | + the swimlane ID + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: array + items: + type: object + properties: + _id: + type: string + title: + type: string + description: + type: string + listId: + type: string + /api/boards_count: + get: + operationId: get_boards_count + summary: Get public and private boards count + tags: + - Boards + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + private: + type: integer + public: + type: integer + /api/createtoken/{user}: + post: + operationId: create_user_token + summary: Create a user token + description: | + Only the admin user (the first user) can call the REST API. + tags: + - Users + consumes: + - multipart/form-data + - application/json + parameters: + - name: user + in: path + description: | + the ID of the user to create token for. + type: string + required: true + produces: + - application/json + security: + - UserSecurity: [] + responses: + '200': + description: |- + 200 response + schema: + type: object + properties: + _id: + type: string + /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 or username + 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 + archivedAt: + description: | + Latest archiving time of the board + type: string + x-nullable: true + createdAt: + description: | + Creation time of the board + type: string + modifiedAt: + description: | + Last modification time of the board + type: string + x-nullable: true + stars: + description: | + How many stars the board has + type: number + labels: + description: | + List of labels attached to a board + type: array + items: + $ref: "#/definitions/BoardsLabels" + 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 + - clearblue + - natural + - modern + - moderndark + description: + description: | + The description of the board + type: string + x-nullable: true + subtasksDefaultBoardId: + description: | + The default board ID assigned to subtasks. + type: string + x-nullable: true + subtasksDefaultListId: + description: | + The default List ID assigned to subtasks. + type: string + x-nullable: true + dateSettingsDefaultBoardId: + type: string + x-nullable: true + dateSettingsDefaultListId: + type: string + x-nullable: true + allowsSubtasks: + description: | + Does the board allows subtasks? + type: boolean + allowsAttachments: + description: | + Does the board allows attachments? + type: boolean + allowsChecklists: + description: | + Does the board allows checklists? + type: boolean + allowsComments: + description: | + Does the board allows comments? + type: boolean + allowsDescriptionTitle: + description: | + Does the board allows description title? + type: boolean + allowsDescriptionText: + description: | + Does the board allows description text? + type: boolean + allowsActivities: + description: | + Does the board allows comments? + type: boolean + allowsLabels: + description: | + Does the board allows labels? + type: boolean + allowsAssignee: + description: | + Does the board allows assignee? + type: boolean + allowsMembers: + description: | + Does the board allows members? + type: boolean + allowsRequestedBy: + description: | + Does the board allows requested by? + type: boolean + allowsAssignedBy: + description: | + Does the board allows requested by? + type: boolean + allowsReceivedDate: + description: | + Does the board allows received date? + type: boolean + allowsStartDate: + description: | + Does the board allows start date? + type: boolean + allowsEndDate: + description: | + Does the board allows end date? + type: boolean + allowsDueDate: + description: | + Does the board allows due date? + type: boolean + presentParentTask: + description: | + Controls how to present the parent task: + + - `prefix-with-full-path`: add a prefix with the full path + - `prefix-with-parent`: add a prefisx with the parent name + - `subtext-with-full-path`: add a subtext with the full path + - `subtext-with-parent`: add a subtext with the parent name + - `no-parent`: does not show the parent at all + type: string + enum: + - prefix-with-full-path + - prefix-with-parent + - subtext-with-full-path + - subtext-with-parent + - no-parent + x-nullable: true + 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 + sort: + description: | + Sort value + type: number + required: + - title + - slug + - archived + - createdAt + - stars + - labels + - members + - permission + - color + - allowsSubtasks + - allowsAttachments + - allowsChecklists + - allowsComments + - allowsDescriptionTitle + - allowsDescriptionText + - allowsActivities + - allowsLabels + - allowsAssignee + - allowsMembers + - allowsRequestedBy + - allowsAssignedBy + - allowsReceivedDate + - allowsStartDate + - allowsEndDate + - allowsDueDate + - type + - sort + 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 + isWorker: + description: | + Is the member only allowed to move card, assign himself to card and comment + 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 + archivedAt: + description: | + latest archiving date + type: string + x-nullable: true + parentId: + description: | + ID of the parent card + type: string + x-nullable: true + listId: + description: | + List ID where the card is + type: string + x-nullable: true + swimlaneId: + description: | + Swimlane ID where the card is + type: string + boardId: + description: | + Board ID of the card + type: string + x-nullable: true + coverId: + description: | + Cover ID of the card + type: string + x-nullable: true + color: + type: string + enum: + - white + - green + - yellow + - orange + - red + - purple + - blue + - sky + - lime + - pink + - black + - silver + - peachpuff + - crimson + - plum + - darkgreen + - slateblue + - magenta + - gold + - navy + - gray + - saddlebrown + - paleturquoise + - mistyrose + - indigo + x-nullable: true + createdAt: + description: | + creation date + type: string + modifiedAt: + type: string + customFields: + description: | + list of custom fields + type: array + items: + $ref: "#/definitions/CardsCustomfields" + x-nullable: true + dateLastActivity: + description: | + Date of last activity + type: string + description: + description: | + description of the card + type: string + x-nullable: true + requestedBy: + description: | + who requested the card (ID of the user) + type: string + x-nullable: true + assignedBy: + description: | + who assigned the card (ID of the user) + type: string + x-nullable: true + labelIds: + description: | + list of labels ID the card has + type: array + items: + type: string + x-nullable: true + x-nullable: true + members: + description: | + list of members (user IDs) + type: array + items: + type: string + x-nullable: true + x-nullable: true + assignees: + description: | + who is assignee of the card (user ID), + maximum one ID of assignee in array. + type: array + items: + type: string + x-nullable: true + x-nullable: true + receivedAt: + description: | + Date the card was received + type: string + x-nullable: true + startAt: + description: | + Date the card was started to be worked on + type: string + x-nullable: true + dueAt: + description: | + Date the card is due + type: string + x-nullable: true + endAt: + description: | + Date the card ended + type: string + x-nullable: true + spentTime: + description: | + How much time has been spent on this + type: number + x-nullable: true + isOvertime: + description: | + is the card over time? + type: boolean + x-nullable: true + userId: + description: | + user ID of the author of the card + type: string + sort: + description: | + Sort value + type: number + subtaskSort: + description: | + subtask sort value + type: number + x-nullable: true + type: + description: | + type of the card + type: string + linkedId: + description: | + ID of the linked card + type: string + x-nullable: true + vote: + description: | + vote object, see below + $ref: "#/definitions/CardsVote" + x-nullable: true + required: + - archived + - swimlaneId + - createdAt + - modifiedAt + - dateLastActivity + - userId + - sort + - type + CardsVote: + type: object + properties: + question: + type: string + positive: + description: | + list of members (user IDs) + type: array + items: + type: string + x-nullable: true + negative: + description: | + list of members (user IDs) + type: array + items: + type: string + x-nullable: true + end: + type: string + public: + type: boolean + allowNonBoardMembers: + type: boolean + required: + - question + - public + - allowNonBoardMembers + 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 + - checkbox + - currency + settings: + description: | + settings of the custom field + $ref: "#/definitions/CustomFieldsSettings" + showOnCard: + description: | + should we show on the cards this custom field + type: boolean + automaticallyOnCard: + description: | + should the custom fields automatically be added on cards? + type: boolean + alwaysOnCard: + description: | + should the custom field be automatically added to all cards? + type: boolean + showLabelOnMiniCard: + description: | + should the label of the custom field be shown on minicards? + type: boolean + createdAt: + type: string + x-nullable: true + modifiedAt: + type: string + required: + - boardIds + - name + - type + - settings + - showOnCard + - automaticallyOnCard + - alwaysOnCard + - showLabelOnMiniCard + - modifiedAt + CustomFieldsSettings: + type: object + properties: + currencyCode: + type: string + 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 + starred: + description: | + if a list is stared + then we put it on the top + type: boolean + x-nullable: true + archived: + description: | + is the list archived + type: boolean + archivedAt: + description: | + latest archiving date + type: string + x-nullable: true + boardId: + description: | + the board associated to this list + type: string + swimlaneId: + description: | + the swimlane associated to this list. Used for templates + type: string + createdAt: + description: | + creation date + type: string + sort: + description: | + is the list sorted + type: number + x-nullable: true + updatedAt: + description: | + last update of the list + type: string + x-nullable: true + modifiedAt: + type: string + wipLimit: + description: | + WIP object, see below + $ref: "#/definitions/ListsWiplimit" + x-nullable: true + color: + description: | + the color of the list + type: string + enum: + - white + - green + - yellow + - orange + - red + - purple + - blue + - sky + - lime + - pink + - black + - 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 + archivedAt: + description: | + latest archiving date of the swimlane + type: string + x-nullable: true + boardId: + description: | + the ID of the board the swimlane is attached to + type: string + createdAt: + description: | + creation date of the swimlane + type: string + sort: + description: | + the sort value of the swimlane + type: number + x-nullable: true + color: + description: | + the color of the swimlane + type: string + enum: + - white + - green + - yellow + - orange + - red + - purple + - blue + - sky + - lime + - pink + - black + - 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 + sessionData: + description: | + profile settings + $ref: "#/definitions/UsersSessiondata" + x-nullable: true + importUsernames: + description: | + username for imported + type: array + items: + type: string + x-nullable: true + x-nullable: true + 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 + showDesktopDragHandles: + description: | + does the user want to hide system messages? + type: boolean + hideCheckedItems: + description: | + does the user want to hide checked checklist items? + type: boolean + hiddenSystemMessages: + description: | + does the user want to hide system messages? + type: boolean + hiddenMinicardLabelText: + description: | + does the user want to hide minicard label texts? + 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: + $ref: "#/definitions/UsersProfileNotifications" + activity: + description: | + The id of the activity this notification references + type: string + read: + description: | + the date on which this notification was read + type: string + showCardsCountAt: + description: | + showCardCountAt field of the user + type: number + startDayOfWeek: + description: | + startDayOfWeek 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-swimlanes + - board-view-lists + - board-view-cal + listSortBy: + description: | + default sort list for user + type: string + enum: + - -modifiedat + - modifiedat + - -title + - title + - -sort + - sort + 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: + - activity + - templatesBoardId + - cardTemplatesSwimlaneId + - listTemplatesSwimlaneId + - boardTemplatesSwimlaneId + UsersSessiondata: + type: object + properties: + totalHits: + description: | + Total hits from last search + type: number + lastHit: + description: | + last hit that was returned + type: number diff --git a/releases/rebuild-docs-install-deps.sh b/releases/rebuild-docs-install-deps.sh index 51c2ef94f..2f6641892 100755 --- a/releases/rebuild-docs-install-deps.sh +++ b/releases/rebuild-docs-install-deps.sh @@ -4,6 +4,11 @@ sudo apt-get install python3-pip sudo pip3 install -U setuptools wheel sudo npm install -g api2html +mkdir -p ~/python +cd ~/python +git clone --depth 1 -b master https://github.com/Kronuz/esprima-python +cd ~/python/esprima-python +sudo python3 setup.py install --record files.txt cd ~/repos/wekan mkdir -p public/api