---
title: "Create dataset"
method: POST
path: "/v1/dataset"
tags: ["Datasets"]
---

# Create dataset

`POST /v1/dataset`

Create a new dataset. If there is an existing dataset in the project with the same name as the one specified in the request, will return the existing dataset unmodified

## Request body

- CreateDataset
  - `project_id` string, uuid, required — Unique identifier for the project that the dataset belongs under
  - `name` string, required — Name of the dataset. Within a project, dataset names are unique
  - `description` string, nullable — Textual description of the dataset

## Response `200`

Returns the new dataset object

- Dataset
  - `id` string, uuid, required — Unique identifier for the dataset
  - `project_id` string, uuid, required — Unique identifier for the project that the dataset belongs under
  - `name` string, required — Name of the dataset. Within a project, dataset names are unique
  - `description` string, nullable — Textual description of the dataset
  - `created` string, date-time, nullable — Date of dataset creation
  - `deleted_at` string, date-time, nullable — Date of dataset deletion, or null if the dataset is still active
  - `user_id` string, uuid, nullable — Identifies the user who created the dataset
  - `metadata` object, nullable — User-controlled metadata about the dataset

## Other responses

- `400` — The request was unacceptable, often due to missing a required parameter
- `401` — No valid API key provided
- `403` — The API key doesn’t have permissions to perform the request
- `429` — Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
- `500` — Something went wrong on Braintrust's end. (These are rare.)

## Changes

- **2024-09-30** `ac2727014d93` — 8 breaking, 1 info
  - the request property `project_id` became not nullable
  - the request property `project_id` became required
  - the response's body became nullable
  - the response's body became nullable
  - …5 more
- **2024-07-23** `9eeeeb30b963` — 2 info
  - request body became optional
  - added the optional property `metadata` to the response with the `200` status
- **2024-05-06** `44b51ad3239a` — 5 breaking, 7 info
  - the response property `created` became nullable for the status `200`
  - the response property `deleted_at` became nullable for the status `200`
  - the response property `description` became nullable for the status `200`
  - the response property `project_id` became nullable for the status `200`
  - …8 more

[Change history](https://skmtc.dev/braintrustdata/apis/braintrust-api/changes/v1/dataset/post.md)

---

[API](https://skmtc.dev/braintrustdata/apis/braintrust-api.md) · [All operations](https://skmtc.dev/braintrustdata/apis/braintrust-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/braintrustdata/braintrust-api/revisions/9d216c8243fe/schema)
