CardBoard API Documentation

Welcome to the CardBoard API documentation! Here you can find information on how to interact with the API.

Before you start, talk to you CardBoard community admin about enabling the API. The admin can do this by going to “My Communities”, selecting the community, then select API. Select the checkbox that says “Enable the API for your community”.

You will also need to record the Bearer token. The Bearer token is used to authenticate your calls to the API.

Card Comments

Create comment

Endpoint

POST /api/maps/{map_id}/cards/{card_id}/card_comments

Parameters

Name Description Type
comment[text] required The content of the card's comment text

Request

Route

POST /api/maps/3279/cards/2531/card_comments

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo5M2U0OTU0ZDAxMmQ2M2E1Yjc4M2NhMTA4ODAzOTY1OQ
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "comment": {
    "text": "@Tom makes drive time enjoyable"
  }
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"a91b0a183d2c9a01ad3026ed49e9ceac"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=R2ZJbVg5S25tNHduaFprS01ZTGlDdDd6U3J0RkIwcDFTaE9OVnhmM21hZDQrK0JjdUI4L2w4K2xseDRrSzc5MmhONjQxb01HYWwxY29RNVBIUE9ab3hkZ2lXOUhBTWQ2Q0V5bUZaY3BzNWs9LS0vSzdYdlRhOEh3YUh3ekRzNEh3YkdBPT0%3D--9571cc6db5bbb63654e49a25f2416a926c789768; path=/; HttpOnly; SameSite=None
X-Request-Id: 6dc81093-f13d-4cfc-ad0c-decc3984aba5
X-Runtime: 0.236004
Vary: Origin
Content-Length: 224

Body

{
  "id": 129,
  "comment": "@Tom makes drive time enjoyable",
  "created_at": "Fri, 14 May 2021 16:42:23 +0000",
  "edited_at": "Fri, 14 May 2021 16:42:23 +0000",
  "user": {
    "id": 2986,
    "name": "Bob",
    "email": "bob@cardboardit.com",
    "initials": "B"
  }
}

Update comment

Endpoint

PATCH /api/maps/{map_id}/cards/{card_id}/card_comments/{card_comment_id}

Parameters

Name Description With Example Type
comment[text] required The content of the card's comment true text

Request

Route

PATCH /api/maps/3280/cards/2532/card_comments/130

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTpjZWQ3YWE5ZWRiMGQ3ZTBiNDMyZWRkODllMzEwNTkyOA
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "comment": {
    "text": "I'll replace the old comment!"
  }
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"7299dab18ed67846856fe4fd2a62c66b"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=V3NIZG4vUUtJOCthU0I5NjlsUW82VXhtZW9JT3EwTkJ4NjZGMVVXald6UHN3L09ZNCtGdGZnN29pcmU1THFHaSttL0ZYSUJQRjdSOW9xeUNZeEJmMmsrbHNkQ3czQk9oSHpYQ2xIdEQ5M009LS1TOEtZNHJaR1NyR1BUaWRLaC9aUGp3PT0%3D--5df0da95d7ca54f3ab067eca0d8cf356765801bd; path=/; HttpOnly; SameSite=None
X-Request-Id: cbbd085b-3a65-4776-8a74-10cfa91baff2
X-Runtime: 0.064456
Vary: Origin
Content-Length: 222

Body

{
  "id": 130,
  "comment": "I'll replace the old comment!",
  "created_at": "Fri, 14 May 2021 16:42:23 +0000",
  "edited_at": "Fri, 14 May 2021 16:42:23 +0000",
  "user": {
    "id": 2987,
    "name": "Bob",
    "email": "bob@cardboardit.com",
    "initials": "B"
  }
}

Cards

Create a new card

Endpoint

POST api/maps/:map_id/cards/

Parameters

