Bulk update variant prices

Updates existing variant prices in bulk with partial data. Accepts up to 100 price items to update specific fields such as amount, sale price, reference price, status, and sale date ranges. Only provided fields will be updated.

PATCH/api/v1/{team_slug}/{app_slug}/variants/prices/bulk
API
Management
Updated
Apr 26, 2026

management-api:PATCH:/api/v1/{team_slug}/{app_slug}/variants/prices/bulk

Updates existing variant prices in bulk with partial data. Accepts up to 100 price items to update specific fields such as amount, sale price, reference price, status, and sale date ranges. Only provided fields will be updated.

API ownership

  • API family: Management API
  • Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data.
  • Do not use from: Browser-only storefront code or public clients.
  • Guide route: /apis/management/latest

The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.

Operation

  • Method: PATCH
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/variants/prices/bulk
  • Summary: Bulk update variant prices
  • Description: Updates existing variant prices in bulk with partial data. Accepts up to 100 price items to update specific fields such as amount, sale price, reference price, status, and sale date ranges. Only provided fields will be updated.
  • OpenAPI contract: management-api
  • Operation ID: Not documented in the OpenAPI contract.

Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.

Parameters2 parameters
NameInRequiredTypeDescription
app_slugpathYesstringApp slug
team_slugpathYesstringTeam slug
Request bodyDocumented body
  • Required: Yes
  • Description: Prices data
  • Content: application/json (object)

Bulk Patch Prices Payload

PropertyTypeRequiredDetails
pricesobject[]YesmaxItems: 50

Bulk Patch Price Item

PropertyTypeRequiredDetails
amount_cents_with_taxintegerNomin: 0
idstringYes-
on_salebooleanNo-
reference_price_with_taxintegerNomin: 0
sale_end_timestampstringNo-
sale_price_with_taxintegerNomin: 0
sale_start_timestampstringNo-
statusenum("active", "inactive", "draft")No-

Generated example (synthetic):

{
  "prices": [
    {
      "amount_cents_with_tax": 0,
      "id": "string",
      "on_sale": false,
      "reference_price_with_tax": 0,
      "sale_end_timestamp": "string",
      "sale_price_with_tax": 0,
      "sale_start_timestamp": "string",
      "status": "active"
    }
  ]
}
Responses4 statuses
StatusDescriptionContent
200Prices updated successfullyapplication/json (object)
400Invalid requestapplication/json (object)
401Unauthorized accessapplication/json (object)
500Internal server errorapplication/json (object)

200 - object

Bulk Patch Prices Response

PropertyTypeRequiredDetails
dataobjectNo-
detailsstring[]NoAdditional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes
successbooleanNo-
Bulk Patch Prices
PropertyTypeRequiredDetails
failedobject[]No-
successfulobject[]No-
Bulk Patch Failed Update
PropertyTypeRequiredDetails
idstringNo-
reasonstringNo-
Product Variant Price With Store Group
PropertyTypeRequiredDetails
amount_cents_with_taxintegerNo-
created_atstringNo-
idstringNo-
marketobjectNo-
on_salebooleanNo-
reference_price_with_taxintegerNo-
sale_end_timestampstringNo-
sale_price_with_taxintegerNo-
sale_start_timestampstringNo-
statusenum("active", "inactive", "draft")No-
store_groupobjectNo-
updated_atstringNo-
{
  "data": {
    "failed": [
      {
        "id": "string",
        "reason": "string"
      }
    ],
    "successful": [
      {
        "amount_cents_with_tax": 0,
        "created_at": "string",
        "id": "string",
        "market": {
          "active": null,
          "country_codes": null,
          "created_at": null,
          "currency_code": null,
          "id": null,
          "locale": null,
          "name": null,
          "slug": null,
          "updated_at": null
        },
        "on_sale": false,
        "reference_price_with_tax": 0,
        "sale_end_timestamp": "string",
        "sale_price_with_tax": 0,
        "sale_start_timestamp": "string",
        "status": "active",
        "store_group": {
          "country_of_sale": null,
          "created_at": null,
          "description": null,
          "id": null,
          "name": null,
          "slug": null,
          "store_type": null,
          "updated_at": null
        },
        "updated_at": "string"
      }
    ]
  },
  "details": [
    "string"
  ],
  "success": false
}

400 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

401 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

500 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

Contract identity

Use these fields to confirm you are implementing the intended endpoint contract.

  • API family: Management API
  • Method: PATCH
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/variants/prices/bulk
  • Operation ID: Not documented in the OpenAPI contract.
  • OpenAPI tag: Variants, Bulk
  • OpenAPI summary: Bulk update variant prices

Bulk update variant prices

# Bulk update variant prices Updates existing variant prices in bulk with partial data. Accepts up to 100 price items to update specific fields such as amount, sale price, reference price, status, and sale date ranges. Only provided fields will be updated.
PATCH /api/v1/{team_slug}/{app_slug}/variants/prices/bulk
Purpose

