Update a product by lookup key
Update an existing product without knowing the Propeller ID, using the source system's identifier as a lookup key.
Endpoint
PATCH /products/{lookupKey}/{lookupValue}
Request
PATCH /products/sourceId/PRD-00482?source=pim-akeneo
{
"names": [
{ "language": "EN", "value": "Wireless Bluetooth Headset Pro (2026)" }
],
"status": "A",
"oemCode": "AT-WBH-500-V2"
}
Response
{
"data": {
"id": 98765,
"names": [
{ "language": "EN", "value": "Wireless Bluetooth Headset Pro (2026)" },
{ "language": "NL", "value": "Draadloze Bluetooth Headset Pro" }
],
"sku": "WBH-PRO-500",
"status": "A",
"manufacturer": "AudioTech",
"oemCode": "AT-WBH-500-V2",
"source": "pim-akeneo",
"sourceId": "PRD-00482",
"createdAt": "2026-02-19T14:30:00.000Z",
"lastModifiedAt": "2026-02-19T15:10:00.000Z"
}
}
How it works
Use PATCH /products/{lookupKey}/{lookupValue} to update a product by its external identifier instead of the Propeller ID. This enables upsert-style sync patterns where your integration references products by the source system's ID. Only the fields you include in the request body are changed. Omitted fields keep their current values. The source query parameter scopes the lookup to a specific source system, so sourceId values from different systems don't collide.