---
title: "Delete a dataset"
method: DELETE
path: "/dataset/{dataset_id}"
tags: ["Datasets"]
---

# Delete a dataset

`DELETE /dataset/{dataset_id}`

## Request

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

Deletes a dataset: every S3 object under its prefix, its DynamoDB record, and its entry in the team's `datasets` map. Not reversible.

Added 2026-07-21. The same purge remains available as `POST /dataset/{dataset_id}/mutation` with `{"mutation": "delete"}`, which is how deletion worked before this route existed — an overload that made a destructive action look like a data append. Prefer `DELETE`.

Workflows referencing the dataset are not updated and will fail on their next run.

## Path parameters

- `dataset_id` string, required

## Response `200`

Intended response: the deletion summary (same shape the `delete` mutation returns today).

- object
  - `dataset_id` string
  - `s3_deleted` integer
  - `record_deleted` boolean
  - `reference_removed` boolean

## Other responses

- `401`: Missing or invalid id token.
- `403`: Caller's teams do not own this dataset.
- `404`: No such dataset.
- `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)