Updates existing variant prices in bulk with partial data.

Required inputs

app_slug path team_slug path

Primary response

200 ยท Prices updated successfully

Operation key

management-api:PATCH:/api/v1/{team_slug}/{app_slug}/variants/prices/bulk

## API ownership - API family: Management API - Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data. - Do not use from: Browser-only storefront code or public clients. - Guide route: [/apis/management/latest](/apis/management/latest) The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation. ## Operation - Method: `PATCH` - Path: `/api/v1/{team_slug}/{app_slug}/variants/prices/bulk` - Summary: Bulk update variant prices - Description: Updates existing variant prices in bulk with partial data. Accepts up to 100 price items to update specific fields such as amount, sale price, reference price, status, and sale date ranges. Only provided fields will be updated. - OpenAPI contract: management-api - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PATCH:/api/v1/{team_slug}/{app_slug}/variants/prices/bulk` Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID. ## Parameters | Name | In | Required | Type | Description | | --- | --- | --- | --- | --- | | app_slug | path | Yes | string | App slug | | team_slug | path | Yes | string | Team slug | ## Request body - Required: Yes - Description: Prices data - Content: application/json (object) ### Bulk Patch Prices Payload | Property | Type | Required | Details | | --- | --- | --- | --- | | `prices` | object[] | Yes | maxItems: 50 | #### Bulk Patch Price Item | Property | Type | Required | Details | | --- | --- | --- | --- | | `amount_cents_with_tax` | integer | No | min: 0 | | `id` | string | Yes | - | | `on_sale` | boolean | No | - | | `reference_price_with_tax` | integer | No | min: 0 | | `sale_end_timestamp` | string | No | - | | `sale_price_with_tax` | integer | No | min: 0 | | `sale_start_timestamp` | string | No | - | | `status` | enum("active", "inactive", "draft") | No | - | **Generated example (synthetic):** ```json { "prices": [ { "amount_cents_with_tax": 0, "id": "string", "on_sale": false, "reference_price_with_tax": 0, "sale_end_timestamp": "string", "sale_price_with_tax": 0, "sale_start_timestamp": "string", "status": "active" } ] } ``` ## Responses | Status | Description | Content | | --- | --- | --- | | 200 | Prices updated successfully | application/json (object) | | 400 | Invalid request | application/json (object) | | 401 | Unauthorized access | application/json (object) | | 500 | Internal server error | application/json (object) | ### 200 - object #### Bulk Patch Prices Response | Property | Type | Required | Details | | --- | --- | --- | --- | | `data` | object | No | - | | `details` | string[] | No | Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes | | `success` | boolean | No | - | ##### Bulk Patch Prices | Property | Type | Required | Details | | --- | --- | --- | --- | | `failed` | object[] | No | - | | `successful` | object[] | No | - | ##### Bulk Patch Failed Update | Property | Type | Required | Details | | --- | --- | --- | --- | | `id` | string | No | - | | `reason` | string | No | - | ##### Product Variant Price With Store Group | Property | Type | Required | Details | | --- | --- | --- | --- | | `amount_cents_with_tax` | integer | No | - | | `created_at` | string | No | - | | `id` | string | No | - | | `market` | object | No | - | | `on_sale` | boolean | No | - | | `reference_price_with_tax` | integer | No | - | | `sale_end_timestamp` | string | No | - | | `sale_price_with_tax` | integer | No | - | | `sale_start_timestamp` | string | No | - | | `status` | enum("active", "inactive", "draft") | No | - | | `store_group` | object | No | - | | `updated_at` | string | No | - |
Generated example (synthetic) ```json { "data": { "failed": [ { "id": "string", "reason": "string" } ], "successful": [ { "amount_cents_with_tax": 0, "created_at": "string", "id": "string", "market": { "active": null, "country_codes": null, "created_at": null, "currency_code": null, "id": null, "locale": null, "name": null, "slug": null, "updated_at": null }, "on_sale": false, "reference_price_with_tax": 0, "sale_end_timestamp": "string", "sale_price_with_tax": 0, "sale_start_timestamp": "string", "status": "active", "store_group": { "country_of_sale": null, "created_at": null, "description": null, "id": null, "name": null, "slug": null, "store_type": null, "updated_at": null }, "updated_at": "string" } ] }, "details": [ "string" ], "success": false } ```
### 400 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 401 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 500 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ## Contract identity Use these fields to confirm you are implementing the intended endpoint contract. - API family: Management API - Method: `PATCH` - Path: `/api/v1/{team_slug}/{app_slug}/variants/prices/bulk` - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PATCH:/api/v1/{team_slug}/{app_slug}/variants/prices/bulk` - OpenAPI tag: Variants, Bulk - OpenAPI summary: Bulk update variant prices