Preview Bulk Edit
POST/api/v2/products/bulk-edit-preview
Preview bulk edit changes without applying them (dry run). Safe to call repeatedly.
products:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
For mode='apply_to_all': requires product_ids and changes. For mode='individual': requires products[].id and products[].changes. The individual preview accepts the same changes object as POST /api/v2/products/bulk-edit-individual and reports a diff row for every field that would actually change, including:
- attributes[] - reported as field 'attribute.{attribute_id}' with field_label 'Attribute: {Group}: {Name}' and operation 'set' or 'clear'. Setting an attribute to its current value, or clearing one the product does not have, is treated as a no-op and is omitted from the diff.
- default_supplier_id - reported as field 'default_supplier' with field_label 'Default Supplier' and operation 'set_default'; old_value and new_value are supplier names.
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.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
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.