Name Description Type Default
map_id The id of the map which you would like to view the cards of
x required The x coordinate that you would like the card to have integer
y required The y coordinate that you would like the card to have integer
name The text you would like to view on the card string
color_name The color of the card, must be one of the following: "purple", "orange", "yellow", "warning", "green", "blue", "pink", "white", "red" string white
description A longer description of the card, viewed when you click on it text
annotation Integer enum for the annotation types (none: 0, question: 1, discuss: 2, lame: 3, blocked: 4, remove: 5, sweet: 7) integer 0
status The status of card, it should be one of these values: 'none', 'unstarted', 'started', 'completed', 'deleted', 'custom'. When 'custom' is selected, the 'custom_status' field should have a non empty value. string none
custom_status A custom status of card, if you use this field don't forget to use status as 'custom'. string
shape The shape of the card, it should be one of these values: 'rectangle', 'diamond', 'circle', 'capsule'. string rectangle
size The card's estimation (aka story points), it accepts numeric sizes and also named estimations like M, L, XL. string

Request

Route

POST api/maps/3283/cards/

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo2YzFmODA4ZDcxOTZmYmU1YmJlYjRiMmZmMWU5OGY3ZQ
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "x": 2,
  "y": 3,
  "name": "Design an API",
  "color_name": "green",
  "description": "In order to allow customers to connect any of their own automated services to Cardboard, we should create an API that allows customers to retrieve data whenever they want.",
  "annotation": 2,
  "status": "custom",
  "custom_status": "Code Review",
  "shape": "diamond",
  "size": 1
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"a97b906f0400fca553791ad28c196a16"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=U3kzNzg4L3FFWlh0b1ZDbFVIM2l3MklNUjVDeEtVQS8vL0VvME9mV0ZzUEt4T3pyZUNYMEk4TnR6eG14WEZpVGZEYkx0L0V0RVBlelI1NTBqQVRnM25hQ1lOUTYza09XM1U0RW1CQ2w4UGs9LS1kd0JvWVlGbkxKbjQ3S3RxNnpTNHZRPT0%3D--80519856396547341b438211d85866f2cb1ebd7b; path=/; HttpOnly; SameSite=None
X-Request-Id: 3d59b7a9-6e5f-4d48-9d44-1dc72a2dbde4
X-Runtime: 0.064887
Vary: Origin
Content-Length: 518

Body

{
  "id": 2537,
  "name": "Design an API",
  "version": 5,
  "uuid": "48b00390-9701-0139-0fb6-08002718e54b",
  "x": 2.0,
  "y": 3.0,
  "color_name": "green",
  "description": "In order to allow customers to connect any of their own automated services to Cardboard, we should create an API that allows customers to retrieve data whenever they want.",
  "status": "custom",
  "custom_status": "Code Review",
  "size": "1",
  "annotation": "discuss",
  "shape": "diamond",
  "created_at": "2021-05-14T16:42:24.285Z",
  "updated_at": "2021-05-14T16:42:24.285Z",
  "has_comments": false
}

Destroying cards

Endpoint

DELETE /api/maps/{map_id}/cards/{id}

Request

Route

DELETE /api/maps/3285/cards/2539

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbToyMjk2MGYxZjk3MDAxMmMzZTc1NTQ0OTEyMDYyMmVjMQ
Host: example.org
Content-Type: application/x-www-form-urlencoded
Cookie: 

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: text/html
Cache-Control: no-cache
Set-Cookie: _cardmap_session=SWREWUcrd20xZ0d2MG4wNkhlUW5JVWRSL0NOOUVnRlpLNUtYdE5uWHUwY1NSRTFKRExWcEh6ZGllc0pzQnlxTXJwbE51d1I1U2FYdVMwNGhTZUswOXE0OVVNNy84N01LZ054MzBKMVBRNEk9LS1wUEh3UXZsUWxDdzVVNkZKRXpZU3dRPT0%3D--3d3b882b82eb8d7f76c24d3b4ffa353baab2d7d0; path=/; HttpOnly; SameSite=None
X-Request-Id: 47be2d2e-d463-47ad-9458-5b722ee3bb1c
X-Runtime: 0.158729
Vary: Origin
Content-Length: 0

Getting a card

Endpoint

GET /api/maps/{map_id}/cards/{id}

Parameters

