--- pageClass: page-reference --- # Collections
> Collections are the individual collections of items, similar to tables in a database. Changes to collections will alter the schema of the database. [Learn more about Collections](/concepts/collections/).
[[toc]]
--- ## The Collection Object
`collection` **string**\ Name of the collection. This matches the table name in the database.
#### Meta Directus metadata, primarily used in the Admin App.
`collection` **string**\ Name of the collection. This matches the table name in the database. `icon` **string**\ Icon displayed in the Admin App when working with this collection. `note` **string**\ Short description displayed in the Admin App. `display_template` **string**\ How items in this collection should be displayed when viewed relationally in the Admin App. `hidden` **boolean**\ Whether or not this collection is hidden in the Admin App. `singleton` **boolean**\ Whether or not this collection is treated as a singleton. `translations` **array**\ How this collection's name is displayed in the different languages in the Admin App. `archive_field` **string**\ What field in the collection holds the archived state. `archive_value` **string**\ What value the archive field should be set to when archiving an item. `unarchive_value` **string**\ What value the archive field should be set to when unarchiving an item. `archive_app_filter` **boolean**\ Whether or not the Admin App should allow the user to view archived items. `sort_field` **boolean**\ What field holds the sort value on the collection. The Admin App uses this to allow drag-and-drop manual sorting.
#### Schema "Raw" database information. Based on the database vendor used, different information might be returned. The following are available for all drivers.
`name` **string**\ The table name. `comment` **string**\ The table comment.
```json { "collection": "articles", "meta": { "collection": "articles", "icon": "article", "note": "Blog posts", "display_template": "{{ title }}", "hidden": false, "singleton": false, "translations": [ { "language": "en-US", "translation": "Articles" }, { "language": "nl-NL", "translation": "Artikelen" } ], "archive_field": "status", "archive_value": "archived", "unarchive_value": "draft", "archive_app_filter": true, "sort_field": "sort" }, "schema": { "name": "pages", "comment": null } } ```
--- ## List Collections List the available collections.
### Query Parameters This endpoint doesn't currently support any query parameters. ### Returns An array of [collection objects](#the-collection-object).
``` GET /collections ``` ```json { "data": [ { "collection": "articles", "meta": { "collection": "articles", "icon": "article", "note": "Blog posts", "display_template": "{{ title }}", "hidden": false, "singleton": false, "translations": [ { "language": "en-US", "translation": "Articles" }, { "language": "nl-NL", "translation": "Artikelen" } ], "archive_field": "status", "archive_value": "archived", "unarchive_value": "draft", "archive_app_filter": true, "sort_field": "sort" }, "schema": { "name": "pages", "comment": null } }, { ... }, { ... } ] } ```
--- ## Retrieve a Collection Retrieve a single collection by table name.
### Query Parameters This endpoint doesn't currently support any query parameters. ### Returns A [collection object](#the-collection-object).
``` GET /collections/:collection ``` ```json { "data": { "collection": "articles", "meta": { "collection": "articles", "icon": "article", "note": "Blog posts", "display_template": "{{ title }}", "hidden": false, "singleton": false, "translations": [ { "language": "en-US", "translation": "Articles" }, { "language": "nl-NL", "translation": "Artikelen" } ], "archive_field": "status", "archive_value": "archived", "unarchive_value": "draft", "archive_app_filter": true, "sort_field": "sort" }, "schema": { "name": "pages", "comment": null } } } ```
--- ## Create a Collection Create a new Collection. This will create a new table in the database as well.
### Query Parameters This endpoint doesn't currently support any query parameters. ### Request Body The `collection` property is required, all other properties of the [collection object](#the-collection-object) are optional. You are able to provide an array of `fields` to be created during the creation of the collection. See the [fields object](/reference/api/rest/fields/#the-fields-object) for more information on what properties are available in a field. ### Returns The [collection object](#the-collection-object) for the collection created in this request.
``` POST /collections ``` ```json // Request { "collection": "testimonials", "meta": { "icon": "format_quote" } } ``` ```json // Response { "data": { "collection": "testimonials", "meta": { "collection": "testimonials", "icon": null, "note": null, "display_template": null, "hidden": false, "singleton": false, "translations": null, "archive_field": null, "archive_app_filter": true, "archive_value": null, "unarchive_value": null, "sort_field": null }, "schema": { "name": "testimonials", "comment": null } } } ```
--- ## Update a Collection Update the metadata for an existing collection.
### Query Parameters This endpoint doesn't currently support any query parameters. ### Request Body You can only update the `meta` values of the the [collection object](#the-collection-object). Updating the collection name is not supported at this time. ### Returns The [collection object](#the-collection-object) for the updated collection in this request.
``` PATCH /collections/:collection ``` ```json // Request { "meta": { "note": "Short quotes from happy customers." } } ``` ```json // Response { "data": { "collection": "testimonials", "meta": { "collection": "testimonials", "icon": null, "note": "Short quotes from happy customers.", "display_template": null, "hidden": false, "singleton": false, "translations": null, "archive_field": null, "archive_app_filter": true, "archive_value": null, "unarchive_value": null, "sort_field": null }, "schema": { "name": "testimonials", "comment": null } } } ```
--- ## Delete a Collection Delete a collection.
::: danger Destructive Be aware, this will delete the table from the database, including all items in it. This action can't be undone. :::
``` DELETE /collections/:collection ``` ```json // Empty Response ```
---