EvaluationDatasets
Manage Datasets
Create, list, and manage datasets from the dashboard, SDK, or API.
Manage Datasets
You can manage datasets from the Dashboard UI, the SDK (TypeScript, Python, Java), or the REST API.
From the Dashboard
View Datasets

Navigate to Datasets in the left sidebar.
The dataset list shows one row per dataset with these columns:
| Column | Description |
|---|---|
| Name | Dataset name (click to open detail page) |
| Items | Number of items in the dataset |
| Runs | Number of dataset runs |
| Created | Creation date |
| Last Run | Date of the most recent run |
Use the search bar to filter datasets by name. Pagination defaults to 50 rows per page.
Create a Dataset
Click New Dataset in the top-right of the Datasets page.
Fill in the form:
- Name (required) — unique dataset name
- Description (optional) — free-form notes about the dataset
- Metadata (optional) — JSON key-value pairs for custom metadata
Click Create dataset. You'll be taken to the new dataset's detail page.
Dataset Detail Page
Click any dataset name to open its detail page. The page has three tabs:
- Items — view, add, import, and manage dataset items (see Dataset Items)
- Runs — view and create dataset runs (see Dataset Runs)
- Linked Experiments — experiments that reference this dataset
Dataset Actions
Click the more menu (three dots) on the dataset detail page for:
- Rename — update the dataset name and description
- Duplicate Dataset — create a copy of the entire dataset with all items
- Delete — permanently remove the dataset and all its items
From the SDK
Setup
import { AISDK } from '@browserstack/ai-sdk';
const testOps = new AISDK({
publicKey: process.env.AISDK_PUBLIC_KEY,
secretKey: process.env.AISDK_SECRET_KEY,
});
const datasets = testOps.datasets; // DatasetsClient
const datasetRuns = testOps.datasetRuns; // DatasetRunsimport os
from browserstack_ai_sdk import AISDK
client = AISDK(
public_key=os.environ["AISDK_PUBLIC_KEY"],
secret_key=os.environ["AISDK_SECRET_KEY"],
)
datasets = testOps.datasets; # datasets clientimport com.browserstack.aisdk.TestOps;
import com.browserstack.aisdk.eval.DatasetsClient;
import com.browserstack.aisdk.eval.model.*;
TestOps sdk = TestOps.fromEnv();
DatasetsClient datasets = sdk.datasets();Create a Dataset
const dataset = await datasets.create(
'qa-golden-set',
'Golden set for QA evaluation',
{ owner: 'ml-team', version: '1.0' } // optional metadata
);
console.log(dataset.id); // dataset ID
console.log(dataset.name); // 'qa-golden-set'dataset = client.datasets.create(
name="qa-dataset-v1",
description="Question-answer pairs for RAG evaluation",
metadata='{"domain": "customer-support"}',
)
print(dataset)// Name only
DatasetResponse ds = datasets.create("my-dataset");
// With description
DatasetResponse ds = datasets.create("my-dataset", "Questions about Northern Lights");
// With metadata
DatasetResponse ds = datasets.create(
"my-dataset",
"Questions about Northern Lights",
Map.of("team", "nlp", "domain", "science")
);
System.out.println("Created: " + ds.getId() + " — " + ds.getName());List Datasets
const result = await datasets.list(
1, // page (1-indexed)
20, // limit per page
'qa' // optional name filter
);
for (const ds of result.data) {
console.log(ds.id, ds.name);
}result = client.datasets.list(page=1, limit=20)
for dataset in result["data"]:
print(f"{dataset.get('name')}: {dataset.get('id')}")Filter by name:
datasets = client.datasets.list(name="qa-dataset-v1")// Default (page 1, limit 50)
ListDatasetsResponse list = datasets.list();
// With pagination
ListDatasetsResponse list = datasets.list(1, 20);
// Filtered by name
ListDatasetsResponse list = datasets.list(1, 20, "my-dataset");
list.getData().forEach(d -> System.out.println(d.getId() + " " + d.getName()));Get Dataset Tags
const tagsResult = await datasets.getTags('qa-golden-set');
console.log(tagsResult.tags); // string[]tags = client.datasets.get_tags("qa-dataset-v1")
print(tags)List<String> tags = datasets.getTags("my-dataset");
System.out.println("Tags: " + tags);