Name Description Type
include_comments Indicates if the cards should include comments when returned. Defaults to false. When comments are included a 'comments' attribute will be added to the response otherwise a 'has_comments' attribute will be included. boolean

Request

Route

GET /api/maps/3282/cards/2535

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo5NTM3NTcxOTJlMDIwNDUxMzRmNTk0OTY0YjM3ZDYzNw
Host: example.org
Cookie: 

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"a0083a4d92e789f187a0ffbb6102ee7f"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=OU5HNjNFckpaVFNTKzZQWUhWR1ZIQ1ZoNVZtL3ZiMXBBbFFEbXVtaEIyM1hSTHUrRjk0a1hEalN0Y3ZuVVFuUUYvamo3TUQwVlYzYkhpaGpVRHdxQnFCWmJyb1JtaTlVSGYxcE9lUVcrVFE9LS1NYWpZSlMyblVWV0xleVdHelpqQWdBPT0%3D--7697539f450e1049b6f38677ac091ac37a659582; path=/; HttpOnly; SameSite=None
X-Request-Id: f14213ed-ec9b-4aa4-b63e-2df1fa30467a
X-Runtime: 0.048802
Vary: Origin
Content-Length: 386

Body

{
  "id": 2535,
  "name": "Test card",
  "version": 4,
  "uuid": "4896e6f0-9701-0139-0fb6-08002718e54b",
  "x": 0.0,
  "y": 0.0,
  "color_name": "blue",
  "description": "this is indeed the card that is known as test",
  "status": "custom",
  "custom_status": "Code Review",
  "size": "2",
  "annotation": "none",
  "shape": "rectangle",
  "created_at": "2021-05-14T16:42:24.115Z",
  "updated_at": "2021-05-14T16:42:24.115Z",
  "has_comments": false
}

Listing cards

Endpoint

GET /api/maps/{map_id}/cards

Parameters

Name Description Type Default
page_length Maximum amount of cards to return from any one query. Defaults to 10. 0 is non-paginated and returns all cards on the map. integer 10
page Which page in a paginated query. Defaults to 0 (first page). integer 0
include_comments Indicates if the cards should include comments when returned. Defaults to false. When comments are included a 'comments' attribute will be added to the response otherwise a 'has_comments' attribute will be included. boolean

Request

Route

GET /api/maps/3281/cards?include_comments=true

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTpmNGEzNGYxOGMzNmVlYWZhZjg5ZjE5YTE0OThmYjNkNA
Host: example.org
Cookie: 

Query Parameters

include_comments=true

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"14770cca099c19889b527464125e1d89"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=TkZnM3E1cHVPNHgyVnVVUGg5cTc0YXBEQUV2Zk5zTEdlK2Rld3RZa0c3M3JFbVBQOENsUVZ2a05pT2JGb0t3WWMyWWZoVFNxajR3UzNObjF2QldsWHU3N1RvNEVFOGRaQXNBZVU4a1daTnc9LS1iSjMyNS9OWDQ2MVhwQTlqNlV0TWJBPT0%3D--b7399c092e70f7dc55e8e5abfaebd033f1e10dc5; path=/; HttpOnly; SameSite=None
X-Request-Id: b2bc19a8-68ce-40fb-9876-0880c273b9fc
X-Runtime: 0.081166
Vary: Origin
Content-Length: 1075

Body

