Skip to main content

PATCH /v1/items/{id}

Scope

write_items

Request parameters

NameInTypeRequiredDescription
idpathstringrequireditem_id
Idempotency-KeyheaderstringrequiredIdempotency key (required). A UUID v4 is recommended. Resending the same key replays the original result, and the response carries Idempotent-Replay: true. Sending a different body with the same key returns 422, so always retry with the identical request.
kindbodyobjectoptional⚠️ Not editable. The kind is fixed at creation; sending it returns 409.
skubodyobjectoptional⚠️ Not editable. Sending it returns 409.
inventorybodyobjectoptional⚠️ Not editable here. Update stock through PATCH /v1/items/{id}/stock. Sending it returns 409.
variation_axesbodyobjectoptional⚠️ Not editable. Variation axes are fixed at creation. Sending it returns 409.
variantsbodyobjectoptional⚠️ Not editable here. Add variants with POST /v1/items/{id}/variants and edit them with PATCH /v1/items/{id}/variants/{variantId}. Sending it returns 409.
namebodystringoptionalItem name, 1-64 characters.
category_idbodystringoptionalThe category this item belongs to (an id from GET /v1/categories).
descriptionbodystringoptionalItem description, 1-4000 characters.
detail_urlbodystringoptionalURL of the item's detail page. HTTPS only. Send null to clear it.
pricebodyobjectoptionalSelling price, tax included. Discounts apply to this price.
tax_ratebodyobjectoptionalConsumption tax rate in percent: 0, 8 (reduced rate) or 10.
discount_ratebodyintegeroptionalDiscount rate in percent. A combination that brings the price below 50 JPY after the discount returns 422 price_below_minimum (discounted = floor(price.amount x (100 - discount_rate) / 100)).
discount_titlebodystringoptionalLabel shown for the discount, up to 12 characters. Send null to clear it.
statusbodyenum(activeinactive)optional
main_image_orientationbodyenum(landscapeportraitsquare)
sell_frombodystringoptionalStart of the selling period. null means no start limit. Without an offset (YYYY-MM-DD HH:mm(:ss)) the value is read as Japan Standard Time (JST). With an offset (Z / +09:00) it is read as exactly the instant you specify. ⚠️ Responses return UTC (Z), so a value you read back can be sent as-is.
sell_bybodystringoptionalWhen the item stops being sold. Must be later than sell_from. null means no end.
selling_limitsbodyintegeroptionalMaximum quantity one shopper may buy. null means no limit.
shipping_date_estimatebodystringoptionalFree text about when the item ships, shown to shoppers as-is.
is_shippingbodybooleanoptionalWhether the item is shipped. ⚠️ Always false for kind=gift; sending true returns 422 gift_must_not_ship.
shipping_costbodyobjectoptionalShipping cost charged for this item. null uses the shop's default shipping cost.
share_button_enabledbodybooleanoptionalWhether to show a share button on the purchase screen.
delivery_datetime_possibilitybodyenum(nullablerequirednot_available)
restock_notificationbodybooleanoptionalWhether shoppers can request a restock notification when the item is out of stock.
number_of_setsbodyintegeroptionalNumber of tickets per unit. Required for the ticket kinds (ticket, free_ticket, pre_sale_ticket); omitting it returns 422 number_of_sets_required.
cancellationbodyobjectoptionalWhether shoppers may cancel, and by when.
ticketbodyobjectoptionalTicket details. Only the fields you send are updated.
bundlebodyobjectoptional
external_refbodystringoptionalThe item ID in the connected system. Send null to clear it. Setting it places the item under this client's management.
managed_bybodyenum(self)optionalself = place the item under this client's management. null = release management and return it to manual operation.
archivedbodybooleanoptionaltrue excludes the item from list results by default — use it for items that disappeared on the connected system. The item's own status is left unchanged.

Response example

{
"data": {
"id": "1",
"sku": "string",
"name": "string",
"status": "active",
"kind": "normal",
"price": {
"amount": 3200,
"currency": "JPY"
},
"inventory": 0,
"for_gift": true,
"category_id": "string",
"main_image": "string",
"created_at": "2026-06-01T03:00:00Z",
"updated_at": "2026-06-01T03:00:00Z",
"sell_from": "2026-06-01T03:00:00Z",
"sell_by": "2026-06-01T03:00:00Z",
"external_ref": "string",
"managed_by": "string",
"archived": true,
"description": "string",
"shipping_cost": {
"amount": 3200,
"currency": "JPY"
},
"detail_url": "string",
"main_image_orientation": "landscape",
"restock_notification": true,
"cancellation": {
"enabled": true,
"cancel_by": "string"
},
"ticket": {
"event_group": "string",
"venue_name": "string",
"venue_address": "string",
"doors_open_at": "2026-06-01T03:00:00Z",
"entry_start_at": "2026-06-01T03:00:00Z",
"valid_from": "2026-06-01T03:00:00Z",
"valid_by": "2026-06-01T03:00:00Z",
"term_and_condition": "string",
"allow_continuous_use": true,
"default_seat_label": "string",
"background_color": "string",
"lottery": {
"date": "string",
"capacity": 0
}
},
"bundle": {
"components": [
{
"item_id": "string",
"quantity": 0,
"selection_type": "fixed"
}
]
},
"tax_rate": 10,
"discount_rate": 0,
"delivery_datetime_possibility": "nullable",
"shipping_date_estimate": "ご注文から3〜5営業日で発送",
"selling_limits": 10,
"discount_title": "夏の大感謝祭",
"is_shipping": true,
"share_button_enabled": true,
"number_of_sets": 1,
"category_name": "スキンケア",
"images": [
{
"id": "1",
"url": "https://api.developers.atouch.jp/items/342/abc.jpg",
"sort": 0
}
],
"variation_axes": [
{
"id": "string",
"name": "色",
"values": [
{
"id": "string",
"name": "M"
}
]
}
],
"variants": [
{
"id": "1",
"sku": "string",
"name": "白 / M",
"price": {
"amount": 3200,
"currency": "JPY"
},
"inventory": 0,
"discount_rate": 0,
"status": "active",
"axis_values": [
{
"axis": "string",
"value": "string"
}
]
}
],
"options": [
{
"id": "string",
"type": "choice",
"label": "ラッピング",
"description": "string",
"required": true,
"price": {
"amount": 3200,
"currency": "JPY"
},
"choices": [
{
"id": "string",
"text": "化粧箱",
"price": {
"amount": 3200,
"currency": "JPY"
}
}
]
}
]
}
}

Description

Edit an item (partial update). Depending on what changed, the item is dropped from shoppers' carts. (write_items)

Error response example

{
"error": {
"code": "insufficient_scope",
"message": "requires scope 'write_items'",
"request_id": "req_01H..."
}
}

Possible errors: 400 / 401 / 403 / 404 / 409 / 422 / 500 / 503