getattributeset.md
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 tenant identifier.
- 404 Not Found — No attribute set with the given identifier exists for this tenant.
- 500 Internal Server Error — Unexpected technical error.
Example
Request:
GET /v2/AttributeSets(1) HTTP/1.1
X-API-KEY: your-api-key-here
Response:
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,null)@editLink(string,null)@etag(string,null)@navigationLinks(array,null)@navigationLinks.uri(string,null)@associationLinks(array,null)@associationLinks.uri(string,null)@context(string,null)value(any,null)
Response 400 fields (application/json):
validationFailures(object,null) Example: {"Layout":[{"PropertyName":"Layout","ErrorMessage":"The layout must contain exactly the attributes of the stored layout. Missing: tags. Unknown: extra_field.","AttemptedValue":null}]}
Response 401 fields (application/json):
type(string,null)title(string,null)status(integer,null)detail(string,null)instance(string,null)
Response 500 fields (application/json):
error(string,null)details(any,null)