# The board's structure

> GET /boards/{boardId}/structure

Source: https://mockflow.com/developers/reference/boards/get-board-structure

**GET** `https://api.mockflow.com/v1/boards/{boardId}/structure`  
Scopes: `boards:read`

**curl**

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

**JavaScript**

```javascript
const response = await fetch("https://api.mockflow.com/v1/boards/brd_3f9e2a/structure", {
  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/brd_3f9e2a/structure",
    headers={"Authorization": f"Bearer {os.environ['MOCKFLOW_API_KEY']}"},
)

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

**200**

```json
{
  "boardId": "brd_3f9e2a",
  "title": "Q4 Launch Planning",
  "counts": {},
  "sections": [
    {
      "id": "string",
      "title": "Q4 Launch Planning",
      "position": {
        "x": 0,
        "y": 0
      },
      "size": {
        "width": 0,
        "height": 0
      },
      "counts": {},
      "children": [
        {
          "id": "string",
          "type": "string",
          "title": "Q4 Launch Planning",
          "text": "Interview 5 users"
        }
      ]
    }
  ],
  "standalone": [
    {
      "id": "string",
      "type": "string",
      "title": "Q4 Launch Planning",
      "text": "Interview 5 users"
    }
  ],
  "groups": [
    {
      "id": "string",
      "itemIds": [
        "string"
      ]
    }
  ]
}
```

**429**

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

The machine view behind the outline. Sections by geometry with their items and per-type counts, groups, and connector edges with labels.

### 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).

### Path parameters

- `boardId` (string, required)

### Response

- `boardId` (string)
- `title` (string)
- `counts` (object)
- `sections` (object[]): - `id` (string)
  - `title` (string)
  - `position` (Point)
  - `size` (Size)
  - `counts` (object)
  - `children` (OutlineNode[])
- `standalone` (OutlineNode[]): - `id` (string)
  - `type` (string)
  - `title` (string)
  - `text` (string)
- `groups` (object[]): - `id` (string)
  - `itemIds` (string[])
- `edges` (object[]): - `id` (string)
  - `from` (string | null)
  - `to` (string | null)
  - `fromTitle` (string | null)
  - `toTitle` (string | null)
  - `directed` (boolean)
  - `label` (string)

### Errors

- 429 `rate_limited`: Too many requests.
