---
title: "REST API"
canonical: "https://support.appfire.com/space/FB/285082055/REST%20API"
format: markdown
---
> Macro (aura-html)

# Getting Started

If you have used Confluence Server REST APIs before then you are well on your way to using the Flow Board REST APIs.  For those who have not used Confluence REST APIs, or for those who want a refresher, these resources will get you started:

[Confluence REST API Documentation](https://docs.atlassian.com/atlassian-confluence/REST/6.6.0/)  
[Confluence Server REST API Examples](https://developer.atlassian.com/server/confluence/confluence-rest-api-examples/)  


We like to use [curl](https://curl.haxx.se/docs/) to exercise REST APIs from the command line.  There are also many REST client GUI tools that may be easier than the command line for some scenarios. [Insomnia](https://insomnia.rest/) is an example of one that we like.

When you think you are ready to try a Flow Board REST API invocation you can start with a simple Confluence REST API invocation to verify the plumbing is hooked up correctly.  This will invoke a GET request to browse the content of your site:

```
curl --user <my username>:<my password> <http://<my> Base URL>/rest/api/content
```

base URL is something like: localhost:1990/confluence  
username is something like: admin

When you start testing you usage of the Flow Board REST APIs and you are viewing the board in a browser to verify results remember to refresh the page after you operate on an object using the API from curl or your REST client tool.  The refresh could be necessary to reload the JSON for the object you have modified.

# Flow Board REST APIs

There is no REST API to create a Board.

## Security

The REST APIs verify access is permitted to the resources being operated upon by the caller.  Some APIs are admin-only and those are identified as such.

## Version

Notice that there is an API version in the REST resource URLs.  This is the version of the REST API, not the version of the Flow Board application.  The REST API will work with any Flow Board version after 2.3.1, the version at the time this API document was created (Flow Board REST API version 1.0).

It is planned that the REST API will always be backwards compatible so that your custom solutions which use the REST API will continue to work for future versions of the API.


## Board APIs

#### get Board

**GET flowboard/1.0/boards/{boardId}**  


query parameters:  
expand - string - comma delimited list of properties to expand  
archived - boolean - default=false  
download - boolean - default=false  
format - string - default=json (other format support in the future like xml, xls, csv)

example:

```
curl --user <username>:<password> <http://<base URL>/rest/flowboard/1.0/boards/1
```

example output:

```
{"id":1,"name":"FB1","title":"Flow Board 1","description":"here is a description",
"pageId":917508,"created":1578614191438,"updated":1586193242938,
"lists":[{"id":5,"title":"My List 1","position":0,"created":1586193350939,"updated":1586193350939,"isArchived":false,"autoDueDateClear":false,"autoDueDateOffset":0,"autoDueDateOffsetUnits":null,"autoDueDateCompletion":"none","autoUnassign":null,"autoAssign":null,
"cards":[{"id":9,"title":"card 1:1","hasDescription":true,"position":0,"due":0,"completed":false,"created":1586193355063,"updated":1586193380581,"isArchived":false,"commentsCount":1,
"assignees":[{"id":"ff808081660a117f01660a129c2c0000","name":"admin","fullName":"admin","avatarUrl":"/images/icons/profilepics/default.svg"}]}]}],
"activities":[]}
```

---

#### **get Boards**

**GET <base URL>/rest/flowboard/1.0/boards**

query parameters:  
in - string - required: a comma delimited list of board IDs  
expand - string - comma delimited list of properties to expand  
archived - boolean - default=false

example:

```
curl --user <username>:<password> http://<base URL/rest/flowboard/1.0/boards?in=1,2
```

---

#### export Boards (admin)

**GET <base URL>/rest/flowboard/1.0/admin/boards**

Requires user to be admin.

query parameters:  
download - boolean - default=true  
format - string - default=json (other format support in the future like xml, xls, csv)

---

#### **update Board (admin)**

**POST <base URL>/rest/flowboard/1.0/admin/boards/{boardId}**

Requires user to be admin.  
Limited functionality: can only update PROPERTIES of the board (name, title, pageId, description).  See APIs for lists and cards to update content of a Board

example:

```
 curl --user <username>:<password> -X POST -H "Content-Type: application/json" -d"{"pageId":123456}" <http://<base URL>/rest/flowboard/1.0/admin/boards/1
```

---

#### **delete Board (admin)**

**DELETE <base URL>/rest/flowboard/1.0/admin/boards/{boardId}**

Requires user to be admin.  


---


## List APIs

#### **get List**

**GET <base URL>/rest/flowboard/1.0/lists/{listId}**


---

#### **create List**

**POST <base URL>/rest/flowboard/1.0/lists**


---

#### **update List**

**PUT <base URL>/rest/flowboard/1.0/lists/{listId}**


---

#### **order Lists**

**PUT <base URL>/rest/flowboard/1.0/lists/order**


---

#### **archive List**

**DELETE <base URL>/rest/flowboard/1.0/lists/{listId}**

  


---

#### **get archived Lists**

**GET<base URL>/rest/flowboard/1.0/boards/{boardId}/archived-lists**

  
query parameters:  
offset - int - default=0 pagination starting index  
limit - int - default=10

---

#### **unarchive List**

**POST <base URL>/rest/flowboard/1.0/boards/{boardId}/archived-lists/{listId}**


---

#### **delete archived List**

**DELETE <base URL>/rest/flowboard/1.0/boards/{boardId}/archived-lists/{listId}**


---

##   
Card APIs

#### **get Card**

**GET <base URL>/rest/flowboard/1.0/cards/{cardId}**

---

#### **create Card**

**POST <base URL>/rest/flowboard/1.0/cards**


---

#### **update Card**

**PUT <base URL>/rest/flowboard/1.0/cards/{cardId}**


---

**archive Card**

**DELETE <base URL>/rest/flowboard/1.0/cards/{cardId}**


---

#### **order Cards**

**PUT <base URL>/rest/flowboard/1.0/cards/order**


---

#### **get archived Cards**

**GET <base URL>/rest/flowboard/1.0/boards/{boardId}/archived-cards**

  
query parameters:  
offset - int - default=0  
limit - int - default=10

---

#### **unarchive Card**

**POST <base URL>/rest/flowboard/1.0/boards/{boardId}/archived-cards/{cardId}**


---

#### **delete archived Card**

**DELETE <base URL>/rest/flowboard/1.0/boards/{boardId}/archived-cards/{cardId}**

  


---

#### **get Card Comments**

use the get Card API 

---

#### **create Card Comment**

**POST <base URL>/rest/flowboard/1.0/cards/comments**

The body of the post contains the card ID and the comment content.

The comment content can be a plain string (legacy style) or a serialized document (type=quill or type=string).  Quill is the type of comment content that is created when  user enters a comment using the UI

Examples:

content as a serialized quill document, like a comment created by the UI:

```
{"content":"{\"type\":\"quill\",\"content\":{\"ops\":[{\"insert\":\"test\\n\"}]}}",
"cardId":3646}
```

content as a serialized plain text document:

```
{"content":"{\"type\":\"string\",\"content\":\"test\"}",
"cardId":3646}
```

content as string (legacy for support of Flow Board app version 1):

```
{"content":"test","cardId":3646}
```

---

#### **update Card Comment**

**PUT <base URL>/rest/flowboard/1.0/cards/comments**

See the API for create Card Comment for syntax of the body

---

#### **delete Card Comment**

**DELETE <base URL>/rest/flowboard/1.0/cards/comments/{commentId}**

Get the comment ID with the get Card API

---