# Variant attributes

Beta operations for managing Variant attributes.

 - [GET /Metadata/Variants/attributes](https://docs.api.saleslayer.com/apis/catalog-v2.0/variant-metadata/getvariantattributesasync.md): Every attribute of the Variant definition, the tenant's own and the platform's, a page at a time and in the order the definition declares them, each summarised: what a screen listing the attributes sh
 - [POST /Metadata/Variants/attributes](https://docs.api.saleslayer.com/apis/catalog-v2.0/variant-metadata/createvariantattributeasync.md): Adds a custom attribute to the Variant definition and places it on a variant form. The attribute's identifier is derived from its `title` and reported back. ## Request Body The body is the attribute.
 - [GET /Metadata/Variants/attributes('{attributeId}')](https://docs.api.saleslayer.com/apis/catalog-v2.0/variant-metadata/getvariantattributeasync.md): Everything about one attribute of the Variant definition, the tenant's own or the platform's, in every language: what it is, what its type carries, where a variant form draws it and what may be change
 - [PATCH /Metadata/Variants/attributes('{attributeId}')](https://docs.api.saleslayer.com/apis/catalog-v2.0/variant-metadata/updatevariantattributeasync.md): Changes an attribute of the Variant definition, the tenant's own or the platform's. A patch: every field left out, or sent as `null`, is one the attribute keeps. ## Request Body The body is the change
 - [DELETE /Metadata/Variants/attributes('{attributeId}')](https://docs.api.saleslayer.com/apis/catalog-v2.0/variant-metadata/deletevariantattributeasync.md): Deletes an attribute of the tenant's own from the Variant definition, or only takes it off one Variant form, within the request. No snapshot is taken before: nothing keeps what it changes. The attribu
