# List boards

> GET /boards

Source: https://mockflow.com/developers/reference/boards/list-boards

**GET** `https://api.mockflow.com/v1/boards`  
Scopes: `boards:read`

**curl**

```bash
curl https://api.mockflow.com/v1/boards \
  -H "Authorization: Bearer $MOCKFLOW_API_KEY"
```

**JavaScript**

```javascript
const response = await fetch("https://api.mockflow.com/v1/boards", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.MOCKFLOW_API_KEY}`
  }
});

const data = await response.json();
```

**Python**

```python
import os, requests

response = requests.get(
    "https://api.mockflow.com/v1/boards",
    headers={"Authorization": f"Bearer {os.environ['MOCKFLOW_API_KEY']}"},
)

response.raise_for_status()
data = response.json()
```

**200**

```json
{
  "nextCursor": "string",
  "hasMore": false,
  "data": [
    {
      "id": "brd_3f9e2a",
      "title": "Q4 Launch Planning",
      "spaceId": "spc_92kd",
      "url": "https://app.mockflow.com/board/3f9e2a",
      "publicUrl": "https://app.mockflow.com/board/brd_3f9e2a",
      "role": "owner"
    }
  ]
}
```

**429**

```json
{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests.",
    "docsUrl": "https://mockflow.com/developers/concepts/errors#rate_limited"
  },
  "requestId": "req_45d49816999bac40"
}
```

Boards the token can read: the workspace's own, boards shared with the person, and boards in spaces shared with them. Inside a space the default order is the dashboard's manual order; otherwise most recently updated first. `deleted=true` lists the workspace's own trash.

### Authorization

- `Authorization` (string, required): `Bearer <key>`. The key needs `boards:read` scope. Create and manage keys in the [developer console](/developers/console/); what each scope unlocks is on the [scopes page](/developers/concepts/scopes).

### Query parameters

- `spaceId` (string): A space id, or `default` for boards in no space.
- `q` (string): Match against the title.
- `deleted` (boolean): Defaults to `false`.
- `sort` (enum<string>): One of `position`, `updatedAt`, `createdAt` or `title`.
- `order` (enum<string>): One of `asc` or `desc`.
- `cursor` (string): Opaque cursor from a previous response's `nextCursor`.
- `limit` (integer): Defaults to `50`.

### Response

- `nextCursor` (string | null)
- `hasMore` (boolean)
- `data` (Board[]): - `id` (string)
  - `title` (string)
  - `spaceId` (string | null): The design space, or null for the default space.
  - `url` (string): Opens the board in the editor.
  - `publicUrl` (string | null): The public viewer link, when the public link is on.
  - `role` (enum<string>): The product's roles. Owner is the workspace that holds the board or space and cannot be granted or transferred. Admin can rename and share, editor can edit, reviewer can view, export and add comment items. There is no viewer role and no pending state. One of `owner`, `admin`, `editor` or `reviewer`.
  - `locked` (boolean): Locked boards are read only for everyone.
  - `position` (integer | null): Manual order inside the space, lowest first.
  - `createdBy` (string)
  - `createdAt` (string)
  - `updatedAt` (string)
  - `deletedAt` (string | null): Set while the board is in the trash.

### Errors

- 429 `rate_limited`: Too many requests.