[
  {
    "id": 2533,
    "name": "Test card",
    "version": 4,
    "uuid": "48801020-9701-0139-0fb6-08002718e54b",
    "x": 0.0,
    "y": 0.0,
    "color_name": "blue",
    "description": "this is indeed the card that is known as test",
    "status": "custom",
    "custom_status": "Code Review",
    "size": "2",
    "annotation": "none",
    "shape": "rectangle",
    "created_at": "2021-05-14T16:42:23.966Z",
    "updated_at": "2021-05-14T16:42:23.966Z",
    "comments": [
      {
        "id": 131,
        "comment": "The card should be red, it's a bug!",
        "created_at": "Fri, 14 May 2021 16:42:23 +0000",
        "user": {
          "id": 2988,
          "name": "Bob",
          "email": "bob@cardboardit.com",
          "initials": "B"
        }
      }
    ]
  },
  {
    "id": 2534,
    "name": "Example card: 1",
    "version": 5,
    "uuid": "48820730-9701-0139-0fb6-08002718e54b",
    "x": 4.0,
    "y": 2.0,
    "color_name": "blue",
    "description": "this is indeed the card that is known as test",
    "status": "none",
    "size": "1",
    "annotation": "none",
    "shape": "rectangle",
    "created_at": "2021-05-14T16:42:23.979Z",
    "updated_at": "2021-05-14T16:42:23.979Z",
    "comments": [
      {
        "id": 132,
        "comment": "Looks good!",
        "created_at": "Fri, 14 May 2021 16:42:23 +0000",
        "user": {
          "id": 2988,
          "name": "Bob",
          "email": "bob@cardboardit.com",
          "initials": "B"
        }
      }
    ]
  }
]

Update a card

Endpoint

PATCH api/maps/{map_id}/cards/{id}

Parameters

Name Description Type Default
map_id The id of the map which you would like to view the cards of
x required The x coordinate that you would like the card to have integer
y required The y coordinate that you would like the card to have integer
name The text you would like to view on the card string
color_name The color of the card, must be one of the following: "purple", "orange", "yellow", "warning", "green", "blue", "pink", "white", "red" string white
description A longer description of the card, viewed when you click on it text
annotation Integer enum for the annotation types (none: 0, question: 1, discuss: 2, lame: 3, blocked: 4, remove: 5, sweet: 7) integer 0
status The status of card, it should be one of these values: 'none', 'unstarted', 'started', 'completed', 'deleted', 'custom'. When 'custom' is selected, the 'custom_status' field should have a non empty value. string none
custom_status A custom status of card, if you use this field don't forget to use status as 'custom'. string
shape The shape of the card, it should be one of these values: 'rectangle', 'diamond', 'circle', 'capsule'. string rectangle
size The card's estimation (aka story points), it accepts numeric sizes and also named estimations like M, L, XL. string

Request

Route

PATCH api/maps/3284/cards/2538

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTowYzRjNWM4ODI2YzA2MmI0MGMzZGFlYWRjN2Q5Mzk2NA
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "map_id": 3284,
  "x": 2,
  "y": 3,
  "name": "Design an API",
  "color_name": "green",
  "description": "In order to allow customers to connect any of their own automated services to Cardboard, we should create an API that allows customers to retrieve data whenever they want.",
  "annotation": 2,
  "status": "started",
  "custom_status": "",
  "shape": "diamond",
  "size": "XL"
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"f60bf7b90a5407d0d2ae346f4738366d"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=elg5dHhVSzA4a1BIQTZncGpnMkRjMlVTRENjR2FGUzNzWm1LcXpsckJKRGxiNjVGaVFqb3Y3bVBrM0tPcmhITk1KMFNEVXVqaE93aHRFR2RuQ1BwcHRrZ0t0aUxPTjdnNkkzVkRrcnAwU2c9LS1jRFJzd25lN0Fvc0o0TGNsSi9WMFp3PT0%3D--97638d40cca21c7ae65dbf4087efe4ca27f52c83; path=/; HttpOnly; SameSite=None
X-Request-Id: f37475db-5a29-4590-bf8c-00efd3c68276
X-Runtime: 0.083519
Vary: Origin
Content-Length: 509

Body

{
  "id": 2538,
  "name": "Design an API",
  "version": 5,
  "uuid": "48b94e20-9701-0139-0fb6-08002718e54b",
  "x": 2.0,
  "y": 3.0,
  "color_name": "green",
  "description": "In order to allow customers to connect any of their own automated services to Cardboard, we should create an API that allows customers to retrieve data whenever they want.",
  "status": "started",
  "custom_status": "",
  "size": "XL",
  "annotation": "discuss",
  "shape": "diamond",
  "created_at": "2021-05-14T16:42:24.341Z",
  "updated_at": "2021-05-14T16:42:24.424Z",
  "has_comments": false
}

