> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.vapi.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.vapi.ai/_mcp/server.

# Get Boards

GET https://api.vapi.ai/reporting/board

Reference: https://docs.vapi.ai/api-reference/board/board-controller-find-all

## Authentication

- `Authorization` header (bearer token, required) — Authenticate server-side requests with a private Vapi API key. Create or copy a key from the [Vapi Dashboard](https://dashboard.vapi.ai) and send it in the `Authorization` header as `Bearer <token>`. Keep private API keys out of client-side code and public repositories.

## Request

### Query parameters

- `page` (double, optional) — This is the page number to return. Defaults to 1.
- `sortOrder` (enum, optional) — This is the sort order for pagination. Defaults to 'DESC'.
  - Allowed values: `ASC`, `DESC`
- `sortBy` (enum, optional) — This is the column to sort by. Defaults to 'createdAt'.
  - Allowed values: `createdAt`, `duration`, `cost`
- `limit` (double, optional) — This is the maximum number of items to return. Defaults to 100.
- `createdAtGt` (datetime, optional) — This will return items where the createdAt is greater than the specified value.
- `createdAtLt` (datetime, optional) — This will return items where the createdAt is less than the specified value.
- `createdAtGe` (datetime, optional) — This will return items where the createdAt is greater than or equal to the specified value.
- `createdAtLe` (datetime, optional) — This will return items where the createdAt is less than or equal to the specified value.
- `updatedAtGt` (datetime, optional) — This will return items where the updatedAt is greater than the specified value.
- `updatedAtLt` (datetime, optional) — This will return items where the updatedAt is less than the specified value.
- `updatedAtGe` (datetime, optional) — This will return items where the updatedAt is greater than or equal to the specified value.
- `updatedAtLe` (datetime, optional) — This will return items where the updatedAt is less than or equal to the specified value.

## Response

### 200

- `results` (list of Board, required)
- `metadata` (PaginationMeta, required) — Pagination and retention metadata returned with a paginated list of phone numbers.

## Types

### Board

- `id` (string, required) — This is the unique identifier for the Board.
- `orgId` (string, required) — This is the unique identifier for the org that this Board belongs to.
- `createdAt` (datetime, required) — This is the ISO 8601 date-time string of when the Board was created.
- `updatedAt` (datetime, required) — This is the ISO 8601 date-time string of when the Board was last updated.
- `name` (string, required) — This is the name of the Board.
- `layout` (BoardLayout, required) — This is the layout of the Board.
- `items` (list of BoardItemsItems, optional) — This is the contents of the Board, which is an array of objects defining the type, contents, and position of the widgets on the Board.
- `systemKey` (string, optional) — Server-owned key for system-provisioned boards. User create/update DTOs do not accept this field.
- `timeRangeOverride` (InsightTimeRangeWithStep, optional) — This is the timerange override for the board. By default, individual insights have their own timerange. This is a global override for the board which will be passed to all insights on the board.

### PaginationMeta

Pagination and retention metadata returned with a paginated list of phone numbers.

- `itemsPerPage` (double, required) — The number of phone numbers returned per page.
- `totalItems` (double, required) — The total number of phone numbers matching the request.
- `currentPage` (double, required) — The current page number.
- `totalPages` (double, optional)
- `hasNextPage` (boolean, optional)
- `nextCursor` (string, optional) — Opaque cursor for the next page under keyset pagination (PRO-3163). Pass it back as the `cursor` query param to fetch the next page without an OFFSET scan. Present only when a further page likely exists.
- `sortOrder` (enum, optional)
  - Allowed values: `ASC`, `DESC`
- `itemsBeyondRetention` (boolean, optional) — Whether additional matching phone numbers exist beyond the organization's data-retention window.
- `createdAtLe` (datetime, optional) — The inclusive upper creation-time boundary applied to the result set.
- `createdAtGe` (datetime, optional) — The inclusive lower creation-time boundary applied to the result set.

### BoardLayout

- `columns` (double, required) — This is the number of columns in the Board. For now, it is fixed to 6.

### BoardItemsItems

### InsightTimeRangeWithStep

Start, end, timezone, and aggregation step used for a time-series insight query.

- `step` (enum, optional) — This is the group by step for aggregation. If not provided, defaults to group by day.
  - Allowed values: `minute`, `hour`, `day`, `week`, `month`, `quarter`, `year`
- `start` (InsightTimeRangeWithStepStart, optional) — This is the start date for the time range. Should be a valid ISO 8601 date-time string or relative time string. If not provided, defaults to the 7 days ago. Relative time strings of the format "-\{number}\{unit}" are allowed. Valid units are: * d: days * h: hours * w: weeks * m: months * y: years
- `end` (InsightTimeRangeWithStepEnd, optional) — This is the end date for the time range. Should be a valid ISO 8601 date-time string or relative time string. If not provided, defaults to now. Relative time strings of the format "-\{number}\{unit}" are allowed. Valid units are: * d: days * h: hours * w: weeks * m: months * y: years
- `timezone` (string, optional) — This is the timezone you want to set for the query. If not provided, defaults to UTC.

### BoardInsightItem

- `type` (enum, required)
  - Allowed values: `insight`
- `insightId` (string, required)
- `position` (BoardItemPosition, required)
- `size` (BoardItemSize, required)
- `systemKey` (string, optional)

### BoardMetricWidgetItem

- `type` (enum, required)
  - Allowed values: `failed_calls_list`, `concurrency_chart`, `average_cost_breakdown_chart`
- `position` (BoardItemPosition, required)
- `size` (BoardItemSize, required)
- `insightId` (string, optional)
- `systemKey` (string, optional)

### InsightTimeRangeWithStepStart

This is the start date for the time range. Should be a valid ISO 8601 date-time string or relative time string. If not provided, defaults to the 7 days ago. Relative time strings of the format "-\{number}\{unit}" are allowed. Valid units are: * d: days * h: hours * w: weeks * m: months * y: years

### InsightTimeRangeWithStepEnd

This is the end date for the time range. Should be a valid ISO 8601 date-time string or relative time string. If not provided, defaults to now. Relative time strings of the format "-\{number}\{unit}" are allowed. Valid units are: * d: days * h: hours * w: weeks * m: months * y: years

### BoardItemPosition

- `x` (double, required)
- `y` (double, required)

### BoardItemSize

- `width` (double, required)
- `height` (double, required)

## Examples

**Response**

```json
{
  "results": [
    {
      "id": "string",
      "orgId": "string",
      "createdAt": "2024-01-15T09:30:00Z",
      "updatedAt": "2024-01-15T09:30:00Z",
      "name": "string",
      "layout": {
        "columns": 6
      },
      "items": [
        {
          "insightId": "string",
          "position": {
            "x": 1.1,
            "y": 1.1
          },
          "size": {
            "height": 1.1,
            "width": 1.1
          },
          "systemKey": "string",
          "type": "insight"
        }
      ],
      "systemKey": "string",
      "timeRangeOverride": {
        "step": "minute",
        "start": "\"2025-01-01\" or \"-7d\" or \"now\"",
        "end": "\"2025-01-01\" or \"now\"",
        "timezone": "string"
      }
    }
  ],
  "metadata": {
    "itemsPerPage": 1.1,
    "totalItems": 1.1,
    "currentPage": 1.1,
    "totalPages": 1.1,
    "hasNextPage": true,
    "nextCursor": "string",
    "sortOrder": "ASC",
    "itemsBeyondRetention": true,
    "createdAtLe": "2024-01-15T09:30:00Z",
    "createdAtGe": "2024-01-15T09:30:00Z"
  }
}
```