---
title: "Update specification"
method: PUT
path: "/api/catalog/pvt/specification/{specificationId}"
tags: ["Specification"]
---

# Update specification

`PUT /api/catalog/pvt/specification/{specificationId}`

Updates a product specification or SKU specification.

>⚠️ It is not possible to edit `FieldTypeId`, `CategoryId`, `FieldGroupId` or `IsStockKeepingUnit` in this API call.

## Permissions

Any user or [API key](https://developers.vtex.com/docs/guides/api-authentication-using-api-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:

| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Catalog | Commercial | **SKU management** |

There are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint. To learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication).

>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing API keys](https://help.vtex.com/en/tutorial/best-practices-api-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.

## Path parameters

- `specificationId` integer, required

## Headers

- `Content-Type` string, required
- `Accept` string, required

## Request body

- object
  - `FieldTypeId` 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9, required — Field type can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`. This information is not editable.
  - `CategoryId` integer, required — Specification category ID. This information is not editable.
  - `FieldGroupId` integer, required — Numerical ID of the specification group that contains the new specification. This information is not editable.
  - `Name` string, required — Specification name. Limited to 100 characters.
  - `Description` string, required — Specification description.
  - `Position` integer, required — The current specification's position in comparison to the other specifications.
  - `IsFilter` boolean, required — Defines if the specification can be used as a filter.
  - `IsRequired` boolean, required — Defines if the specification is required or not.
  - `IsOnProductDetails` boolean, required — Defines if the specification will be shown on the product screen in the specification area.
  - `IsStockKeepingUnit` boolean, required — Defines if the specification is applied to a specific SKU. This information is not editable.
  - `IsWizard` boolean, required — Deprecated field.
  - `IsActive` boolean, required — Defines if the specification is active or not.
  - `IsTopMenuLinkActive` boolean, required — Defines if the specification is shown in the main menu of the site.
  - `IsSideMenuLinkActive` boolean, required — Defines if the specification is shown in the side menu.
  - `DefaultValue` string, required — Specification default value.

## Response `200`

OK

- object
  - `Id` integer — Specification ID.
  - `FieldTypeId` integer — Field type ID can be `1 - Text`, `2 - Multi-Line Text`, `4 - Number`, `5 - Combo`, `6 - Radio`, `7 - Checkbox`, `8 - Indexed Text`, `9 - Indexed Multi-Line Text`.
  - `CategoryId` integer — Category ID associated with this specification.
  - `FieldGroupId` integer — ID of the group of specifications that contains the new specification.
  - `Name` string — Specification name. Limited to 100 characters.
  - `Description` string, nullable — Deprecated field.
  - `Position` integer — Store Framework - Deprecated. Legacy CMS Portal - This position number is used in ordering the specifications both in the navigation menu and in the specification listing on the product page.
  - `IsFilter` boolean — Store Framework - Deprecated. Legacy CMS Portal - To allow the specification to be used as a facet (filter) on the search navigation bar.
  - `IsRequired` boolean — Makes the specification mandatory (`true`) or optional (`false`).
  - `IsOnProductDetails` boolean — Store Framework - Deprecated. Legacy CMS Portal -If specification is visible on the product page.
  - `IsStockKeepingUnit` boolean — If `true`, it will be added as a SKU specification. If `false`, it will be added as a product specification field.
  - `IsWizard` boolean, nullable — Deprecated field.
  - `IsActive` boolean — Enable (`true`) or disable (`false`) specification.
  - `IsTopMenuLinkActive` boolean — Store Framework - Deprecated. Legacy CMS Portal - To make the specification visible in the store's upper menu.
  - `IsSideMenuLinkActive` boolean — Store Framework - Deprecated. Legacy CMS Portal - To make the specification field clickable in the search navigation bar.
  - `DefaultValue` string — Specification default value.

---

[API](https://skmtc.net/vtex/apis/catalog-api.md) · [All operations](https://skmtc.net/vtex/apis/catalog-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vtex/catalog-api/revisions/d58c38c07169/schema)