Maps

Create a new map

Endpoint

POST api/maps

Parameters

Name Description
name required The Map name
collaborators Objects of user ids that specify all the users in the same organization who should have access to changing the map
organization_id The organization (community) id that a user would want to assign this map to

Request

Route

POST api/maps

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTowNmI2MWM0ZjkyMmExYmJjOGQ5YjYxMzUzNzI2OGZjMw
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "name": "Map",
  "collaborators": [
    {
      "id": 2996
    }
  ],
  "organization_id": 935
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"2a7affcbc73666470155e5bb4f5fa775"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=blJnMkxjbk5vY0xqSmF4eWVoV3RrMDhFNmtRS3FjdzkwZVJvS0U2am0zUzB2LzVaZkpibHdNMnFObDdaWDdKNWc2V0tjUlJMa08xZ1RFUjZURk8rMVNVMzJFcW9QNUV4QzFqMStabERDSFU9LS1aY2p4NVFNdFkwMGVVUVlBMjhzcmFRPT0%3D--1f07174b17241fd9375d9acb01d6253efabfd4e9; path=/; HttpOnly; SameSite=None
X-Request-Id: feb47536-5f62-477b-9ae9-73270cf85206
X-Runtime: 0.103481
Vary: Origin
Content-Length: 268

Body

{
  "id": 3299,
  "name": "Map",
  "version": 1,
  "cards": [

  ],
  "slices": [

  ],
  "dividers": [

  ],
  "collaborators": [
    {
      "id": 2995
    },
    {
      "id": 2996
    }
  ],
  "stickers": [

  ],
  "tracker": {
  },
  "owner_id": 2995,
  "public": true,
  "created_at": "2021-05-14T16:42:25.080Z",
  "updated_at": "2021-05-14T16:42:25.080Z",
  "community": 935
}

Destroying maps

Endpoint

DELETE /api/maps/{id}

Request

Route

DELETE /api/maps/3301

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo5ZmFlNzU3YzA0YWE3Y2M1Njg4Y2FjYmU4OWE0OTViNg
Host: example.org
Content-Type: application/x-www-form-urlencoded
Cookie: 

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: text/html
Cache-Control: no-cache
Set-Cookie: _cardmap_session=TUdHclpWMXk5OXcrZ1BTb3RRMXBHRllUNzhZaEl2bUlhN25RMVFzTUV0UkltWHJ3QytDTWUzdkpPbmRQVWszdmpTL3VXdk1oMjJMYTEvdkZRQTlsNjBPVUQzRmUxb01LWVBjNWtIL2poazg9LS0wMFp1enMzdHBJTmZDNXc0L3VSR213PT0%3D--508c685a985e535a6cb77bc100a0e42c96822592; path=/; HttpOnly; SameSite=None
X-Request-Id: 77821585-0fde-4387-83a4-70ef7567cf43
X-Runtime: 0.126333
Vary: Origin
Content-Length: 0

Getting maps

Endpoint

GET /api/maps/{id}

Request

Route

GET /api/maps/3297

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTozNDIyODk0ZTY2ODQ4NDg5OTdlZmFjNmMxYzIxOTIzZA
Host: example.org
Cookie: 

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"c3e0e99a203ae0b46d71355f742eb49b"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=MEZVRFpTMjB0MHN3UTlKTHZ5OEhGd1l5ZkUwbXFDOWE3NGUvVlVFY25UOUdCUzFJaC9sbkdob2t5OTZhcm02dDVKQnY2VExXeElSTXhubFVxUzd2cnBFeUF3OUJ2eFhOTk9nVXBpa0VCREU9LS0ranhGd3FOTmp6Q3dMQTNwNFFhaVNBPT0%3D--d2e9477fe3199407fc8ff3374e4977e3ce35dbf9; path=/; HttpOnly; SameSite=None
X-Request-Id: ac9f8d60-4863-4e83-bceb-8eda15d1b9a4
X-Runtime: 0.061145
Vary: Origin
Content-Length: 250

