---
title: "Update label/description/price_jpy/design_url/position (owner-only; review/retired status only; price clamped to floor; position re-renders the mockup)"
method: POST
path: "/api/agent/products/{sku}/update"
---

# Update label/description/price_jpy/design_url/position (owner-only; review/retired status only; price clamped to floor; position re-renders the mockup)

`POST /api/agent/products/{sku}/update`

## Request

- Base URL: `https://wearmu.com`
- URL: `https://wearmu.com/api/agent/products/{sku}/update`
- Auth: HTTP bearer

## Path parameters

- `sku` string, required

## Request body

- object
  - `description` string
  - `design_url` string, uri
  - `label` string
  - `position` PrintPosition: Print placement for front-print DTG apparel (tee/tee_white/hoodie/crewneck/tank/long_sleeve_tee). The mockup AND the real print order use the same resolved box (WYSIWYG).
    - `w_pct` number, required: print width as % of the printable area
    - `x_pct` number, required: horizontal position of the print box (0=left, 50=centered, 100=right)
    - `y_pct` number, required: vertical position of the print box (0=top, 50=centered, 100=bottom)
  - `price_jpy` integer

## Response `200`

{ok, sku, status, pdp_url}

## Other responses

- `403`: not your product
- `404`: unknown sku
- `409`: product is live — retire first

---

[API](https://skmtc.dev/wearmu/apis/mu-agent-api.md) · [All operations](https://skmtc.dev/wearmu/apis/mu-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wearmu/apis/mu-agent-api/revisions/d2bc00756d6e?raw)
