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

# Create a dataset

`POST /dataset`

## Request

- Base URL: `https://api.indexone.io`
- URL: `https://api.indexone.io/dataset`
- Auth: API key in header `x-api-key` and API key in header `Authorization`

Creates an empty dataset record (`dst_...`) and reserves its S3 prefix, then links it into the team's `datasets` map. The dataset holds no data yet: upload it with `POST /dataset/{dataset_id}/presigned_url` followed by `POST /dataset/{dataset_id}/mutation`.

Once populated, the dataset is readable from a workflow through the `load_dataset` operation.

## Request body

- object
  - `name` string
  - `description` string
  - `team_id` string: Owning team.
  - `get_presigned_url` boolean: Also return an upload slot under `presigned_url` in the same call, skipping `POST /dataset/{dataset_id}/presigned_url`. Send `file_type` (and optionally `file_name`) alongside it; `file_type` defaults to `text/csv`.

## Response `200`

The created dataset, wrapped alongside the updated team record.

- object
  - `dataset` object
  - `team_data` object
  - `presigned_url` object: Only when `get_presigned_url` was true.

## Other responses

- `401`: Missing or invalid id token.
- `403`: Missing or invalid `x-api-key`.
- `429`: API key usage-plan rate limit exceeded.

---

[API](https://skmtc.dev/indexone/apis/index-one-rest-api.md) · [All operations](https://skmtc.dev/indexone/apis/index-one-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/indexone/apis/index-one-rest-api/revisions/df5a92216a9c?raw)
