> For the complete documentation index, see [llms.txt](https://docs.codemash.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.codemash.io/sdks-and-cli/database/schemas.md).

# Schemas

A **schema** defines a collection's fields, types, and validation. Schemas support drafts, versions, and publishing.

| Method                                                                                                 | Endpoint                                   |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------ |
| [Delete Database Schema](/sdks-and-cli/database/schemas/delete-database-schema.md)                     | `DELETE /database/schemas/{Id}`            |
| [Discard Database Schema Draft](/sdks-and-cli/database/schemas/discard-database-schema-draft.md)       | `DELETE /database/schemas/{Id}/draft`      |
| [Get Database Schema](/sdks-and-cli/database/schemas/get-database-schema.md)                           | `GET /database/schemas/{id}`               |
| [Get Database Schema](/sdks-and-cli/database/schemas/get-database-schema.md)                           | `GET /database/schemas/{id}`               |
| [Get Database Schema Draft](/sdks-and-cli/database/schemas/get-database-schema-draft.md)               | `GET /database/schemas/{Id}/draft`         |
| [Get Database Schema Version Diff](/sdks-and-cli/database/schemas/get-database-schema-version-diff.md) | `GET /database/schemas/{Id}/versions/diff` |
| [Get Database Schema Versions](/sdks-and-cli/database/schemas/get-database-schema-versions.md)         | `GET /database/schemas/{Id}/versions`      |
| [Get Database Schemas](/sdks-and-cli/database/schemas/get-database-schemas.md)                         | `GET /database/schemas`                    |
| [Get Database Schemas](/sdks-and-cli/database/schemas/get-database-schemas.md)                         | `GET /database/schemas`                    |
| [Publish Database Schema](/sdks-and-cli/database/schemas/publish-database-schema.md)                   | `POST /database/schemas/{Id}/publish`      |
| [Rename Database Schema](/sdks-and-cli/database/schemas/rename-database-schema.md)                     | `PUT /database/schemas/{Id}/rename`        |
| [Save Database Schema](/sdks-and-cli/database/schemas/save-database-schema.md)                         | `POST /database/schemas`                   |
| [Update Database Schema Draft](/sdks-and-cli/database/schemas/update-database-schema-draft.md)         | `PUT /database/schemas/{Id}/draft`         |
| [Update Database Schema Settings](/sdks-and-cli/database/schemas/update-database-schema-settings.md)   | `PUT /database/schemas/{Id}/settings`      |
