Fabric documentation
V1BrandsBrandidAttributes

Create an attribute definition

POST
/v1/brands/{brandId}/attributes

Adds a column to the brand's vocabulary. The key is derived from the name and returned — it is what product values join on, so it is assigned once and never changes on a rename. A name whose key is taken gets a numeric suffix (fabric_weight_2), because two attributes named the same must still be two columns.

Hand-authored attributes are product-scoped. Variant scope is evidence the importer reads off the source's variant array, not a choice.

AuthorizationBearer <token>

Your API key. X-Api-Key: <key> is accepted as an alternative.

A key belongs to an organization, not a user, so it outlives whoever created it. It carries two independent things, and both are checked: an org role (a member key cannot approve a publish or activate a mapping) and a set of scopes — catalog:read, catalog:write, enrichment:write, publishing:read, publishing:write, org:read, org:write. Holding a scope does not grant a role, and holding a role does not grant a scope.

GET /v1/me returns both for the key you are holding.

In: header

Path Parameters

brandId*string

The brand to read.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/v1/brands/string/attributes" \  -H "Content-Type: application/json" \  -d '{    "extract": true,    "kind": "variant",    "name": "string",    "type": "String"  }'
{  "id": "string",  "key": "string"}