Products

Update product

Updates local reusable base data.

PATCH
/v1/products/{productId}

This PATCH changes only the local base record. It does not call the marketplace, change observed, or publish any listing as a side effect. After changing an inherited field, inspect affected Listings' resolved data and publish only the ones you choose.

PATCH is partial at the top level: omitting identity, attributes, physical, fiscal, compliance, media, or metadata preserves its current value. However, when you send a field such as content or attributes, send a complete valid representation — content.title remains required — because that field replaces the Product object rather than merging its inner keys.

Use status: "archived" only as a lifecycle transition. To archive, no Variant of the Product may remain bound to a Listing; the endpoint returns a conflict until those bindings are deliberately removed.

Common errors

  • 409 CONFLICT with details.reason equal to variant_archived or product_archived: when reactivating an archived kit (status: "active"), a Variant of its BOM was archived, or is active in an archived product. Remove it from the BOM first (PUT /v1/products/{id}/components).
  • 409 CONFLICT with details.reason equal to product_in_kit or product_in_use: archiving a product that an active kit or a listing binding still uses.

Authorization

api_key
headerAuthorizationBearer <token>

API key (mk_...)

Path Parameters

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

Fields to change in a product. Omitted fields stay unchanged.

content?

Reusable product content. A listing may inherit or override it.

identity?

Canonical product identity fields and typed identifiers.

attributes?array<>

Typed canonical product attributes.

Itemsitems <= 200
physical?

Product-level dimensions, weight and package quantity.

fiscal?

Brazilian fiscal product data.

compliance?

Safety and regulatory compliance declarations.

metadata?

Customer-owned metadata that MarketAPI does not interpret.

media?array<>

Ordered references to product media assets.

Itemsitems <= 100
status?string

New product lifecycle state.

Value in"active""archived"

Response Body

The product after the local change. It was not published.

application/json
  1. response

A reusable product base, independent of marketplace listings.

id*string

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

Lifecycle state of the product.

Value in"active""archived"
content*

Reusable product content.

identity*

Reusable identity fields.

attributes*array<>

Typed product attributes.

Itemsitems <= 200
physical*|

Product-level physical data, if any.

fiscal*

Brazilian fiscal product data.

compliance*

Safety and regulatory compliance declarations.

metadata*

Customer-owned product metadata.

media*array<>

Ordered product media.

createdAt*string

When the 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 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/products/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "a0f0ce59-5d17-49bf-8b45-d1dc057daab4",  "sellerId": "3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01",  "status": "active",  "content": {    "title": {      "pt-BR": "iPhone 16"    }  },  "identity": {    "brand": "Apple",    "model": "iPhone 16"  },  "attributes": [],  "physical": null,  "fiscal": {},  "compliance": {    "certifications": [],    "warnings": []  },  "metadata": {},  "media": [],  "createdAt": "2026-10-10T12:00:00.000Z",  "updatedAt": "2026-10-10T12:00:00.000Z"}