Body

{
  "id": 3297,
  "name": "Example Map",
  "version": 3,
  "cards": [

  ],
  "slices": [

  ],
  "dividers": [

  ],
  "collaborators": [
    {
      "id": 2994
    }
  ],
  "stickers": [

  ],
  "tracker": {
  },
  "owner_id": 2994,
  "created_at": "2021-05-14T16:42:24.906Z",
  "updated_at": "2021-05-14T16:42:24.906Z",
  "community": 934
}

Listing maps

Endpoint

GET /api/maps

Parameters

Name Description
page Paginate the response, by default paged to 10 entries. Can also be passed as /maps/page/{page-number}

Request

Route

GET /api/maps?page=2

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo5MDhhM2RiZjYyOGU2YWI3MThlNzhiYjgzMDUyZjNiMw
Host: example.org
Cookie: 

Query Parameters

page=2

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"30fadd755ce9c4262bbf0144f3be488c"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=MmE0aG9qNFpOcldSVXR1TjhBZFU2UzRibnBuUlY2QXA5VGJoa0t5TlVLclRZamdvbEVsbytNbjJYZkJDRStVbnk0SzhJUmxqV1FVV21wVzhLZDJqWFVsU2xWNzJSWlNqaWllYlJmUmtyeTg9LS1FZ29LUThzMEZ0WHhmeEtORHRnbVZ3PT0%3D--eb07819bbee9c584afd28359ea4b5fff450a343c; path=/; HttpOnly; SameSite=None
X-Request-Id: adf583d2-5dcf-4ce1-a9a4-7d1f029d6086
X-Runtime: 0.106917
Vary: Origin
Content-Length: 252

Body

[
  {
    "id": 3286,
    "name": "Example Map",
    "version": 3,
    "cards": [

    ],
    "slices": [

    ],
    "dividers": [

    ],
    "collaborators": [
      {
        "id": 2993
      }
    ],
    "stickers": [

    ],
    "tracker": {
    },
    "owner_id": 2993,
    "created_at": "2021-05-14T16:42:24.674Z",
    "updated_at": "2021-05-14T16:42:24.674Z",
    "community": 933
  }
]

Updating a map

Endpoint

PATCH api/maps/{id}

Parameters

Name Description
name The Map name
collaborators Objects of user ids that specify all the users in the same organization who should have access to changing the map
organization_id The organization (community) id that a user would want to assign this map to

Request

Route

PATCH api/maps/3300

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTplZmU4ZTRkYjQzMzA5MjZjODFiNGE3ZDRiNTc4ZDFhYw
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "name": "Map",
  "collaborators": [
    {
      "id": 2998
    }
  ],
  "organization_id": 936
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"a970ac819f33960c0c97f036f96dc52e"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=dkxwSm9qYTQ4MDUwam9zVjBCKzhZNHB0TjFZYmc5Q0xqUkhMcEpqNTRLR3BrcmkvUHVBOUIzS3FPcWY2RWw0Y2xnVHpFWHEwSHduSnBkU3hXTFIyUEZtQXhnQlNOMmpnZHFtcU9YOFpUNWM9LS1zaU5uUGpHbHZacy9ORWdoZDBSQ3R3PT0%3D--c1f469333a904857977919a8098ea68764a60229; path=/; HttpOnly; SameSite=None
X-Request-Id: 16633ae9-a4e9-413b-8fc4-118841938181
X-Runtime: 0.128173
Vary: Origin
Content-Length: 242

Body

{
  "id": 3300,
  "name": "Map",
  "version": 4,
  "cards": [

  ],
  "slices": [

  ],
  "dividers": [

  ],
  "collaborators": [
    {
      "id": 2998
    }
  ],
  "stickers": [

  ],
  "tracker": {
  },
  "owner_id": 2997,
  "created_at": "2021-05-14T16:42:25.173Z",
  "updated_at": "2021-05-14T16:42:25.301Z",
  "community": 936
}

Users

Changing a user's name

