> ## Documentation Index
> Fetch the complete documentation index at: https://www.adaline.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Dataset rows

# DatasetRowsClient

`adaline.datasets.rows` works with individual rows inside a dataset — list them, add new ones in batch, patch a single row's cell values, or delete a row.

## Access

```typescript theme={null}
import { Adaline } from '@adaline/client';

const adaline = new Adaline();
const rows = adaline.datasets.rows; // DatasetRowsClient
```

The class is also exported directly:

```typescript theme={null}
import { DatasetRowsClient } from '@adaline/client';
```

Types from `@adaline/api`:

```typescript theme={null}
import type {
  DatasetRow,
  DatasetRowInput,
  AddDatasetRowsResponse,
  ListDatasetRowsResponse,
  SortOrder,
} from '@adaline/api';
```

***

## list()

List rows in a dataset (paginated). Use `columns` to narrow which column values are returned — useful for large cell payloads.

```typescript theme={null}
list(options: {
  datasetId: string;
  columns?: string;
  sort?: SortOrder;
  createdAfter?: number;
  createdBefore?: number;
  limit?: number;
  cursor?: string;
}): Promise<ListDatasetRowsResponse>
```

### Parameters

| Name            | Type        | Required | Description                                                      |
| --------------- | ----------- | -------- | ---------------------------------------------------------------- |
| `datasetId`     | `string`    | Yes      | Dataset identifier.                                              |
| `columns`       | `string`    | No       | Comma-separated list of column IDs or names. Omit to return all. |
| `sort`          | `SortOrder` | No       | `"createdAt:asc"` or `"createdAt:desc"`.                         |
| `createdAfter`  | `number`    | No       | Unix milliseconds.                                               |
| `createdBefore` | `number`    | No       | Unix milliseconds.                                               |
| `limit`         | `number`    | No       | Page size (default 50, max 200).                                 |
| `cursor`        | `string`    | No       | Cursor from a previous response.                                 |

### Returns

`Promise<ListDatasetRowsResponse>` with `{ data: DatasetRow[]; pagination: Pagination }`. Each `DatasetRow.values` is a map of column ID → cell value.

### Example

```typescript theme={null}
const { data, pagination } = await adaline.datasets.rows.list({
  datasetId: 'dataset_abc123',
  columns: 'question,expected',
  sort: 'createdAt:desc',
  limit: 100,
});
```

***

## create()

Create one or more rows in a single batch (up to 100). Use `valuesBy` to control whether the keys inside each row's `values` object are column IDs or column names.

```typescript theme={null}
create(options: {
  datasetId: string;
  valuesBy?: 'columnId' | 'columnName';
  rows: DatasetRowInput[];
}): Promise<AddDatasetRowsResponse>
```

### Parameters

| Name        | Type                         | Required | Description                                                                               |
| ----------- | ---------------------------- | -------- | ----------------------------------------------------------------------------------------- |
| `datasetId` | `string`                     | Yes      | Dataset identifier.                                                                       |
| `valuesBy`  | `'columnId' \| 'columnName'` | No       | How the keys inside each row's `values` object are interpreted. Defaults to `"columnId"`. |
| `rows`      | `DatasetRowInput[]`          | Yes      | Array of row definitions, each with a `values` map.                                       |

### Returns

`Promise<AddDatasetRowsResponse>` with `{ rows: DatasetRow[] }` — the newly created rows with server-assigned IDs.

### Example

```typescript theme={null}
const { rows } = await adaline.datasets.rows.create({
  datasetId: 'dataset_abc123',
  valuesBy: 'columnName',
  rows: [
    { values: { question: 'How do I reset my password?', expected: 'Link to password reset flow' } },
    { values: { question: 'How do I cancel my plan?', expected: 'Link to billing settings' } },
  ],
});

console.log(`Inserted ${rows.length} rows`);
```

***

## update()

Update the cell values on a single row. Cell values you don't include are left untouched.

```typescript theme={null}
update(options: {
  datasetId: string;
  rowId: string;
  valuesBy?: 'columnId' | 'columnName';
  row: DatasetRowInput;
}): Promise<DatasetRow>
```

### Returns

`Promise<DatasetRow>` — the updated row.

### Example

```typescript theme={null}
await adaline.datasets.rows.update({
  datasetId: 'dataset_abc123',
  rowId: 'row_def456',
  valuesBy: 'columnName',
  row: { values: { expected: 'Updated expected answer' } },
});
```

***

## delete()

Delete a single row from a dataset. Irreversible.

```typescript theme={null}
delete(options: { datasetId: string; rowId: string }): Promise<void>
```

### Example

```typescript theme={null}
await adaline.datasets.rows.delete({
  datasetId: 'dataset_abc123',
  rowId: 'row_def456',
});
```

***

## See Also

* [DatasetsClient](/docs/reference/sdk/v2/typescript/classes/datasets) — parent client
* [DatasetColumnsClient](/docs/reference/sdk/v2/typescript/classes/dataset-columns) — sibling sub-client for columns
* API reference: [Get rows](/docs/reference/api/v2/openapi/get-dataset-rows) · [Add rows](/docs/reference/api/v2/openapi/add-dataset-rows) · [Update row](/docs/reference/api/v2/openapi/update-dataset-row) · [Delete row](/docs/reference/api/v2/openapi/delete-dataset-row)
