Bulk Edit Products (Apply to All)
POST/api/v2/products/bulk-edit
Apply the same set of changes to all selected products.
products:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
Fields:
- product_ids (required, array, max 500): Product IDs to update
- changes (required, array): List of changes, each with:
- field (required, string): Field name to change. Supports scalar product fields (e.g. weight, weight_unit, unit_cost, brand_id), 'pricing' (customer pricing tiers), 'supplier_pricing' (per-supplier pricing tiers — applies to ALL suppliers of each product), 'attribute' (custom attributes), and 'supplier' (link suppliers).
- operation (required, string): Operation type. Scalars use 'set' / 'clear'. Numeric/pricing/supplier_pricing also accept 'increase_by_amount', 'decrease_by_amount', 'increase_by_percent', 'decrease_by_percent'.
- value (nullable): New value
- tier_id (nullable, integer): Required for 'pricing' (references product_pricing_tiers) and 'supplier_pricing' (references supplier_pricing_tiers). Validation routes to the correct table based on the sibling 'field' value.
- attribute_id (nullable, integer): Required for attribute field changes
- supplier_id (nullable, integer): Required for supplier field changes
Requires permission: products.update
Request
Responses
- 200
- 401
- 403
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.