# table.list_rows

Read a board as a flat table of rows

GET /boards/{boardId}/table — answers 200

MCP tool: table_list_rows

Scope: applications:read. Kind: read. Acts on: both.

Returns every application on a board as one flat row per application, with a value for each of the twenty-five columns the spreadsheet view shows and no nesting. Reach for this over `applications.list` when you want to scan, compare or bulk-edit a whole board; `table.apply_edits` writes cells back. Sort with `sort` naming a column and `direction`; empty cells sort last either way. Staff of an organization the board is shared with may read it — without the pay amounts, which a share does not expose — and a board this credential cannot read answers 404.

Path and query parameters: boardId, sort, direction, limit, cursor

Example — The first page of a board, newest applications first

Request:

```json
{"boardId":"brd_7","sort":"createdAt","direction":"desc"}
```

Response:

```json
{
  "data": [
    {
      "id": "app_123",
      "title": "Staff Engineer",
      "companyName": "Acme",
      "status": "applied",
      "applicationDate": "2026-02-01T00:00:00.000Z",
      "source": "LinkedIn",
      "workMode": "remote",
      "workType": "full_time",
      "payAmount": 210000,
      "payFrequency": "annually",
      "salaryRangeMin": null,
      "salaryRangeMax": null,
      "city": "Chicago",
      "state": "Illinois",
      "country": "United States",
      "companyIndustry": "technology",
      "companySize": null,
      "companyType": null,
      "companyWebsite": null,
      "companyLinkedin": null,
      "applicationLink": null,
      "description": null,
      "notes": null,
      "interviewCount": 1,
      "createdAt": "2026-02-01T09:30:00.000Z",
      "updatedAt": "2026-02-11T17:05:00.000Z"
    }
  ],
  "hasMore": false,
  "nextCursor": null
}
```