Update products incrementally
POST/products
This endpoint supports two update modes: incremental and partial. Understanding the difference is important for choosing the right approach.
Incremental update (partial omitted or false) | Partial update (partial=true) | |
|---|---|---|
| What it does | Replaces all product information per SKU in the request. Attributes not included in the request are removed. | Updates only the attributes included in the request. Existing attributes not in the request are preserved. |
| Use case | Batch updates throughout the day — e.g., syncing product data periodically. | High-frequency price and stock updates — e.g., keeping availability current. |
| Max products per request | 10,000 | 10,000 |
| Recommended frequency | Not designed to run every minute with 10,000 products. | Safe to run every minute with 10,000 products. |
This endpoint can be used to update a single product or a subset of products (up to 10,000 products).
To update a larger number of products, first use the "Full update step 2 - Upload batches" endpoint to send multiple batches of products in separate requests, and then start the update process using the "Full update step 3 - Commit" endpoint.
You can also use this endpoint to update a single attribute (e.g., price) or a few attributes (e.g., price, availability, and sales count) by setting the parameter partial to true and only sending attributes that need to be updated in the attributes object. This kind of update is also suitable for a maximum of 10,000 products per request.
Please note: only full updates create new attributes in your ontology (if you do not provide your own ontology). Incremental or partial updates affect your product data, not your ontology.
If the uploaded JSON breaks the JSON schema, you will get detailed information about the error in the API response.
Request
Responses
- 200
- 404
OK
{
"message": "Your update will now be started",
"status": "success",
"task": {
"projectId": 39074,
"projectName": null,
"origin": "LIVE-API",
"taskStatus": "RUNNING",
"name": "incremental partial update",
"taskIncrementType": "STEP_BASED",
"failure": false,
"requestTime": 1744640901632,
"startTime": 1744640901634,
"finishTime": null,
"progress": 0,
"logCounter": 3,
"id": "67fd1b8534ff64223a195b9f"
},
"nrOfSent": 3000,
"nrOfParsed": 3000
}
Not found
{
"status": "failure",
"code": 404,
"message": "Sorry an error occurred. Please check the logs."
}