API ReferenceProducts

Update a product

PATCH /rest/v1/products/{id}

PATCH
/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.

AuthorizationBearer <token>

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

id*string

Header Parameters

Idempotency-Key?string

Unique client-generated key (max 255 chars), stored 24h.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Properties1 <= properties

Response 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.