# Get Variant Attribute

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 changed about it — what a screen editing the attribute loads.
`attributeSetId` chooses the form the place is read from: that attribute set's Variant form
(left out, the default Variant form). It decides nothing else.
## Response
**200 OK** — the attribute under `value`, in the members a create reports it in: what every
attribute has, and what its type carries in every language — a checklist's `options` with
their `translations`, a table's `templates` and `hasStartingTable`, an image's `sizeVariants`
and `fileNameAttributes`, the `linkingPattern` of an image or a file, a related items
attribute's target and `separator`. Then where the form draws it, `placement` (`null` when
the form does not lay it out), and what may be changed about it, `editability`.
## Example

```http
GET /Metadata/Variants/attributes('frmt_strapcolour')?attributeSetId=7 HTTP/1.1
X-API-KEY: your-api-key-here
```

Endpoint: GET /Metadata/Variants/attributes('{attributeId}')
Version: 2.0.0

## Description:

  - `Response` ()
    **200 OK** — the attribute under `value`, in the members a create reports it in: what every
attribute has, and what its type carries in every language — a checklist's `options` with
their `translations`, a table's `templates` and `hasStartingTable`, an image's `sizeVariants`
and `fileNameAttributes`, the `linkingPattern` of an image or a file, a related items
attribute's target and `separator`. Then where the form draws it, `placement` (`null` when
the form does not lay it out), and what may be changed about it, `editability`.

  - `Example` ()
    ```http
GET /Metadata/Variants/attributes('frmt_strapcolour')?attributeSetId=7 HTTP/1.1
X-API-KEY: your-api-key-here
```

## Path parameters:

  - `attributeId` (string, required)
    The identifier of the attribute to read, matched exactly

## Query parameters:

  - `attributeSetId` (integer)
    The attribute set whose Variant form the place is read from; left out, the default Variant form

## Header parameters:

  - `X-API-KEY` (string)
    Tenant's API key (required)

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `@readLink` (string)

  - `@editLink` (string)

  - `@etag` (string)

  - `@navigationLinks` (array)

  - `@navigationLinks.uri` (string)

  - `@associationLinks` (array)

  - `@associationLinks.uri` (string)

  - `@context` (string)

  - `value` (any)

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `validationFailures` (object)

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `message` (string)

  - `request_id` (string)

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `message` (string)

  - `request_id` (string)

## Response 404:

  - `404` (unknown)
    Not Found

## Response 409:

  - `409` (unknown)
    Conflict

## Response 409 fields (application/json):

  - `error` (string)

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `error` (string)

  - `details` (any)

## Response 200 examples:

  - `An attribute, placed as the form of attribute set 7 draws it (attributeSetId=7)` (unknown)

## Response 400 examples:

  - `An attributeSetId that is not a number` (unknown)

  - `An attribute set the tenant does not have` (unknown)

## Response 404 examples:

  - `No attribute has that identifier` (unknown)

## Response 409 examples:

  - `The form lays the attribute out more than once` (unknown)

