# Databases

A database is a document whose children are its rows. Each row is a document; its values are the row's properties.

## Endpoints

- [Update a database property](https://developers.lydie.co/api/databases/update-a-database-property.md): `PATCH /v1/database-properties/{id}`
- [Delete a database property](https://developers.lydie.co/api/databases/delete-a-database-property.md): `DELETE /v1/database-properties/{id}`
- [Reorder a database property](https://developers.lydie.co/api/databases/reorder-a-database-property.md): `POST /v1/database-properties/{id}/move`
- [Rename a database property](https://developers.lydie.co/api/databases/rename-a-database-property.md): `POST /v1/database-properties/{id}/rename`
- [Restore a database property](https://developers.lydie.co/api/databases/restore-a-database-property.md): `POST /v1/database-properties/{id}/restore`
- [Change a property's type](https://developers.lydie.co/api/databases/change-a-propertys-type.md): `POST /v1/database-properties/{id}/type`
- [Add a select option](https://developers.lydie.co/api/databases/add-a-select-option.md): `POST /v1/database-properties/{propertyId}/options`
- [Rename or recolour a select option](https://developers.lydie.co/api/databases/rename-or-recolour-a-select-option.md): `PATCH /v1/database-properties/{propertyId}/options/{optionId}`
- [Delete a select option](https://developers.lydie.co/api/databases/delete-a-select-option.md): `DELETE /v1/database-properties/{propertyId}/options/{optionId}`
- [Reorder a select option](https://developers.lydie.co/api/databases/reorder-a-select-option.md): `POST /v1/database-properties/{propertyId}/options/{optionId}/move`
- [Move a database row](https://developers.lydie.co/api/databases/move-a-database-row.md): `POST /v1/database-rows/{rowId}/move`
- [Update a database view](https://developers.lydie.co/api/databases/update-a-database-view.md): `PATCH /v1/database-views/{id}`
- [Delete a database view](https://developers.lydie.co/api/databases/delete-a-database-view.md): `DELETE /v1/database-views/{id}`
- [Duplicate a database view](https://developers.lydie.co/api/databases/duplicate-a-database-view.md): `POST /v1/database-views/{id}/duplicate`
- [Reorder a database view](https://developers.lydie.co/api/databases/reorder-a-database-view.md): `POST /v1/database-views/{id}/move`
- [Rename a database view](https://developers.lydie.co/api/databases/rename-a-database-view.md): `POST /v1/database-views/{id}/rename`
- [Restore a database view](https://developers.lydie.co/api/databases/restore-a-database-view.md): `POST /v1/database-views/{id}/restore`
- [Create a database](https://developers.lydie.co/api/databases/create-a-database.md): `POST /v1/databases`
- [Add a database property](https://developers.lydie.co/api/databases/add-a-database-property.md): `POST /v1/databases/{databaseId}/properties`
- [Query a database](https://developers.lydie.co/api/databases/query-a-database.md): `POST /v1/databases/{databaseId}/query`
- [Create a database row](https://developers.lydie.co/api/databases/create-a-database-row.md): `POST /v1/databases/{databaseId}/rows`
- [Set row values](https://developers.lydie.co/api/databases/set-row-values.md): `PATCH /v1/databases/{databaseId}/rows`
- [Delete database rows](https://developers.lydie.co/api/databases/delete-database-rows.md): `POST /v1/databases/{databaseId}/rows/delete`
- [Duplicate database rows](https://developers.lydie.co/api/databases/duplicate-database-rows.md): `POST /v1/databases/{databaseId}/rows/duplicate`
- [Restore database rows](https://developers.lydie.co/api/databases/restore-database-rows.md): `POST /v1/databases/{databaseId}/rows/restore`
- [Write database rows](https://developers.lydie.co/api/databases/write-database-rows.md): `POST /v1/databases/{databaseId}/rows/write`
- [Change a database's properties](https://developers.lydie.co/api/databases/change-a-databases-properties.md): `POST /v1/databases/{databaseId}/schema`
- [List row templates](https://developers.lydie.co/api/databases/list-row-templates.md): `GET /v1/databases/{databaseId}/templates`
- [Create a database view](https://developers.lydie.co/api/databases/create-a-database-view.md): `POST /v1/databases/{databaseId}/views`
- [Change a database's views](https://developers.lydie.co/api/databases/change-a-databases-views.md): `POST /v1/databases/{databaseId}/views/change`
- [Get a database](https://developers.lydie.co/api/databases/get-a-database.md): `GET /v1/databases/{id}`
- [Update database settings](https://developers.lydie.co/api/databases/update-database-settings.md): `PATCH /v1/databases/{id}`
- [Turn a database back into a page](https://developers.lydie.co/api/databases/turn-a-database-back-into-a-page.md): `DELETE /v1/databases/{id}`
- [Replace a database's schema and views](https://developers.lydie.co/api/databases/replace-a-databases-schema-and-views.md): `PUT /v1/databases/{id}/definition`
- [Restore a database](https://developers.lydie.co/api/databases/restore-a-database.md): `POST /v1/databases/{id}/restore`
- [List databases](https://developers.lydie.co/api/databases/list-databases.md): `GET /v1/workspaces/{workspaceId}/databases`

## The Database object

- `id` (ULID, required)
- `workspaceId` (string, required): (1–64 chars)
- `config` (DatabaseConfig, required)
  - `filter` (FilterNode, required, nullable): Default: `null`.
  - `templateIds` (ULID[], required): Default: `[]`.
  - `extra` (object, required): Default: `{}`.
- `createdAt` (timestamp, required)
- `updatedAt` (timestamp, required)
- `deletedAt` (timestamp, required, nullable)
- `createdBy` (string, optional, nullable): (≥ 1 chars)
- `updatedBy` (string, optional, nullable): (≥ 1 chars)

```json
{
  "id": "01JCQ3V5MZ8G4ZK2X7T9R6N1PB",
  "workspaceId": "01JCQ3TZ0WJ8K4M2X7T9R6N1PA",
  "config": {
    "filter": null,
    "templateIds": [],
    "extra": {}
  },
  "createdAt": "2026-11-12T09:30:00.000Z",
  "updatedAt": "2026-11-12T09:30:00.000Z",
  "deletedAt": null,
  "createdBy": null,
  "updatedBy": null
}
```
