# Categories

 - [GET /Categories](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/filtercategoriesasync.md): Filters the tenant's Categories using OData query options and returns the matching resources as a paginated collection. ## Authentication Requires a valid API key in the `X-API-KEY` header. ## Headers
 - [POST /Categories](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/createcategoryasync.md): Creates a new Category from the supplied JSON object and returns its location in the `Location` header. ## Authentication Requires a valid API key in the `X-API-KEY` header. ## Headers ### Accept-Lang
 - [GET /Categories({categoryIdentifier})](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/searchcategoryasync.md): Returns a single Category resource identified by its route identifier, optionally shaping the response with `$select` and `$expand`. ## Authentication Requires a valid API key in the `X-API-KEY` heade
 - [PATCH /Categories({categoryId})](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/updatecategoryasync.md): Updates an existing Category identified by its route identifier, applying only the writable fields supplied in the request body (PATCH semantics). ## Authentication Requires a valid API key in the `X-
 - [DELETE /Categories({categoryId})](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/deletecategoryasync.md): Deletes the Category identified by its route identifier. ## Authentication Requires a valid API key in the `X-API-KEY` header. ## Response **204 No Content** — Category deleted. ## Error Responses - *
 - [GET /Categories({categoryIdentifier})/Products](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/filterproductsincategoryasync.md): Filters and returns a paginated collection of Product resources scoped to the given Category, using OData query options. ## Authentication Requires a valid API key in the `X-API-KEY` header. ## Header
 - [GET /Categories({categoryIdentifier})/Products({productIdentifier})](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/searchproductincategoryasync.md): Returns a single Product resource by its identifier, scoped to the given Category. ## Authentication Requires a valid API key in the `X-API-KEY` header. ## Headers ### Accept-Language Indicates the pr
 - [GET /Categories/Changelog](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/filtercategorieschangelogasync.md): Returns the changelog entries for the tenant's Categories as a collection, filterable and pageable with OData query options. ## Authentication Requires a valid API key in the `X-API-KEY` header. ## OD
 - [GET /Categories({categoryIdentifier})/Changelog](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/filtercategorychangelogasync.md): Returns the changelog entries for a single Category identified by its route identifier, filterable and pageable with OData query options. ## Authentication Requires a valid API key in the `X-API-KEY`
 - [GET /Categories/layout](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/getcategoryformlayoutasync.md): The layout describes how the Category edit form is rendered. It is a JSON document with a `sections` array; each section has a `title` and a `rows` array; each row has a `fields` array and, optionally
 - [PUT /Categories/layout](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/updatecategoryformlayoutasync.md): Fully overwrites the currently stored Category layout. The payload is **not merged** with the existing layout — it replaces it entirely. A layout must already exist for the tenant; this operation repl
 - [GET /Categories/$metadata](https://docs.api.saleslayer.com/apis/catalog-v2.0/categories/getcategorymetadataasync.md): The metadata is a JSON Schema document that describes: - The implicit and custom properties exposed by the Category resource. - The embedded resources (`Products`, `Variants`) and their relationships.
