# Read a page of a board's rows

One page of a custom board's rows, narrowed by the service exactly as `get_definitions_key_rows` narrows a pack page: `q` searches every cell, `filter[<columnId>]` (repeatable) keeps rows whose cell is one of the values, `sort` + `dir` order by a stored column, `limit` (default 200 when narrowed, at most 1000) and `offset` page. Answers `{data: rows, page: {total, limit, offset}}` where `total` is the whole narrowing's count. A filter or sort on a formula or lookup column is refused — read the board whole with `get_boards_id`. Read access on the board; a member on the assigned rung sees only the rows filed on them.

Access class: `board:read`.

## Endpoint

`GET /v1/boards/{id}/rows`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| id | path | string | Yes |
| body | query | null | No |
| params | query | object | No |
| query | query | object | No |

## Responses

### 200

the action's answer

Content type: `application/json`.

```json
{
  "data": [
    {
      "cells": {
        "<uuid-5>": "string"
      },
      "createdBy": "string",
      "id": "",
      "position": 1.5
    }
  ],
  "page": {
    "limit": 1.5,
    "offset": 1.5,
    "total": 1.5
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
