> ## 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.

# Datasets

# DatasetsClient

`adaline.datasets` manages datasets as a whole — create a dataset, look up metadata and columns, rename, or delete. Row-level and column-level operations live on the nested `.rows` and `.columns` sub-clients. Every method is async.

## Access

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

adaline = Adaline()
datasets = adaline.datasets  # DatasetsClient
```

The class is also exported directly:

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

## Sub-clients

`DatasetsClient` exposes two nested namespaces:

| Attribute                  | Client                                                                     | Covers                                                                        |
| -------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| `adaline.datasets.rows`    | [`DatasetRowsClient`](/docs/reference/sdk/v2/python/classes/dataset-rows)       | List / create / update / delete dataset rows                                  |
| `adaline.datasets.columns` | [`DatasetColumnsClient`](/docs/reference/sdk/v2/python/classes/dataset-columns) | Create / update / delete columns + `fetch_dynamic` to resolve dynamic columns |

Types from `adaline_api`:

```python theme={null}
from adaline_api.models.dataset import Dataset
from adaline_api.models.dataset_summary import DatasetSummary
from adaline_api.models.create_dataset_request import CreateDatasetRequest
from adaline_api.models.update_dataset_request import UpdateDatasetRequest
from adaline_api.models.list_datasets_response import ListDatasetsResponse
```

***

## list()

List datasets in a project (paginated).

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

### Parameters

| Name             | Type                       | Required | Description                                                        |
| ---------------- | -------------------------- | -------- | ------------------------------------------------------------------ |
| `project_id`     | `str`                      | Yes      | Project whose datasets should be returned.                         |
| `sort`           | `Optional[SortOrderInput]` | No       | `"createdAt:asc"` or `"createdAt:desc"`.                           |
| `created_after`  | `Optional[int]`            | No       | Unix milliseconds.                                                 |
| `created_before` | `Optional[int]`            | No       | Unix milliseconds.                                                 |
| `limit`          | `Optional[int]`            | No       | Page size (default 50, max 200).                                   |
| `cursor`         | `Optional[str]`            | No       | Opaque cursor from a previous response's `pagination.next_cursor`. |

### Returns

[`ListDatasetsResponse`](/docs/reference/api/v2/openapi/list-datasets) with `{ data: list[DatasetSummary]; pagination: Pagination }`.

### Example

```python theme={null}
response = await adaline.datasets.list(
    project_id="project_abc123",
    sort="createdAt:desc",
    limit=50,
)

for dataset in response.data:
    print(dataset.id, dataset.title)
```

***

## create()

Create a new dataset. You can seed initial columns in the same call.

```python theme={null}
async def create(*, dataset: CreateDatasetRequest) -> Dataset
```

### Parameters

| Name      | Type                                                               | Required | Description                                                                              |
| --------- | ------------------------------------------------------------------ | -------- | ---------------------------------------------------------------------------------------- |
| `dataset` | [`CreateDatasetRequest`](/docs/reference/api/v2/openapi/create-dataset) | Yes      | Dataset definition — `project_id`, `title`, optional `icon`, optional initial `columns`. |

### Returns

[`Dataset`](/docs/reference/api/v2/openapi/get-dataset) — the created dataset with every column assigned a server-generated `id`.

### Example

```python theme={null}
from adaline_api.models.create_dataset_request import CreateDatasetRequest

dataset = await adaline.datasets.create(
    dataset=CreateDatasetRequest(
        project_id="project_abc123",
        title="Support triage eval set",
        icon={"type": "emoji", "value": "📚"},
        columns=[
            {"name": "question", "type": "input"},
            {"name": "expected", "type": "input"},
        ],
    )
)

print(f"Created {dataset.id} with {len(dataset.columns)} columns")
```

***

## get()

Fetch a single dataset (metadata + full column list, not rows).

```python theme={null}
async def get(*, dataset_id: str) -> Dataset
```

### Parameters

| Name         | Type  | Required | Description         |
| ------------ | ----- | -------- | ------------------- |
| `dataset_id` | `str` | Yes      | Dataset identifier. |

### Example

```python theme={null}
dataset = await adaline.datasets.get(dataset_id="dataset_abc123")

for column in dataset.columns:
    print(column.name, column.type)
```

***

## update()

Update dataset-level metadata (title, icon).

```python theme={null}
async def update(
    *,
    dataset_id: str,
    dataset: UpdateDatasetRequest,
) -> DatasetSummary
```

### Returns

[`DatasetSummary`](/docs/reference/api/v2/openapi/list-datasets) — the updated dataset metadata (returns the summary shape, not the full [`Dataset`](/docs/reference/api/v2/openapi/get-dataset) with columns).

### Example

```python theme={null}
from adaline_api.models.update_dataset_request import UpdateDatasetRequest

await adaline.datasets.update(
    dataset_id="dataset_abc123",
    dataset=UpdateDatasetRequest(title="Renamed dataset"),
)
```

***

## delete()

Permanently delete a dataset and all of its columns and rows. Irreversible.

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

***

## See Also

* [DatasetRowsClient](/docs/reference/sdk/v2/python/classes/dataset-rows)
* [DatasetColumnsClient](/docs/reference/sdk/v2/python/classes/dataset-columns)
* [Adaline class](/docs/reference/sdk/v2/python/classes/adaline)
* [PromptEvaluationsClient](/docs/reference/sdk/v2/python/classes/prompt-evaluations) — run evaluations against a dataset
* API reference: [List datasets](/docs/reference/api/v2/openapi/list-datasets) · [Create](/docs/reference/api/v2/openapi/create-dataset) · [Get](/docs/reference/api/v2/openapi/get-dataset) · [Update](/docs/reference/api/v2/openapi/update-dataset) · [Delete](/docs/reference/api/v2/openapi/delete-dataset)
