> ## 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. Every method is async.

## Access

```python theme={null}
from adaline.main import Adaline

adaline = Adaline()
rows = adaline.datasets.rows  # DatasetRowsClient
```

The class is also exported directly:

```python theme={null}
from adaline.clients import DatasetRowsClient
```

Types from `adaline_api`:

```python theme={null}
from adaline_api.models.dataset_row import DatasetRow
from adaline_api.models.dataset_row_input import DatasetRowInput
from adaline_api.models.add_dataset_rows_response import AddDatasetRowsResponse
from adaline_api.models.list_dataset_rows_response import ListDatasetRowsResponse
```

***

## list()

List rows in a dataset (paginated).

```python theme={null}
async def list(
    *,
    dataset_id: str,
    columns: Optional[str] = None,
    sort: Optional[SortOrderInput] = None,
    created_after: Optional[int] = None,
    created_before: Optional[int] = None,
    limit: Optional[int] = None,
    cursor: Optional[str] = None,
) -> ListDatasetRowsResponse
```

### Parameters

| Name                               | Type                       | Required | Description                                              |
| ---------------------------------- | -------------------------- | -------- | -------------------------------------------------------- |
| `dataset_id`                       | `str`                      | Yes      | Dataset identifier.                                      |
| `columns`                          | `Optional[str]`            | No       | Comma-separated column IDs or names. Omit to return all. |
| `sort`                             | `Optional[SortOrderInput]` | No       | Sort order.                                              |
| `created_after` / `created_before` | `Optional[int]`            | No       | Unix millisecond bounds.                                 |
| `limit`                            | `Optional[int]`            | No       | Page size (default 50, max 200).                         |
| `cursor`                           | `Optional[str]`            | No       | Cursor from a previous response.                         |

### Returns

[`ListDatasetRowsResponse`](/docs/reference/api/v2/openapi/get-dataset-rows) with `{ data: list[DatasetRow]; pagination: Pagination }`.

### Example

```python theme={null}
response = await adaline.datasets.rows.list(
    dataset_id="dataset_abc123",
    columns="question,expected",
    sort="createdAt:desc",
    limit=100,
)
```

***

## create()

Create one or more rows in a single batch (up to 100).

```python theme={null}
async def create(
    *,
    dataset_id: str,
    rows: List[DatasetRowInput],
    values_by: Optional[str] = None,  # "columnId" or "columnName"
) -> AddDatasetRowsResponse
```

### Parameters

| Name         | Type                    | Required | Description                                |
| ------------ | ----------------------- | -------- | ------------------------------------------ |
| `dataset_id` | `str`                   | Yes      | Dataset identifier.                        |
| `rows`       | `List[DatasetRowInput]` | Yes      | Row definitions, each with a `values` map. |
| `values_by`  | `Optional[str]`         | No       | `"columnId"` (default) or `"columnName"`.  |

### Returns

[`AddDatasetRowsResponse`](/docs/reference/api/v2/openapi/add-dataset-rows) with `{ rows: list[DatasetRow] }`.

### Example

```python theme={null}
from adaline_api.models.dataset_row_input import DatasetRowInput

response = await adaline.datasets.rows.create(
    dataset_id="dataset_abc123",
    values_by="columnName",
    rows=[
        DatasetRowInput(values={"question": "How do I reset my password?", "expected": "Link to reset"}),
        DatasetRowInput(values={"question": "How do I cancel my plan?", "expected": "Link to billing"}),
    ],
)

print(f"Inserted {len(response.rows)} rows")
```

***

## update()

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

```python theme={null}
async def update(
    *,
    dataset_id: str,
    row_id: str,
    row: DatasetRowInput,
    values_by: Optional[str] = None,
) -> DatasetRow
```

### Example

```python theme={null}
from adaline_api.models.dataset_row_input import DatasetRowInput

await adaline.datasets.rows.update(
    dataset_id="dataset_abc123",
    row_id="row_def456",
    values_by="columnName",
    row=DatasetRowInput(values={"expected": "Updated expected answer"}),
)
```

***

## delete()

Delete a single row from a dataset.

```python theme={null}
async def delete(*, dataset_id: str, row_id: str) -> None
```

***

## See Also

* [DatasetsClient](/docs/reference/sdk/v2/python/classes/datasets) — parent client
* [DatasetColumnsClient](/docs/reference/sdk/v2/python/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)
