---
title: "Create or replace variations"
method: PUT
path: "/v2/variations"
tags: ["Variations"]
---

# Create or replace variations

`PUT /v2/variations`

**🔐 This endpoint requires [HTTP authentication](https://docs.constructor.com/reference/main-authentication) (either [Basic](https://docs.constructor.com/reference/main-authentication#basic-authentication) or [Bearer](https://docs.constructor.com/reference/main-authentication#bearer-authentication)).**
For authenticating with Bearer token, required scopes are: `catalog(w)`, `search_suggestions(w)`.

Create item variations or replace the data of existing item variations. Returns an identifier for a background [task](/reference/v1-tasks-retrieve-task).

## Query parameters

- `key` string, required — The key of the index to use.
- `section` string — The section of the index to use. Defaults to `Products`.
- `c` string — The ID of the client and version that the request is coming from, such as `cio-js-2.90`.
- `force` boolean — A flag to process the catalog even if it will invalidate a large part of existing data. Defaults to `False`.
- `notification_email` string[] — The email address(es) to send a notification to if the task fails. Multiple addresses may be specified for multiple recipients.

## Request body

- VariationListPutRequestBody
  - `variations` Variation[], required — Array of variations you want to create or replace.
    - `variation_id` string, required
    - `enriched_attributes` EnrichedAttributes, required — Enriched attributes: resolved badges and attributes keyed by name.
      - `badges` Badge[], required
        - `type` string, required
        - `display_name` string, required
        - `metadata` object
      - `attributes` object, required

## Response `200`

OK

- VariationListPutResponse
  - `task_id` integer, required
  - `task_status_path` string, required

## Other responses

- `202` — Accepted
- `400` — Validation Error
- `401` — Credentials are not passed or action is forbidden.
- `403` — The supplied token does not have the required permissions.
- `409` — Conflict
- `429` — Rate limit breached

---

[API](https://skmtc.dev/constructor/apis/autocomplete.md) · [All operations](https://skmtc.dev/constructor/apis/autocomplete/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/constructor/autocomplete/revisions/2d33330633b6/schema)
