---
title: "Drop a namespace"
method: POST
path: "/v1/namespace/{id}/drop"
tags: ["Namespace", "Metadata"]
---

# Drop a namespace

`POST /v1/namespace/{id}/drop`

Drop namespace `id` from its parent namespace.

## Path parameters

- `id` string, required

## Query parameters

- `delimiter` string, nullable — An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results.

## Request body

- DropNamespaceRequest
  - `id` string[]
  - `mode` 'SKIP' | 'FAIL' — The mode for dropping a namespace, deciding the server behavior when the namespace to drop is not found. - FAIL (default): the server must return 400 indicating the namespace to drop does not exist. - SKIP: the server must return 204 indicating the drop operation has succeeded.
  - `behavior` 'RESTRICT' | 'CASCADE' — The behavior for dropping a namespace. - RESTRICT (default): the namespace should not contain any table or child namespace when drop is initiated. If tables are found, the server should return error and not drop the namespace. - CASCADE: all tables and child namespaces in the namespace are dropped before the namespace is dropped.

## Response `200`

Result of dropping a namespace

- DropNamespaceResponse
  - `properties` unknown
  - `transactionId` string[] — If present, indicating the operation is long running and should be tracked using GetTransaction

## Other responses

- `400` — Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.
- `401` — Unauthorized. The request lacks valid authentication credentials for the operation.
- `403` — Forbidden. Authenticated user does not have the necessary permissions.
- `404` — A server-side problem that means can not find the specified resource.
- `409` — The request conflicts with the current state of the target resource.
- `503` — The service is not ready to handle the request. The client should wait and retry. The service may additionally send a Retry-After header to indicate when to retry.
- `5XX` — A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.

## Changes

- **2025-07-29** `40a3bc489d46` — 7 breaking, 14 warning, 14 info
  - the response property `type` became optional for the status `400`
  - the response property `type` became optional for the status `401`
  - the response property `type` became optional for the status `403`
  - the response property `type` became optional for the status `404`
  - …31 more
- **2025-07-25** `8769f8e36bc4` — 1 breaking, 4 warning, 1 info
  - the `transactionId` response's property type changed from `string` to `array` for status `200`
  - removed the request property `name`
  - removed the request property `parent`
  - removed the optional property `name` from the response with the `200` status
  - …2 more
- **2025-07-22** `ac7519693c52` — 1 info
  - the request property `name` became optional
- **2025-07-21** `db7569410aa4` — 1 info
  - api tag `Metadata` added
- **2025-07-21** `6790486d1fac` — 10 breaking, 19 warning, 30 info
  - added the new required request property `name`
  - request property `behavior` was restricted to a list of enum values
  - request property `mode` was restricted to a list of enum values
  - removed the required property `code` from the response with the `400` status
  - …55 more

[Change history](https://skmtc.dev/lance-format/apis/lance-namespace-specification/changes/v1/namespace/:id/drop/post.md)

---

[API](https://skmtc.dev/lance-format/apis/lance-namespace-specification.md) · [All operations](https://skmtc.dev/lance-format/apis/lance-namespace-specification/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lance-format/lance-namespace-specification/revisions/40a3bc489d46/schema)
