Update marketplace product content
Updates only the local content, with merge.
Changes the desired content without calling the marketplace. The merge works like this:
contentis merged field by field: sendingcontent.titlekeeps the existing description.content.attributesis merged by each attributekey: a sent key replaces the stored one in place,{ "key": "origin", "value": null }removes the key, a new key goes to the end, and keys you do not send stay.nullonly works here: when you create the content or replace the variations, every attribute has a value. Attributes use the same typed format as Product attributes.variationAxesreplaces the whole list.
Every PATCH marks publicationState: dirty. The content reaches the marketplace when you publish the Listing. Every Listing on the product shares the change.
api_keyAuthorizationBearer <token>API key (mk_...)
marketplaceProductId*string^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidapplication/json- body
Local content fields to change. content merges field by field and content.attributes by attribute key (a sent key replaces the stored one, value: null removes it, others stay); variationAxes is replaced. This operation never publishes.
desired?Local content intent to change. content.attributes is a change list: value: null removes a key.
The changed marketplace product. It was not published; every offer of it sees the new content.
application/json- response
Content one marketplace shares between offers. Listings point at it.
id*stringMarketplace product identifier.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidsellerId*stringSeller that owns this marketplace product.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidconnectionId*stringMarketplace connection that owns this marketplace product.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidexternalId*|Marketplace identity of the shared content (Mercado Livre family_id, or the item id of a legacy item; Amazon parent ASIN). null until published or imported.
desired*Persisted local content intent.
observed*|Last observed marketplace content. null until first read.
catalogReference*|Optional external catalog reference.
publicationState*stringLocal publication work state of the content.
"never_published""clean""dirty""pending""failed"createdAt*stringWhen the marketplace product was created.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$date-timeupdatedAt*stringWhen the marketplace product was last changed.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$date-timecurl -X PATCH "https://example.com/v1/marketplace-products/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "desired": { "content": { "title": "iPhone 16 128 GB" } } }'{ "id": "8a6f0c55-6a1e-4c55-9b0a-3b1f2d9e4c10", "sellerId": "3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01", "connectionId": "3f7d8a57-3e44-4c91-bbf1-02d9f4e4e5b0", "externalId": null, "desired": { "content": { "title": "iPhone 16", "brand": "Apple", "condition": "new" }, "variationAxes": [ "color", "storage" ] }, "observed": null, "catalogReference": null, "publicationState": "never_published", "createdAt": "2026-10-10T12:00:00.000Z", "updatedAt": "2026-10-10T12:00:00.000Z"}