Marketplace products

Update marketplace product content

Updates only the local content, with merge.

PATCH
/v1/marketplace-products/{marketplaceProductId}

Changes the desired content without calling the marketplace. The merge works like this:

  • content is merged field by field: sending content.title keeps the existing description.
  • content.attributes is merged by each attribute key: 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. null only 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.
  • variationAxes replaces 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.

Authorization

api_key
headerAuthorizationBearer <token>

API key (mk_...)

Path Parameters

marketplaceProductId*string
Match^([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)$
Formatuuid

Request Body

application/json
  1. 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.

Response Body

The changed marketplace product. It was not published; every offer of it sees the new content.

application/json
  1. response

Content one marketplace shares between offers. Listings point at it.

id*string

Marketplace product identifier.

Match^([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)$
Formatuuid
sellerId*string

Seller that owns this marketplace product.

Match^([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)$
Formatuuid
connectionId*string

Marketplace connection that owns this marketplace product.

Match^([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)$
Formatuuid
externalId*|

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*string

Local publication work state of the content.

Value in"never_published""clean""dirty""pending""failed"
createdAt*string

When the marketplace product was created.

Match^(?:(?:\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))$
Formatdate-time
updatedAt*string

When the marketplace product was last changed.

Match^(?:(?:\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))$
Formatdate-time
curl -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"}