# Get Attribute Set

Returns a single attribute set identified by `id`. Accepted values:
- **`default`** (case-insensitive) — retrieves the tenant's default attribute set.
- **Positive integer** — retrieves the attribute set with that numeric ID.

Any other value is rejected with `400 Bad Request`.
The response includes the attribute set name and its form layout configuration for Products
and Variants (`ProductLayout`, `VariantLayout`). When the set has no Variant layout configured,
`VariantLayout` and `VariantAttributeIds` are omitted from the response.
**See also:** A legacy OData-style version of this endpoint is available at
`GET /AttributeSets({attributeSetIdentifier})`.
## Authentication
Requires a valid API key in the `X-API-KEY` header.
## Response
**200 OK** — The requested attribute set with its layout configuration.
## Error Responses
- **400 Bad Request** — `id` is not `default` or a valid positive integer.
- **401 Unauthorized** — Missing or invalid API key. Returned by the API gateway as
`{ "message": "Unauthorized", "request_id": "d8aafa5b8f3e400b60bea0123dd33317" }`.
- **404 Not Found** — No attribute set with the given identifier exists for this tenant.
- **500 Internal Server Error** — Unexpected technical error.

## Example
**Request:**

```http
GET /v2/AttributeSets(1) HTTP/1.1
X-API-KEY: your-api-key-here
```
**Response:**

```http
HTTP/1.1 200 OK
Content-Type: application/json
```

Endpoint: GET /v2/AttributeSets({id})
Version: 2.0.0

## Path parameters:

  - `id` (string, required)
    Attribute set identifier: `default` or a positive integer.

## 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 401 fields (application/json):

  - `message` (string)

  - `request_id` (string)

## Response 404 fields (application/json):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

## Response 500 fields (application/json):

  - `error` (string)

  - `details` (any)

