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

## Access

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

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

The class is also exported directly for dependency injection or testing:

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

## Sub-clients

`DatasetsClient` exposes two nested namespaces:

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

Types used below come from `@adaline/api`:

```typescript theme={null}
import type {
  Dataset,
  DatasetSummary,
  CreateDatasetRequest,
  UpdateDatasetRequest,
  ListDatasetsResponse,
  SortOrder,
} from '@adaline/api';
```

***

## list()

List datasets in a project (paginated).

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

### Parameters

| Name            | Type        | Required | Description                                                        |
| --------------- | ----------- | -------- | ------------------------------------------------------------------ |
| `projectId`     | `string`    | Yes      | Project whose datasets should be returned.                         |
| `sort`          | `SortOrder` | No       | `"createdAt:asc"` or `"createdAt:desc"`.                           |
| `createdAfter`  | `number`    | No       | Unix milliseconds. Keep only datasets created after this instant.  |
| `createdBefore` | `number`    | No       | Unix milliseconds. Keep only datasets created before this instant. |
| `limit`         | `number`    | No       | Page size (default 50, max 200).                                   |
| `cursor`        | `string`    | No       | Opaque cursor from a previous response's `pagination.nextCursor`.  |

### Returns

`Promise<ListDatasetsResponse>` with shape `{ data: DatasetSummary[]; pagination: { limit, returned, hasMore, nextCursor } }`.

### Example

```typescript theme={null}
const { data, pagination } = await adaline.datasets.list({
  projectId: 'project_abc123',
  sort: 'createdAt:desc',
  limit: 50,
});

for (const dataset of data) {
  console.log(dataset.id, dataset.title);
}

if (pagination.hasMore) {
  const next = await adaline.datasets.list({
    projectId: 'project_abc123',
    cursor: pagination.nextCursor,
  });
}
```

***

## create()

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

```typescript theme={null}
create(options: { dataset: CreateDatasetRequest }): Promise<Dataset>
```

### Parameters

| Name      | Type                                                               | Required | Description         |
| --------- | ------------------------------------------------------------------ | -------- | ------------------- |
| `dataset` | [`CreateDatasetRequest`](/docs/reference/api/v2/openapi/create-dataset) | Yes      | Dataset definition. |

[`CreateDatasetRequest`](/docs/reference/api/v2/openapi/create-dataset) shape (abbreviated):

```typescript theme={null}
interface CreateDatasetRequest {
  projectId: string;
  title: string;
  icon?: BaseEntityIcon;
  columns?: Array<{
    name: string;
    type: 'input' | 'output' | 'metadata' | /* dynamic types */;
    settings?: Record<string, unknown>;
  }>;
}
```

### Returns

`Promise<Dataset>` — the created dataset with every column assigned a server-generated `id`.

### Example

```typescript theme={null}
const dataset = await adaline.datasets.create({
  dataset: {
    projectId: 'project_abc123',
    title: 'Support triage eval set',
    icon: { type: 'emoji', value: '📚' },
    columns: [
      { name: 'question', type: 'input' },
      { name: 'expected', type: 'input' },
    ],
  },
});

console.log(`Created ${dataset.id} with ${dataset.columns.length} columns`);
```

***

## get()

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

```typescript theme={null}
get(options: { datasetId: string }): Promise<Dataset>
```

### Parameters

| Name        | Type     | Required | Description         |
| ----------- | -------- | -------- | ------------------- |
| `datasetId` | `string` | Yes      | Dataset identifier. |

### Returns

`Promise<Dataset>` — see the [Get dataset API schema](/docs/reference/api/v2/openapi/get-dataset).

### Example

```typescript theme={null}
const dataset = await adaline.datasets.get({ datasetId: 'dataset_abc123' });

for (const column of dataset.columns) {
  console.log(column.name, column.type);
}
```

***

## update()

Update dataset-level metadata (title, icon).

```typescript theme={null}
update(options: {
  datasetId: string;
  dataset: UpdateDatasetRequest;
}): Promise<DatasetSummary>
```

### Parameters

| Name        | Type                                                               | Required | Description         |
| ----------- | ------------------------------------------------------------------ | -------- | ------------------- |
| `datasetId` | `string`                                                           | Yes      | Dataset identifier. |
| `dataset`   | [`UpdateDatasetRequest`](/docs/reference/api/v2/openapi/update-dataset) | Yes      | Fields to update.   |

### Returns

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

### Example

```typescript theme={null}
await adaline.datasets.update({
  datasetId: 'dataset_abc123',
  dataset: { title: 'Renamed dataset' },
});
```

***

## delete()

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

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

### Example

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

***

## See Also

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