Endpoint

PATCH api/users/{id}

Parameters

Name Description
name Display name of the user
role One of 'admin', 'collaborator', or 'viewer'

Request

Route

PATCH api/users/3013

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo5ZjI5MmNiZDFmYzIxY2E4ODk1M2FlMTZkYWU1NmVjMA
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "name": "Frank"
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"91b43e83da8bac2d6cb5e556367eec2b"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=OFFaQXdodlpOU1N4aTdwUGo3TU5tbHU5UlZ4ckpCZDBiOEthS3Vob3A3VktHdVZCUHFxczdleFNmRXVCTzR3VnJSdWdFSHgxbm5BSVNGV0M1cy93NXgrODQ1MHNCK2p1a3F0MGUvRXNtMmM9LS0wcmpRS2pZSS9ja1hWM29YOTJhbTJnPT0%3D--32767ccee718ca6bb9d820096348cd97cbf0b9a1; path=/; HttpOnly; SameSite=None
X-Request-Id: cf77536c-e5f6-4c34-8cbf-3ed8758a5ae3
X-Runtime: 0.057682
Vary: Origin
Content-Length: 133

Body

{
  "id": 3013,
  "name": "Frank",
  "email": "fred@cardboardit.com",
  "initials": "F",
  "role": "collaborator",
  "last_login_at": "2021-05-14T16:42:25Z"
}

Changing a user's role

Endpoint

PATCH api/users/{id}

Parameters

Name Description
name Display name of the user
role One of 'admin', 'collaborator', or 'viewer'

Request

Route

PATCH api/users/3015

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTpiZTZiOWVhNTU5MmFjMTkxMTc3YzE3Mjg1ZWEwNzg5YQ
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "role": "viewer"
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"972610e3895856e4c0265c05397895ba"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=WHhENmJzN3N1YmF3TUl6MGJjYmR3UWd0RS94MHdmdTlERmhqYnF4NlJzb2YzOTk1V2tubVFPc1Fyakg1Q05VY0dGNXA0d0ltU2ErVkxJbnZFYjJpcUkvd0E2MXMxK21oSDdEZWt0L1dYTkk9LS1xVEpJcXlobWxwVUhreFNXd0dBajZnPT0%3D--d8d1f8c5d2331b44d662a3398c0f730a1adf07f5; path=/; HttpOnly; SameSite=None
X-Request-Id: a44c644e-8e6b-4ce5-a675-f760ffe29c9f
X-Runtime: 0.101442
Vary: Origin
Content-Length: 126

Body

{
  "id": 3015,
  "name": "Fred",
  "email": "fred@cardboardit.com",
  "initials": "F",
  "role": "viewer",
  "last_login_at": "2021-05-14T16:42:25Z"
}

Destroying user

Endpoint

DELETE /api/users/{id}

Request

Route

DELETE /api/users/3019

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo5YjhhZWU0YThjYzc2ODgyOWVmOTU0ZGQ4YjUxMWI2NA
Host: example.org
Content-Type: application/x-www-form-urlencoded
Cookie: 

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: text/html
Cache-Control: no-cache
Set-Cookie: _cardmap_session=aGpUY0FpckhvYmtaU0FlL0YzWmlzaXI3VXJBVGpiSGpGMGtLTjBDQi83a3R5T3U1OVFUOE5wR08xTjB2ZWk5UWwxSXVrdWhveDlSSmZVOEMyREUrcUZIQTBqNENEWEJaZ0FZeVJQcDU4R289LS1iY2hjU0RFZXdSVmd4eTYxeDlPbmh3PT0%3D--fb46bb03dfe15516a01ed5186045e218387a353b; path=/; HttpOnly; SameSite=None
X-Request-Id: 45978722-14fc-4b59-a523-de0a0fe0072b
X-Runtime: 0.049232
Vary: Origin
Content-Length: 0

Getting users

Endpoint

GET /api/users/{id}

Request

Route

