API reference
Product Management API
Create drafts, save product sections, publish, manage delivery metadata and inspect product AI drafts.
Start with a saved draft
POST /api/products/drafts creates the product context for later section saves. Read its product and setup_status, then save details, type/capabilities, commerce and verified delivery files. The draft response wraps product; the compatible POST /api/products response is a product object instead.
Details accepts name, short_desc, long_desc, feature_list, image_url and supported product_page_content. Corresponding shortDescription, longDescription, features and imageUrl aliases are accepted. Type accepts product_type/productType and compatible capabilities. Commerce accepts price, sale_price/salePrice and is_free/isFree. An omitted field is not a request to clear every saved value.
SoundSync
Illustrative draft creation
curl --fail-with-body -sS -X POST "$SOUNDSYNC_API_BASE/api/products/drafts" \
-H "Authorization: Bearer $DEVELOPER_TOKEN" \
-H "Content-Type: application/json" \
--data '{"name":"Example Instrument","product_type":"instrument","price":49}'
Publish only after setup is complete
Read setup-status and resolve missing requirements before publishing. list_publicly controls the supported public listing choice; it is not guaranteed marketplace placement. Publication can provision package credentials and schedule artwork. A file upload, a product publication and an artwork approval are separate operations.
Paid offers must remain at least $9.99 after discounts, before tax. Published subscription products use their supported atomic update path; their billing/ownership shape can be locked by existing customers. Read the subscription guide before changing an offer.
Private files and destructive actions
Use a completed managed upload before attaching delivery metadata. GET files lists current file_N identifiers; reload them after removing or reordering files. A signed file URL expires and must not become a permanent public download link.
Unpublish, archive, detach and permanent deletion have different effects. Permanent deletion requires an eligible archived product and the exact DELETE product-ID confirmation. Dependencies can block deletion; this API is not a way to erase financial history.
AI drafts need review
Product information, artwork, page optimization and FAQ tools return suggestions and draft status. Marking a draft applied or discarded changes its review state, not product content. Save reviewed fields separately. Upload-link safety checking does not import a file. Keep private customer records and credentials out of AI prompts.
SoundSync
Product guides
SoundSync
Requests and responses
/api/products/drafts
Create a saved draft and inspect setup readiness
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- name: string
- short_desc: string,null
- long_desc: string,null
- feature_list: array
- image_url: string,null
- product_page_content: object. Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards.
- product_type: plugin | instrument | expansion | sample_pack | midi_pack | drum_pack | preset_pack | construction_kit | bundle | subscription | course | digital_asset | player
- capabilities: object
- price: number,string,null
- sale_price: number,string,null
- is_free: boolean
- file_urls: array
- Returns
- HTTP 201: product, setup_status, setupStatus.
- Notes
- The draft path can use a placeholder name. No publication or paid access is implied. Package credential provisioning can occur; keep returned credential material private.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards."
},
"product_type": {
"type": "string",
"enum": [
"plugin",
"instrument",
"expansion",
"sample_pack",
"midi_pack",
"drum_pack",
"preset_pack",
"construction_kit",
"bundle",
"subscription",
"course",
"digital_asset",
"player"
]
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_free": {
"type": "boolean"
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
HTTP 201 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products
Create through the compatible product endpoint
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- name: string (required)
- short_desc: string,null
- long_desc: string,null
- feature_list: array
- image_url: string,null
- product_page_content: object. Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards.
- product_type: plugin | instrument | expansion | sample_pack | midi_pack | drum_pack | preset_pack | construction_kit | bundle | subscription | course | digital_asset | player
- capabilities: object
- price: number,string,null
- sale_price: number,string,null
- is_free: boolean
- file_urls: array
- Returns
- HTTP 201: id, name, product_type, short_desc, long_desc, price, sale_price, is_draft, product_status, marketplace_status, marketplace_visible, feature_list, image_url, file_urls, files, capabilities, product_page_content, packageCredential, setup_status.
- Notes
- Creates a draft. Prefer /drafts and focused section saves for new integrations. The legacy create response is a product object, not the /drafts wrapper.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards."
},
"product_type": {
"type": "string",
"enum": [
"plugin",
"instrument",
"expansion",
"sample_pack",
"midi_pack",
"drum_pack",
"preset_pack",
"construction_kit",
"bundle",
"subscription",
"course",
"digital_asset",
"player"
]
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_free": {
"type": "boolean"
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true,
"required": [
"name"
]
}
HTTP 201 response (application/json)
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products
List products visible to this developer account
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: review the response schema below.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}
Read an authorized product and its current statistics
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: id, name, product_type, short_desc, long_desc, price, sale_price, is_draft, product_status, marketplace_status, marketplace_visible, feature_list, image_url, file_urls, files, capabilities, product_page_content, packageCredential, setup_status.
- Notes
- Opening the product can ensure package credentials. This is not a public catalog call or a credential-free health probe.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}
Update through the compatible full product endpoint
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- name: string
- short_desc: string,null
- long_desc: string,null
- feature_list: array
- image_url: string,null
- product_page_content: object. Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards.
- product_type: plugin | instrument | expansion | sample_pack | midi_pack | drum_pack | preset_pack | construction_kit | bundle | subscription | course | digital_asset | player
- capabilities: object
- price: number,string,null
- sale_price: number,string,null
- is_free: boolean
- file_urls: array
- Returns
- HTTP 200: id, name, product_type, short_desc, long_desc, price, sale_price, is_draft, product_status, marketplace_status, marketplace_visible, feature_list, image_url, file_urls, files, capabilities, product_page_content, packageCredential, setup_status.
- Notes
- Prefer focused details/type/commerce saves. Existing subscription shape and licensing-rule locks remain authoritative; sending a saved object does not bypass them.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards."
},
"product_type": {
"type": "string",
"enum": [
"plugin",
"instrument",
"expansion",
"sample_pack",
"midi_pack",
"drum_pack",
"preset_pack",
"construction_kit",
"bundle",
"subscription",
"course",
"digital_asset",
"player"
]
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_free": {
"type": "boolean"
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/details
Save product copy, media references and presentation
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- name: string
- short_desc: string,null
- long_desc: string,null
- feature_list: array
- image_url: string,null
- product_page_content: object. Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards.
- Returns
- HTTP 200: product, setup_status, setupStatus.
- Notes
- Unspecified fields remain unchanged. The after-discount paid checkout minimum is $9.99 before tax. Product aliases documented in setup guides remain accepted; type and recurring-model locks can reject a change.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards."
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/type
Save product type and compatible capabilities
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- product_type: plugin | instrument | expansion | sample_pack | midi_pack | drum_pack | preset_pack | construction_kit | bundle | subscription | course | digital_asset | player
- capabilities: object
- Returns
- HTTP 200: product, setup_status, setupStatus.
- Notes
- Unspecified fields remain unchanged. The after-discount paid checkout minimum is $9.99 before tax. Product aliases documented in setup guides remain accepted; type and recurring-model locks can reject a change.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"product_type": {
"type": "string",
"enum": [
"plugin",
"instrument",
"expansion",
"sample_pack",
"midi_pack",
"drum_pack",
"preset_pack",
"construction_kit",
"bundle",
"subscription",
"course",
"digital_asset",
"player"
]
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/commerce
Save regular and sale pricing
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- price: number,string,null
- sale_price: number,string,null
- is_free: boolean
- Returns
- HTTP 200: product, setup_status, setupStatus.
- Notes
- Unspecified fields remain unchanged. The after-discount paid checkout minimum is $9.99 before tax. Product aliases documented in setup guides remain accepted; type and recurring-model locks can reject a change.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_free": {
"type": "boolean"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/published-subscription
Update a published subscription product atomically
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- details: object
- type: object
- commerce: object
- subscriptionSettings: object
- publish: object
- Returns
- HTTP 200: product, setup_status, setupStatus.
- Notes
- Only an already published linked subscription product is eligible. This groups supported section changes in one transaction; it does not change the subscription ownership model or transfer provider billing authority.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"details": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Saved product presentation fields. Use the product media/specification guides; licensing rules have separate guards."
}
},
"additionalProperties": true
},
"type": {
"type": "object",
"properties": {
"product_type": {
"type": "string",
"enum": [
"plugin",
"instrument",
"expansion",
"sample_pack",
"midi_pack",
"drum_pack",
"preset_pack",
"construction_kit",
"bundle",
"subscription",
"course",
"digital_asset",
"player"
]
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"commerce": {
"type": "object",
"properties": {
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_free": {
"type": "boolean"
}
},
"additionalProperties": true
},
"subscriptionSettings": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"billingInterval": {
"type": "string"
},
"trialDays": {
"type": "integer"
},
"failedPaymentGraceDays": {
"type": "integer"
},
"cancellationBehavior": {
"type": "string"
}
},
"additionalProperties": true
},
"publish": {
"type": "object",
"properties": {
"list_publicly": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/setup-status
Inspect incomplete product setup requirements
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: product, setup_status, setupStatus.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/publish
Publish a ready product and choose public listing
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- list_publicly: boolean
- Returns
- HTTP 200: product, setup_status, setupStatus.
- Notes
- Requires the current owner/admin authorization and complete setup. Can provision credentials and schedule marketplace artwork. Listing, generated artwork, placement approval and guaranteed discovery are different outcomes.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"list_publicly": {
"type": "boolean"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/unpublish
Stop publication without erasing purchase history
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- reason: string
- Returns
- HTTP 200: product, setup_status, setupStatus.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"reason": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setupStatus": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/archive
Archive this product
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: id, name, product_type, short_desc, long_desc, price, sale_price, is_draft, product_status, marketplace_status, marketplace_visible, feature_list, image_url, file_urls, files, capabilities, product_page_content, packageCredential, setup_status.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/restore
Restore this archived product
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: id, name, product_type, short_desc, long_desc, price, sale_price, is_draft, product_status, marketplace_status, marketplace_visible, feature_list, image_url, file_urls, files, capabilities, product_page_content, packageCredential, setup_status.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}
Permanently delete an eligible archived product
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- confirmation: string (required)
- Returns
- HTTP 200: deleted, productId.
- Notes
- Requires products.archive, an archived product and the exact confirmation DELETE followed by the product ID, for example DELETE 123. Financial, licensing, relationship or other retained dependencies can block deletion. This does not erase required purchase records.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"confirmation": {
"type": "string"
}
},
"required": [
"confirmation"
],
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"deleted": {
"type": "boolean"
},
"productId": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/stats
Read authorized product statistics
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: products.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"total_orders": {
"type": "integer"
},
"total_customers": {
"type": "integer"
},
"total_entitlements": {
"type": "integer"
},
"active_entitlements": {
"type": "integer"
},
"file_count": {
"type": "integer"
},
"gross_sales_amount_cents": {
"type": "integer"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/stats
Read statistics for one authorized product
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: stats.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"stats": {
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"total_orders": {
"type": "integer"
},
"total_customers": {
"type": "integer"
},
"total_entitlements": {
"type": "integer"
},
"active_entitlements": {
"type": "integer"
},
"file_count": {
"type": "integer"
},
"gross_sales_amount_cents": {
"type": "integer"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/pricing
Resolve the current regular and sale price
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: pricing.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"pricing": {
"type": "object",
"properties": {
"regularPrice": {
"type": "number"
},
"salePrice": {
"type": [
"number",
"null"
]
},
"finalPrice": {
"type": "number"
},
"isOnSale": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"activeDealId": {
"type": [
"integer",
"null"
]
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/deals
List scheduled product deals
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: productId, product_id, pricing, deals, upcoming, active, history.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"productId": {
"type": "integer",
"minimum": 1
},
"product_id": {
"type": "integer",
"minimum": 1
},
"pricing": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"deals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"startsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"endsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
}
},
"upcoming": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"startsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"endsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
}
},
"active": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"startsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"endsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"startsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"endsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/deals
Schedule a product deal
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- title: string
- dealName: string
- salePrice: number (required)
- currency: string
- startsAt: string (required)
- endsAt: string (required)
- notes: string
- metadata: object. Operation-specific extension data; do not put credentials or unnecessary personal information here.
- Returns
- HTTP 201: deal, product, pricing.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"dealName": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"currency": {
"type": "string"
},
"startsAt": {
"type": "string"
},
"endsAt": {
"type": "string"
},
"notes": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true,
"required": [
"salePrice",
"startsAt",
"endsAt"
]
}
HTTP 201 response (application/json)
{
"type": "object",
"properties": {
"deal": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"startsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"endsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"pricing": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/deals/{dealId}
Edit an eligible scheduled deal
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- title: string
- dealName: string
- salePrice: number
- currency: string
- startsAt: string
- endsAt: string
- notes: string
- metadata: object. Operation-specific extension data; do not put credentials or unnecessary personal information here.
- Returns
- HTTP 200: deal, pricing.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"dealName": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"currency": {
"type": "string"
},
"startsAt": {
"type": "string"
},
"endsAt": {
"type": "string"
},
"notes": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"deal": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"startsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"endsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"pricing": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/deals/{dealId}/cancel
Cancel a product deal
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: deal, canceled.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"deal": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"productId": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string"
},
"salePrice": {
"type": "number"
},
"startsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"endsAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"canceled": {
"type": "boolean"
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/files
List private delivery-file metadata
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: files.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/files
Attach a completed managed delivery file
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- url: string (required)
- name: string
- size_gb: number
- Returns
- HTTP 201: product, files.
- Notes
- Use managed, completed uploads. A raw external delivery URL must go through Upload by Link. URL signing is not a permanent public download grant.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"size_gb": {
"type": "number"
}
},
"required": [
"url"
],
"additionalProperties": true
}
HTTP 201 response (application/json)
{
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/files/{fileId}
Rename delivery metadata or correct its reported size
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- name: string
- size_gb: number
- Returns
- HTTP 200: file, files, product.
- Notes
- fileId uses the current file_N identifier; it is not a storage key. Reload file metadata after insertions or removals.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"size_gb": {
"type": "number"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"file": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/files/{fileId}
Detach a delivery file from the product
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: detached, detached_index, files, product.
- Notes
- Detachment changes customer delivery. It is not a refund or a guarantee of physical storage deletion.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"detached": {
"type": "boolean"
},
"detached_index": {
"type": "integer"
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/files/uploads
List current upload jobs
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: jobs.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"productId": {
"type": "integer",
"minimum": 1
},
"sourceType": {
"type": "string"
},
"originalFilename": {
"type": "string"
},
"filename": {
"type": "string"
},
"storageKey": {
"type": "string"
},
"fileSizeBytes": {
"type": [
"integer",
"null"
]
},
"mimeType": {
"type": "string"
},
"checksum": {
"type": "string"
},
"status": {
"type": "string"
},
"progress": {
"type": "number"
},
"errorCode": {
"type": "string"
},
"errorMessage": {
"type": "string"
},
"attachedProductFileId": {
"type": [
"string",
"integer"
]
},
"createdAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"updatedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"expectedSizeBytes": {
"type": [
"integer",
"null"
]
},
"resumable": {
"type": "boolean"
},
"resumeExpiresAt": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/files/direct-uploads/{jobId}
Resume an eligible multipart upload
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: job, upload, processing, deduplicated, file, product.
- Notes
- Resume requires the same file/session under the returned deadline; an expired upload is not silently reattached.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"job": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"productId": {
"type": "integer",
"minimum": 1
},
"sourceType": {
"type": "string"
},
"originalFilename": {
"type": "string"
},
"filename": {
"type": "string"
},
"storageKey": {
"type": "string"
},
"fileSizeBytes": {
"type": [
"integer",
"null"
]
},
"mimeType": {
"type": "string"
},
"checksum": {
"type": "string"
},
"status": {
"type": "string"
},
"progress": {
"type": "number"
},
"errorCode": {
"type": "string"
},
"errorMessage": {
"type": "string"
},
"attachedProductFileId": {
"type": [
"string",
"integer"
]
},
"createdAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"updatedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"expectedSizeBytes": {
"type": [
"integer",
"null"
]
},
"resumable": {
"type": "boolean"
},
"resumeExpiresAt": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
},
"upload": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"url": {
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"partSize": {
"type": "integer"
},
"partNumber": {
"type": "integer",
"minimum": 1
},
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"partNumber": {
"type": "integer",
"minimum": 1
},
"url": {
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
},
"expiresIn": {
"type": "integer"
}
},
"additionalProperties": true
},
"processing": {
"type": "boolean"
},
"deduplicated": {
"type": "boolean"
},
"file": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"key": {
"type": "string"
}
},
"additionalProperties": true
},
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/files/uploads
Upload a buffered local delivery file
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- file: string (required)
- Returns
- HTTP 201: job, upload, processing, deduplicated, file, product.
- Notes
- Buffered upload limits are lower than direct multipart limits. Use direct upload for larger files.
Request, response and error reference
Request (multipart/form-data)
{
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
}
},
"required": [
"file"
],
"additionalProperties": true
}
HTTP 201 response (application/json)
{
"type": "object",
"properties": {
"job": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"productId": {
"type": "integer",
"minimum": 1
},
"sourceType": {
"type": "string"
},
"originalFilename": {
"type": "string"
},
"filename": {
"type": "string"
},
"storageKey": {
"type": "string"
},
"fileSizeBytes": {
"type": [
"integer",
"null"
]
},
"mimeType": {
"type": "string"
},
"checksum": {
"type": "string"
},
"status": {
"type": "string"
},
"progress": {
"type": "number"
},
"errorCode": {
"type": "string"
},
"errorMessage": {
"type": "string"
},
"attachedProductFileId": {
"type": [
"string",
"integer"
]
},
"createdAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"updatedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"expectedSizeBytes": {
"type": [
"integer",
"null"
]
},
"resumable": {
"type": "boolean"
},
"resumeExpiresAt": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
},
"upload": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"url": {
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"partSize": {
"type": "integer"
},
"partNumber": {
"type": "integer",
"minimum": 1
},
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"partNumber": {
"type": "integer",
"minimum": 1
},
"url": {
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
},
"expiresIn": {
"type": "integer"
}
},
"additionalProperties": true
},
"processing": {
"type": "boolean"
},
"deduplicated": {
"type": "boolean"
},
"file": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"key": {
"type": "string"
}
},
"additionalProperties": true
},
"product": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/upload-file
Upload an image through the compatible image route
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- file: string (required)
- Returns
- HTTP 200: url.
- Notes
- This is an image-upload response, not private product delivery. Check upload policy and use product media management for current workflows.
Request, response and error reference
Request (multipart/form-data)
{
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
}
},
"required": [
"file"
],
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/ai/smart-info
Draft product information
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- productId: integer
- currentProduct: object
- notes: string
- instructions: string
- referenceUrl: string
- referenceUrls: array
- videoLinks: array
- audioLinks: array
- downloadLinks: array
- mediaNotes: string
- preserveFilled: boolean
- targetCustomer: string
- tone: string
- imageStyle: string
- imagePrompt: string
- Returns
- HTTP 200: draftId, toolType, suggestions, provider, model, status, persistenceWarning.
- Notes
- Requires enabled provider configuration and authorized product context. Review suggestions before saving. Generation is not publication, consent, compatibility verification or a performance guarantee.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"productId": {
"type": "integer",
"minimum": 1
},
"currentProduct": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"notes": {
"type": "string"
},
"instructions": {
"type": "string"
},
"referenceUrl": {
"type": "string"
},
"referenceUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"videoLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"audioLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"downloadLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"mediaNotes": {
"type": "string"
},
"preserveFilled": {
"type": "boolean"
},
"targetCustomer": {
"type": "string"
},
"tone": {
"type": "string"
},
"imageStyle": {
"type": "string"
},
"imagePrompt": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"draftId": {
"type": [
"integer",
"string",
"null"
],
"minLength": 1
},
"toolType": {
"type": "string"
},
"suggestions": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"status": {
"type": "string"
},
"persistenceWarning": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 429, 500, 502, 503.
/api/products/ai/product-image
Generate draft product artwork
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- productId: integer
- currentProduct: object
- notes: string
- instructions: string
- referenceUrl: string
- referenceUrls: array
- videoLinks: array
- audioLinks: array
- downloadLinks: array
- mediaNotes: string
- preserveFilled: boolean
- targetCustomer: string
- tone: string
- imageStyle: string
- imagePrompt: string
- Returns
- HTTP 200: draftId, toolType, suggestions, provider, model, status, persistenceWarning.
- Notes
- Requires enabled provider configuration and authorized product context. Review suggestions before saving. Generation is not publication, consent, compatibility verification or a performance guarantee.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"productId": {
"type": "integer",
"minimum": 1
},
"currentProduct": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"notes": {
"type": "string"
},
"instructions": {
"type": "string"
},
"referenceUrl": {
"type": "string"
},
"referenceUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"videoLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"audioLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"downloadLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"mediaNotes": {
"type": "string"
},
"preserveFilled": {
"type": "boolean"
},
"targetCustomer": {
"type": "string"
},
"tone": {
"type": "string"
},
"imageStyle": {
"type": "string"
},
"imagePrompt": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"draftId": {
"type": [
"integer",
"string",
"null"
],
"minLength": 1
},
"toolType": {
"type": "string"
},
"suggestions": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"status": {
"type": "string"
},
"persistenceWarning": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 429, 500, 502, 503.
/api/products/ai/page-optimizer
Suggest product-page improvements
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- productId: integer
- currentProduct: object
- notes: string
- instructions: string
- referenceUrl: string
- referenceUrls: array
- videoLinks: array
- audioLinks: array
- downloadLinks: array
- mediaNotes: string
- preserveFilled: boolean
- targetCustomer: string
- tone: string
- imageStyle: string
- imagePrompt: string
- Returns
- HTTP 200: draftId, toolType, suggestions, provider, model, status, persistenceWarning.
- Notes
- Requires enabled provider configuration and authorized product context. Review suggestions before saving. Generation is not publication, consent, compatibility verification or a performance guarantee.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"productId": {
"type": "integer",
"minimum": 1
},
"currentProduct": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"notes": {
"type": "string"
},
"instructions": {
"type": "string"
},
"referenceUrl": {
"type": "string"
},
"referenceUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"videoLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"audioLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"downloadLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"mediaNotes": {
"type": "string"
},
"preserveFilled": {
"type": "boolean"
},
"targetCustomer": {
"type": "string"
},
"tone": {
"type": "string"
},
"imageStyle": {
"type": "string"
},
"imagePrompt": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"draftId": {
"type": [
"integer",
"string",
"null"
],
"minLength": 1
},
"toolType": {
"type": "string"
},
"suggestions": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"status": {
"type": "string"
},
"persistenceWarning": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 429, 500, 502, 503.
/api/products/ai/faq-support
Draft FAQ and support answers
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- productId: integer
- currentProduct: object
- notes: string
- instructions: string
- referenceUrl: string
- referenceUrls: array
- videoLinks: array
- audioLinks: array
- downloadLinks: array
- mediaNotes: string
- preserveFilled: boolean
- targetCustomer: string
- tone: string
- imageStyle: string
- imagePrompt: string
- Returns
- HTTP 200: draftId, toolType, suggestions, provider, model, status, persistenceWarning.
- Notes
- Requires enabled provider configuration and authorized product context. Review suggestions before saving. Generation is not publication, consent, compatibility verification or a performance guarantee.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"productId": {
"type": "integer",
"minimum": 1
},
"currentProduct": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string"
},
"product_type": {
"type": "string"
},
"short_desc": {
"type": [
"string",
"null"
]
},
"long_desc": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"string",
"null"
]
},
"sale_price": {
"type": [
"number",
"string",
"null"
]
},
"is_draft": {
"type": "boolean"
},
"product_status": {
"type": "string"
},
"marketplace_status": {
"type": "string"
},
"marketplace_visible": {
"type": "boolean"
},
"feature_list": {
"type": "array",
"items": {
"type": "string"
}
},
"image_url": {
"type": [
"string",
"null"
]
},
"file_urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"size_gb": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": true
}
},
"capabilities": {
"type": "object",
"properties": {
"requires_activation": {
"type": "boolean"
},
"supports_serials": {
"type": "boolean"
},
"supports_downloads": {
"type": "boolean"
},
"supports_expansions": {
"type": "boolean"
},
"is_publicly_listable": {
"type": "boolean"
},
"is_storefront_sellable": {
"type": "boolean"
}
},
"additionalProperties": true
},
"product_page_content": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"packageCredential": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"setup_status": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"notes": {
"type": "string"
},
"instructions": {
"type": "string"
},
"referenceUrl": {
"type": "string"
},
"referenceUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"videoLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"audioLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"downloadLinks": {
"type": "array",
"items": {
"type": "string"
}
},
"mediaNotes": {
"type": "string"
},
"preserveFilled": {
"type": "boolean"
},
"targetCustomer": {
"type": "string"
},
"tone": {
"type": "string"
},
"imageStyle": {
"type": "string"
},
"imagePrompt": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"draftId": {
"type": [
"integer",
"string",
"null"
],
"minLength": 1
},
"toolType": {
"type": "string"
},
"suggestions": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"status": {
"type": "string"
},
"persistenceWarning": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 429, 500, 502, 503.
/api/products/ai/upload-by-link/validate
Check whether a delivery source URL can be prepared
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Request fields
- url: string
- fileUrl: string
- referenceUrl: string
- Returns
- HTTP 200: available, status, provider, message, draftOnly, developerId, userId.
- Notes
- Send one URL alias. Safety checking does not import or attach a file. Start Upload by Link separately; private/local network sources are rejected.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"fileUrl": {
"type": "string"
},
"referenceUrl": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"available": {
"type": "boolean"
},
"status": {
"type": "string"
},
"provider": {
"type": "string"
},
"message": {
"type": "string"
},
"draftOnly": {
"type": "boolean"
},
"developerId": {
"type": "integer",
"minimum": 1
},
"userId": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/ai-drafts
Read saved product AI drafts
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: drafts.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"drafts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": [
"integer",
"string"
],
"minLength": 1
},
"product_id": {
"type": "integer",
"minimum": 1
},
"tool_type": {
"type": "string"
},
"generated_payload_json": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/ai-drafts/{draftId}/applied
Mark a reviewed AI draft applied
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: draft.
- Notes
- Updates the draft status. It does not itself apply suggestions to the product or publish content.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"draft": {
"type": "object",
"properties": {
"id": {
"type": [
"integer",
"string"
],
"minLength": 1
},
"status": {
"type": "string"
},
"applied_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"discarded_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
/api/products/{id}/ai-drafts/{draftId}/discard
Mark an AI draft discarded
- Auth
- Account Bearer JWT
- Scope
- Authenticated account, effective developer workspace, applicable permissions and product ownership. Read the operation notes for legacy or owner-only restrictions.
- Returns
- HTTP 200: draft.
- Notes
- Updates the draft status. It does not itself apply suggestions to the product or publish content.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"draft": {
"type": "object",
"properties": {
"id": {
"type": [
"integer",
"string"
],
"minLength": 1
},
"status": {
"type": "string"
},
"applied_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"discarded_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 401, 403, 404, 409, 500.
