Skip to main content
PATCH
Update product

Authorizations

Authorization
string
header
required

Use your Shoppex API key in the Authorization header.

Path Parameters

id
string
required

Body

title
string
price
number
cost
number | null
description
string
short_description
string | null

One plain-text line shown under the product title on storefronts (max 200 characters). Send null or an empty string to clear.

Maximum string length: 200
description_tabs
object[]
metadata
object | null

Merchant-defined public key/value pairs surfaced on the storefront product wire. Flat strings only; at most 50 keys. Send {} to clear.

currency
string
gateways
string[]
type
enum<string>
Available options:
SERIALS,
FILE,
SERVICE,
DYNAMIC,
INFO_CARD,
SUBSCRIPTION,
PHYSICAL,
GAMING_RCON,
SUBSCRIPTION_V2
subtype
enum<string> | null
Available options:
SINGLE,
MULTIPLE,
RANDOM,
REPLACEMENT,
SERIALS,
FILE,
SERVICE,
DYNAMIC
serials
string[]

One key per item; an item with line breaks is split into one key per line. Keys longer than 10,000 characters reject the request.

allowDuplicatesInBatch
boolean
allow_duplicates_in_batch
boolean

Keep repeated keys of serials as separate stock units (placeholder stock). Default false: repeats are dropped and counted in serials_import.duplicates_in_batch.

serviceText
string
service_text
string
stock
number
dynamicWebhook
string | null
dynamic_webhook
string | null

URL Shoppex calls to deliver a DYNAMIC product. A new value must be a public https URL without a username or password, at most 2048 characters. A product that stores an http URL keeps it while the field is omitted or sent back unchanged. Send null or an empty string to remove the webhook.

dynamicWebhookSecret
string
dynamic_webhook_secret
string
fileIds
string[] | null
file_ids
string[] | null
stockDelimiter
enum<string>

Keys are one per line; commas and semicolons stay part of the key. newline or a line break (as GET returns it).

Available options:
newline,
stock_delimiter
enum<string>

Keys are one per line; commas and semicolons stay part of the key. newline or a line break (as GET returns it).

Available options:
newline,
quantity
object
quantity_min
number
quantity_max
number
deliveryText
string
delivery_text
string
customFields
object[]
custom_fields
object[]
deliveryInstructions
object
delivery_instructions
object
cryptoConfirmationsNeeded
number
crypto_confirmations_needed
number
crypto_confirmations
number
maxRiskLevel
number

Risk score ceiling, 0-100. 100 lets every buyer through.

max_risk_level
number

Risk score ceiling, 0-100. 100 lets every buyer through.

unlisted
boolean
private
boolean
blockVpnProxies
boolean
block_vpn_proxies
boolean
sortPriority
number
sort_priority
number
webhooks
string[]
onHold
boolean
on_hold
boolean
termsOfService
string | null
terms_of_service
string | null
warrantyDays
number
warranty_days
number
warrantyText
string | null
warranty_text
string | null
sku
string | null
deliveryFormat
string | null
delivery_format
string | null
region
string | null
volumeDiscounts
object[]
volume_discounts
object[]
recurringInterval
enum<string> | null
Available options:
DAY,
WEEK,
MONTH,
YEAR
recurring_interval
enum<string> | null
Available options:
DAY,
WEEK,
MONTH,
YEAR
recurringIntervalCount
number | null
recurring_interval_count
number | null
trialPeriod
number | null
trial_period
number | null
discountPercent
number
discount_percent
number
deliveryTime
number | null
delivery_time
number | null
deliveryTimeUnit
enum<string>
Available options:
minutes,
hours,
days
delivery_time_unit
enum<string>
Available options:
minutes,
hours,
days
categoryId
string<uuid> | null
category_id
string<uuid> | null
watermarkEnabled
boolean
watermark_enabled
boolean
watermarkText
string | null
watermark_text
string | null
redirectTime
number | null
redirect_time
number | null
variants
object[] | null
discordIntegration
boolean
discord_integration
boolean
discordSetRole
boolean
discord_set_role
boolean
discordServerId
string | null

Discord server (guild) id. On PATCH, changing this value clears stored primary, required and additional role IDs unless replacements are supplied in the same request.

discord_server_id
string | null

Discord server (guild) id. On PATCH, changing this value clears stored primary, required and additional role IDs unless replacements are supplied in the same request.

discordRoleId
string | null
discord_role_id
string | null
discordRequiredRoleId
string | null
Pattern: ^(?:[1-9][0-9]*|)$
discord_required_role_id
string | null

Existing Discord role required before purchase, independent of delivery. A numeric unsigned 64-bit Discord snowflake (maximum 18446744073709551615). Requires discord_server_id. Clear with null or an empty string. Buyers must sign in to the hosted shop and connect Discord in their account.

Pattern: ^(?:[1-9][0-9]*|)$
additionalRoleIds
string[]

Additional Discord role ids (max 20).

additional_role_ids
string[]

Additional Discord role ids (max 20).

discordRemoveRole
boolean
discord_remove_role
boolean
payWhatYouWant
boolean
pay_what_you_want
boolean
affiliateRevenuePercent
number
affiliate_revenue_percent
number
affiliateCustomerDiscountMode
enum<string>
Available options:
USE_STORE_DEFAULT,
CUSTOM,
DISABLED
affiliate_customer_discount_mode
enum<string>
Available options:
USE_STORE_DEFAULT,
CUSTOM,
DISABLED
affiliateCustomerDiscountPercent
number | null
affiliate_customer_discount_percent
number | null
discordOptional
boolean
discord_optional
boolean
licensingEnabled
boolean
licensing_enabled
boolean
licensePeriod
license_period
label_singular
string
label_plural
string
slug
string | null
seo_title
string | null

Search title of the product page (max 70 characters after collapsing whitespace). Null or blank clears it; the storefront then uses the product title.

seo_description
string | null

Search description of the product page (max 160 characters after collapsing whitespace). Null or blank clears it.

image_ids
string<uuid>[]

Gallery images in display order, at most 10: ids from POST /dev/v1/media (images of this shop). The first becomes the main image. Replaces the whole gallery; [] removes every image.

Maximum array length: 10

Response

Response for status 200

data
object
required
serials_import
object