GET /api/users/3011

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTplNDYzZjA1MjM0NmIzMjUxZjM0NzljZDJkNmFmNTM1Zg
Host: example.org
Cookie: 

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"6423f0416d224eeece4efb3dea93bb6b"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=MG1sMDgycmhMcWl5bVVBd0xyaXNLeEd2MGFwcEtIQk8wSUdPcUZ2Um5XVDFnWTNnNTRmdmI3NjNIVThDS05IZ0VvTG5qWEVpYldOT3ExcWQvaHJtRUU4dXZVZFhlSVRyTEppUlBILzJJeDA9LS03M05JK0l2aVpXRDYwNWpvWFdqdmVBPT0%3D--3e8d372ff92c96d8cf1c173913f0b5504410c143; path=/; HttpOnly; SameSite=None
X-Request-Id: 185556a5-de18-42a3-a2d9-8cd95d89fd8c
X-Runtime: 0.033192
Vary: Origin
Content-Length: 123

Body

{
  "id": 3011,
  "name": "Bob",
  "email": "bob@cardboardit.com",
  "initials": "B",
  "role": "admin",
  "last_login_at": "2021-05-14T16:42:25Z"
}

Listing users

Endpoint

GET /api/users

Parameters

Name Description
page Paginate the response, by default paged to 10 entries. Can also be passed as /users/page/{page-number}

Request

Route

GET /api/users?page=2

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo4ZmMzNDE1MGI4ZWYxMjczNDA1MmIzZmQzMjRlNTc2NA
Host: example.org
Cookie: 

Query Parameters

page=2

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: application/json; charset=utf-8
ETag: W/"a4f6ee37542941c746a6b16f9de38e53"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _cardmap_session=eHdFT2RKN1B4MDdUYzY2SHcyZElvR2xkZmtQS3lLMzJYZytHM3dDb0toZUZCREdWTlBJaUZieDg5eFg4K0I2ZWF2YVVkR0JyOEtCODhGbzVaSlJRWEhHUjROdWg2ZVJHSWVlbGxuRm9mUTA9LS11LzVhZ2ZHbkJ3UGlHUlNrS05paXJBPT0%3D--ab2ff3aa71fe9b30e27f725c751c8e569790a23b; path=/; HttpOnly; SameSite=None
X-Request-Id: 2f5a7cd6-f4a3-4a69-b6ac-a55855e6b628
X-Runtime: 0.086552
Vary: Origin
Content-Length: 150

Body

[
  {
    "id": 3010,
    "name": "Example user: 9",
    "email": "example9@cardboardit.com",
    "initials": "EU",
    "role": "collaborator",
    "last_login_at": "2021-05-14T16:42:25Z"
  }
]

Transferring ownership of a users maps

Endpoint

POST api/users/{id}/transfer_maps

Parameters

Name Description
new_owner_id Which user should become the owner of the user's maps

Request

Route

POST api/users/3017/transfer_maps

Headers

Authorization: Bearer: Ym9iQGNhcmRib2FyZGl0LmNvbTo3NDlkYzgwZDk1ZGY0MDU4OTBkZGIwMDRiODJkY2UzZQ
Content-Type: application/json
Host: example.org
Cookie: 

Body

{
  "new_owner_id": 3016
}

Response

Simulated Response

Status

200

Headers

X-Frame-Options: ALLOWALL
Content-Type: text/html
Cache-Control: no-cache
Set-Cookie: _cardmap_session=b2pWR1ZYaThJc2VIazRxMmpVbXdVR3hzeHVtK0xhWkRjcTVqcUMvK3pONTFlOFBzU0dXcFZYaklZQXMrUXAycWo3a1RmcGduWnV0K3pmMnRObCthWjVMWW16ekNycTBGTmxjajk4eU56WFk9LS1SWHk0L0RwTGJHd20zRUR5OENwN21nPT0%3D--35c1eecf1eb545c582029873231a460de8a0cbf2; path=/; HttpOnly; SameSite=None
X-Request-Id: 807f503b-6b3a-4fd8-b475-ebc692516a41
X-Runtime: 0.067144
Vary: Origin
Content-Length: 0