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

# Taxonomies

Database → Taxonomies endpoints.

A **taxonomy** is a hierarchical set of terms (categories, tags) you can attach to records.

| Endpoint                                                                                                                  | Method                                                    |
| ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [Find Merged Term Tree](/codemash/api-reference/database/taxonomies/find-merged-term-tree.md)                             | `GET taxonomies/{taxonomyName}/merged-tree`               |
| [Find Taxonomy Tree](/codemash/api-reference/database/taxonomies/find-taxonomy-tree.md)                                   | `GET taxonomies/tree`                                     |
| [Find Term Tree](/codemash/api-reference/database/taxonomies/find-term-tree.md)                                           | `GET taxonomies/{taxonomyName}/terms/tree`                |
| [Find Terms](/codemash/api-reference/database/taxonomies/find-terms.md)                                                   | `GET taxonomies/{taxonomyName}/terms`                     |
| [Find Terms Children](/codemash/api-reference/database/taxonomies/find-terms-children.md)                                 | `GET taxonomies/{taxonomyName}/terms/{parentId}/children` |
| [Delete Database Taxonomy](/codemash/api-reference/database/taxonomies/delete-database-taxonomy.md)                       | `DELETE taxonomies/{Id}`                                  |
| [Delete Database Taxonomy Term](/codemash/api-reference/database/taxonomies/delete-database-taxonomy-term.md)             | `DELETE taxonomies/{TaxonomyId}/terms/{Id}`               |
| [Delete Many Database Taxonomy Terms](/codemash/api-reference/database/taxonomies/delete-many-database-taxonomy-terms.md) | `DELETE taxonomies/{TaxonomyId}/terms/many`               |
| [Get Database Merged Term Tree](/codemash/api-reference/database/taxonomies/get-database-merged-term-tree.md)             | `GET taxonomies/{TaxonomyName}/merged-tree`               |
| [Get Database Taxonomies](/codemash/api-reference/database/taxonomies/get-database-taxonomies.md)                         | `GET taxonomies`                                          |
| [Get Database Taxonomy](/codemash/api-reference/database/taxonomies/get-database-taxonomy.md)                             | `GET taxonomies/{id}`                                     |
| [Get Database Taxonomy Term](/codemash/api-reference/database/taxonomies/get-database-taxonomy-term.md)                   | `GET taxonomies/{TaxonomyId}/terms/{Id}`                  |
| [Get Database Taxonomy Term Tree](/codemash/api-reference/database/taxonomies/get-database-taxonomy-term-tree.md)         | `GET taxonomies/{TaxonomyName}/terms/tree`                |
| [Get Database Taxonomy Tree](/codemash/api-reference/database/taxonomies/get-database-taxonomy-tree.md)                   | `GET taxonomies/tree`                                     |
| [Save Database Taxonomy](/codemash/api-reference/database/taxonomies/save-database-taxonomy.md)                           | `POST taxonomies`                                         |
| [Save Database Taxonomy Term](/codemash/api-reference/database/taxonomies/save-database-taxonomy-term.md)                 | `POST taxonomies/{TaxonomyId}/terms`                      |
| [Update Database Taxonomy Term](/codemash/api-reference/database/taxonomies/update-database-taxonomy-term.md)             | `PUT taxonomies/{TaxonomyId}/terms/{Id}`                  |

The `Find …` endpoints are on the API (data plane, for apps); the others are on the Hub. [Get Database Taxonomies](/codemash/api-reference/database/taxonomies/get-database-taxonomies.md) rows carry `description`, `parentName`, `dependencies` and `dependencyRefs` (`{ id, name }` pairs of the additional parents; replaces `dependencyNames`).

## Permissions and limits

* **Terms have one permission key: the taxonomy id.** Every term read and write asks for `database:read` / `create` / `update` / `delete` on `database:term:<taxonomy id>` (`txn_…`). Read endpoints still take the taxonomy **name**; Norbix looks up the id, so a renamed taxonomy keeps its terms and its permissions. A merged tree asks for read on every taxonomy it nests — one refused taxonomy refuses the whole tree.
* **Updating a taxonomy needs `database:update` on that taxonomy** (`database:taxonomy:<id>`); a save without an id is a create (`database:create` on `database:taxonomy:all`). Save is a full replace and keeps the taxonomy's id.
* An unknown taxonomy name answers `CM-ERRORS-TAXONOMIES-010`; a name over 40 characters `CM-ERRORS-TAXONOMIES-005`.
* A whole-taxonomy, merged or forest term tree returns at most 5000 terms; a bigger one answers `CM-ERRORS-TAXONOMIES-011` — read a sub-tree instead (`rootTermId` + depth). `GET /database/taxonomies/tree?includeTerms=true` fails when the term read fails.

In Cloud: [Taxonomies](/codemash/cloud/database/taxonomies.md) · [Terms](/codemash/cloud/database/taxonomies/terms.md).
