> For the complete documentation index, see [llms.txt](https://docs.khotan.com/llms.txt). A markdown version of any page is available at its `index.md` URL.

# SQLite Databases

`/api/v1` operations for sqlite databases. See [HTTP API](/api/) for authentication, the error envelope, and rate limits.

## Operations

### GET /api/v1/sqlite-databases

List SQLite databases

Returns the organization's non-deleted SQLite databases. Responses never include connection credentials.

Auth: API key required.

Operation ID: `listSqliteDatabases`

Responses:
- `200` — The organization's SQLite databases.
- `401` — Authentication is missing or invalid.
- `429` — Too many requests; retry after the indicated delay.

### POST /api/v1/sqlite-databases

Create a SQLite database

Provisions a SQLite database synchronously and responds 201 with the persisted record whether provisioning ends ready or failed; branch on the returned status. This operation is not idempotent: retrying a request that already succeeded provisions a second database.

Auth: API key required.

Operation ID: `createSqliteDatabase`

Request body (`application/json`, required):
- `name` (string, required)
- `idempotencyKey` (string, optional)

Responses:
- `201` — The persisted SQLite database record, ready or failed.
- `400` — The request was malformed or failed validation.
- `401` — Authentication is missing or invalid.
- `429` — Too many requests; retry after the indicated delay.

### GET /api/v1/sqlite-databases/{databaseId}

Get a SQLite database

Returns one SQLite database's record, including status and failure state when present. Responses never include connection credentials.

Auth: API key required.

Operation ID: `getSqliteDatabase`

Path parameters:
- `databaseId` (string, required)

Responses:
- `200` — The SQLite database record.
- `401` — Authentication is missing or invalid.
- `404` — The resource was not found.
- `429` — Too many requests; retry after the indicated delay.

### DELETE /api/v1/sqlite-databases/{databaseId}

Delete a SQLite database

Tears down the database at the provider, then soft-deletes the record. Deletion is permanent.

Auth: API key required.

Operation ID: `deleteSqliteDatabase`

Path parameters:
- `databaseId` (string, required)

Responses:
- `200` — The SQLite database was deleted.
- `401` — Authentication is missing or invalid.
- `403` — The caller is not permitted to perform this action.
- `404` — The resource was not found.
- `429` — Too many requests; retry after the indicated delay.
- `502` — Response.

### PUT /api/v1/sqlite-databases/{databaseId}/tags

Set a SQLite database's tags

Replaces a SQLite database's tag list with the submitted list and returns the stored list. Tags are normalized to lowercase slugs, so `Live` is stored as `live`. Send an empty list to remove every tag. Requires an API key whose role is owner or developer.

Auth: API key required.

Operation ID: `setSqliteDatabaseTags`

Path parameters:
- `databaseId` (string, required)

Request body (`application/json`, required):
- `tags` (string[], required) — Full tag list; it replaces the stored list. Each tag is trimmed, lowercased, and has whitespace runs replaced with "-", and repeats are removed. After that, each tag is 1-32 lowercase letters, digits, or single hyphens, with at most 10 tags. Presets: test, live, uat, dev, demo, deprecated.

Responses:
- `200` — The stored tag list, after normalization.
- `400` — The request was malformed or failed validation.
- `401` — Authentication is missing or invalid.
- `403` — The caller is not permitted to perform this action.
- `404` — The resource was not found.
- `429` — Too many requests; retry after the indicated delay.

<!-- generated from the /api/v1 OpenAPI spec v1.0.0 (adapter 0.10.0); do not edit by hand -->
