> For the complete documentation index, see [llms.txt](https://apidocs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.akinon.com/commerce-openapis/admin/attributes/attribute-sets/partially-update-an-attribute-set.md).

# Partially update an attribute set

Updates one or more fields of an existing attribute set. Only the fields you send are changed. The `name` uniqueness rule is re-checked.

```json
{"openapi":"3.1.0","info":{"title":"Admin API","version":"1.0.0"},"tags":[{"name":"Attribute Sets","description":"Named groups of attribute configurations that are assigned to products. Each set lists, through its attribute configurations, which attributes a product carries and how they behave. See the **Attributes** section for the shared concepts."}],"servers":[{"description":"Omnitron Remote Proxy (external access — recommended)","url":"https://{omnitron_url}/api/remote/{channel_id}","variables":{"omnitron_url":{"default":"sandbox.akinon.com","description":"Omnitron server URL (e.g., {omnitron.akinon.com})"},"channel_id":{"default":"1","description":"The channel identifier the remote request is routed through"}}},{"description":"Commerce API Server (internal / direct access only)","url":"https://{commerce_url}/api/v1","variables":{"commerce_url":{"default":"sandbox.akinon.com","description":"Internal commerce server URL, reachable only from within the Omnitron network"}}}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Token credential sent in the Authorization header, in the form: `Token <your-token>`. Requires a staff (admin) account."}},"schemas":{"AttributeSetPatchRequest":{"type":"object","description":"The payload accepted when partially updating an attribute set. All fields are optional; only the fields you send are changed.","properties":{"name":{"type":"string","maxLength":255,"description":"The unique name of the attribute set."},"attribute_set_type":{"$ref":"#/components/schemas/AttributeSetType"}}},"AttributeSetType":{"type":"string","description":"The type of an attribute set.\n* `simple` — a standard attribute set (default)\n* `grouped` — an attribute set used for grouped products","enum":["simple","grouped"]},"AttributeSet":{"type":"object","description":"A named group of attribute configurations assigned to products.","properties":{"pk":{"type":"integer","description":"The unique identifier of the attribute set.","readOnly":true},"name":{"type":"string","maxLength":255,"description":"The unique name of the attribute set."},"attribute_set_type":{"$ref":"#/components/schemas/AttributeSetType"},"attributeconfig_set":{"type":"array","readOnly":true,"description":"The attribute configurations belonging to this set. Managed with the **Attribute Configurations** endpoints.","items":{"$ref":"#/components/schemas/AttributeConfig"}}}},"AttributeConfig":{"type":"object","description":"The membership of one attribute in one attribute set. Each behavior flag is nullable; a `null` value means the flag is inherited from the parent attribute, and the read-only `default_fields` array reports which flags are currently inherited.","properties":{"pk":{"type":"integer","description":"The unique identifier of the attribute configuration.","readOnly":true},"attribute":{"type":"integer","description":"The identifier of the attribute."},"attribute_set":{"type":"integer","description":"The identifier of the attribute set."},"is_required":{"type":["boolean","null"],"description":"Overrides the attribute's `is_required`; `null` inherits it."},"is_visible":{"type":["boolean","null"],"description":"Overrides the attribute's `is_visible`; `null` inherits it."},"is_searchable":{"type":["boolean","null"],"description":"Overrides the attribute's `is_searchable`; `null` inherits it."},"is_filterable":{"type":["boolean","null"],"description":"Overrides the attribute's `is_filterable`; `null` inherits it."},"is_variant":{"type":["boolean","null"],"description":"Overrides the attribute's `is_variant`; `null` inherits it."},"is_variant_listable":{"type":["boolean","null"],"description":"Overrides the attribute's `is_variant_listable`; `null` inherits it. Changing this recomputes the listable status of the attribute set's products."},"is_form_required":{"type":["boolean","null"],"description":"Overrides the attribute's `is_form_required`; `null` inherits it."},"is_form_field_required":{"type":["boolean","null"],"description":"Overrides the attribute's `is_form_field_required`; `null` inherits it."},"default_fields":{"type":"array","readOnly":true,"description":"The names of the behavior flags currently inherited from the attribute (those left `null`).","items":{"type":"string"}},"order":{"type":["integer","null"],"description":"The sort order of the attribute within the set."},"attribute_config_group":{"type":["integer","null"],"description":"The identifier of the attribute configuration group this configuration belongs to, when any."}}},"ValidationError":{"type":"object","description":"Returned when the request contains invalid or missing data. Errors are grouped by the field they apply to: each key is the name of a field from the request and its value is a list of one or more messages describing what is wrong with that field. Messages that do not belong to any single field are grouped under `non_field_errors`.","properties":{"non_field_errors":{"type":"array","description":"Error messages that apply to the request as a whole rather than to a specific field.","items":{"type":"string"}}},"additionalProperties":{"type":"array","description":"The list of error messages for the field named by the key.","items":{"type":"string"}}},"Error":{"type":"object","description":"An error response.","properties":{"detail":{"type":"string","description":"A human-readable description of the error."}},"additionalProperties":true}},"responses":{"ValidationError":{"description":"The request contains invalid or missing data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"Unauthorized":{"description":"Authentication credentials were not provided or are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The authenticated user does not have administrator privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"AttributeSetNotFound":{"description":"The requested attribute set does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/attribute_set/{id}/":{"patch":{"tags":["Attribute Sets"],"operationId":"partialUpdateAttributeSet","summary":"Partially update an attribute set","description":"Updates one or more fields of an existing attribute set. Only the fields you send are changed. The `name` uniqueness rule is re-checked.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeSetPatchRequest"}}}},"responses":{"200":{"description":"The updated attribute set.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeSet"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/AttributeSetNotFound"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://apidocs.akinon.com/commerce-openapis/admin/attributes/attribute-sets/partially-update-an-attribute-set.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
