Update a product
PATCH /rest/v1/products/{id}
Applies the local update synchronously and returns the full updated product with a sync block describing channel propagation.
Images are updated through this endpoint: send the desired images[] array — elements with a known id are kept untouched (never re-uploaded, channel-side image ids preserved), elements without an id are added (hosted on Nembol's storage, whether you pass a URL or base64), and ids you omit are removed (and deleted from storage). Array order is display order. Omit the field entirely to leave images unchanged. There is no daily upload cap; each product holds up to 20 images.
Concurrency is last-write-wins; pass expected_updated_at to fail with 412 if the product changed since you read it.
Authorization
apiKey Authorization: Bearer nbl_live_... (or nbl_test_... for test mode). Test-mode writes are validated and simulated but never persisted and never touch channels; simulated results are marked simulated.
In: header
Path Parameters
Header Parameters
Unique client-generated key (max 255 chars), stored 24h.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
1 <= propertiesResponse Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/products/string" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "prod_66a1f09b2", "object": "product", "title": "Vintage denim jacket", "description": "string", "brand": "string", "category": "string", "short_description": "string", "vat_rate": 0, "mpn": "string", "weight": { "value": "string", "unit": "oz" }, "dimensions": { "length": "string", "width": "string", "height": "string", "unit": "in" }, "tags": [ "string" ], "currency": "string", "status": "ready", "sync_status": "ok", "images": [ { "id": "img_ph1x8", "object": "image", "url": "http://example.com", "alt": "string", "position": 0 } ], "variants": [ { "id": "var_66a1f1", "object": "variant", "sku": "VDJ-M-001", "title": "string", "price": "19.90", "msrp": "19.90", "quantity": 0, "barcode": "string", "grams": 0, "asin": "string", "images": [ { "image_id": "img_66a1f2", "url": "http://example.com", "position": 0 } ], "options": { "property1": "string", "property2": "string" } } ], "listings": [ { "id": "list_9ac2e", "channel_account_id": "string", "channel": "string", "status": "listed", "url_on_channel": "http://example.com" } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "sync": { "operation_id": "op_8fd2c1", "channels": [ { "channel_account_id": "string", "status": "pending" } ] }}Last updated on July 30, 2026
Need help?
Email us and a human replies, usually within one business day.