Skip to main content

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.

See also