---
title: "Read a dataset's rows by page (query offset, limit); secret columns are never returned."
method: GET
path: "/v1/datasets/{id}/rows"
---

# Read a dataset's rows by page (query offset, limit); secret columns are never returned.

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

## Request

- Base URL: `http://127.0.0.1:10108`
- URL: `http://127.0.0.1:10108/v1/datasets/{id}/rows`
- Auth: HTTP bearer

Returns one page of the dataset's rows with their state and owning profile; query `offset` and `limit` (default 100). Secret columns are left out of every row.

## Path parameters

- `id` string, required

## Response `200`

One page of rows. Secret columns are absent from `values`, not empty.

- object
  - `datasetId` string, uuid, required
  - `offset` integer, required
  - `rows` object[], required
    - `id` string, uuid, required
    - `index` integer, required
    - `profileId` string, uuid, nullable, required
    - `runId` string, uuid, nullable, required
    - `state` 'available' | 'reserved' | 'used' | 'null', nullable, required
    - `usedAt` string, nullable, required
    - `values` object, required
  - `total` integer, required

## Other responses

- `400`: The id is not a uuid, or a query parameter is unknown or not a non-negative integer.
- `401`: No bearer token, or not a token this app issued. The body is empty: it never says which.
- `403`: Refused by the plan: it no longer includes the local API (checked on every request), or it does not allow this action (profile or schedule limit, parallel runs). A request whose Host header is not loopback is also 403, with an empty body.
- `404`: No dataset with this id.
- `500`: Veilus failed: storage could not be read or written, or a task panicked. The message says what failed; retrying rarely helps.

---

[API](https://skmtc.dev/veilus/apis/veilus-local-api.md) · [All operations](https://skmtc.dev/veilus/apis/veilus-local-api/llms.txt) · [OpenAPI document](https://skmtc.dev/veilus/apis/veilus-local-api/revisions/67ac3818f9d2?raw)
