Skip to main content

Create Draft

POST 

/api/v2/listing-drafts

Create a listing draft.

Required scope: products:write

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Fields:

  • purpose (required, create | update) — create builds a new-listing draft; update seeds a draft from an existing live listing.
  • product_id (required if purpose=create, integer) — product to list.
  • sales_channel_id (required if purpose=create, integer) — target channel.
  • sales_channel_category_id (nullable, integer) — channel category driving the field schema. A draft without a category records a missing_category validation error and stays in draft state — it can never reach ready until a category is set.
  • sales_channel_product_template_id (nullable, integer) — template pre-mapping category fields. Optional: a draft is fully publishable without one (fill fields via overrides).
  • sales_channel_listing_profile_id (nullable, integer) — channel listing profile.
  • product_listing_id (required if purpose=update, integer) — live listing to seed from.

The draft is resolved + validated on creation; the response includes fields[] (schema + resolved value + provenance + raw override), resolved_values and validation_errors.

Authentication: Requires Bearer token.

variant_context — describes whether this draft targets a single VARIANT of a matrix family rather than the family itself. When is_variant_child is true, parent_sku / parent_name identify the family and sibling_count is how many variants it has. Publishing a single child is permitted, but it creates a standalone channel item with no variant group — publish the parent to list the whole family as one grouped listing. null when the draft has no product.

Request

Responses

Created