A valid request URL is required to generate request examples{
"id": "<string>",
"object": "product",
"merchant_id": "<string>",
"name": "<string>",
"description": "<string>",
"active": true,
"images": [
"<string>"
],
"metadata": {},
"livemode": true,
"default_price_id": "<string>",
"unit_label": "<string>",
"product_kind": "digital",
"cross_sells": [
{
"price_id": "<string>",
"intent": "standard"
}
],
"created_at": 123,
"updated_at": 123,
"default_price": {
"id": "<string>",
"object": "price",
"product_id": "<string>",
"merchant_id": "<string>",
"unit_amount": 123,
"currency": "<string>",
"type": "one_time",
"active": true,
"nickname": "<string>",
"metadata": {},
"livemode": true,
"created_at": 123,
"updated_at": 123,
"recurring": {
"interval": "day",
"interval_count": 123,
"usage_type": "licensed"
}
},
"representative_price": {
"id": "<string>",
"object": "price",
"product_id": "<string>",
"merchant_id": "<string>",
"unit_amount": 123,
"currency": "<string>",
"type": "one_time",
"active": true,
"nickname": "<string>",
"metadata": {},
"livemode": true,
"created_at": 123,
"updated_at": 123,
"recurring": {
"interval": "day",
"interval_count": 123,
"usage_type": "licensed"
}
},
"prices_count": 123
}{
"error": {
"code": "INVALID_REQUEST",
"message": "invalid request body"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Create a product
Creates a new product in the catalog. The product is active by default and has no
prices or default price. Mutation endpoints (create, update, set_default_price) return
the base product shape: default_price, representative_price, and prices_count
are omitted; use GET to retrieve them.
A valid request URL is required to generate request examples{
"id": "<string>",
"object": "product",
"merchant_id": "<string>",
"name": "<string>",
"description": "<string>",
"active": true,
"images": [
"<string>"
],
"metadata": {},
"livemode": true,
"default_price_id": "<string>",
"unit_label": "<string>",
"product_kind": "digital",
"cross_sells": [
{
"price_id": "<string>",
"intent": "standard"
}
],
"created_at": 123,
"updated_at": 123,
"default_price": {
"id": "<string>",
"object": "price",
"product_id": "<string>",
"merchant_id": "<string>",
"unit_amount": 123,
"currency": "<string>",
"type": "one_time",
"active": true,
"nickname": "<string>",
"metadata": {},
"livemode": true,
"created_at": 123,
"updated_at": 123,
"recurring": {
"interval": "day",
"interval_count": 123,
"usage_type": "licensed"
}
},
"representative_price": {
"id": "<string>",
"object": "price",
"product_id": "<string>",
"merchant_id": "<string>",
"unit_amount": 123,
"currency": "<string>",
"type": "one_time",
"active": true,
"nickname": "<string>",
"metadata": {},
"livemode": true,
"created_at": 123,
"updated_at": 123,
"recurring": {
"interval": "day",
"interval_count": 123,
"usage_type": "licensed"
}
},
"prices_count": 123
}{
"error": {
"code": "INVALID_REQUEST",
"message": "invalid request body"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
A merchant secret key (sk_…) sent as Authorization: Bearer <key>.
Headers
Merchant ID when an authorized Platform acts for a connected Merchant. Omit when authenticating directly as that Merchant.
^mer_[0-9A-Za-z]{14}$A unique key that makes retries safe: the same key with the same request body returns the original response instead of repeating the operation.
255Body
Product name.
Product description.
Image URLs. Schemes javascript:, data:, and vbscript: are rejected.
Custom key-value metadata. Max 50 keys; keys up to 40 characters; values up to 500 characters.
Show child attributes
Show child attributes
Unit displayed at checkout (e.g. seat, hour, license).
Product kind. Defaults to other if omitted.
digital, physical, service, donation, other Cross-sell recommendations shown at checkout.
Show child attributes
Show child attributes
Response
The created product.
Product id (prod_…).
product ID of the account that owns the product (mer_…).
Product name.
Product description.
false when the product is archived.
Image URLs for the product.
Custom key-value pairs for your use.
Show child attributes
Show child attributes
true for live mode, false for test mode.
The product's default price (price_…), or null if none is set.
Unit displayed at checkout.
The kind of product, used to suggest checkout defaults. The fields a buyer completes are set on the payment link.
digital, physical, service, donation, other Cross-sell recommendations attached to the product, up to 10.
Show child attributes
Show child attributes
Unix epoch seconds.
Unix epoch seconds.
Inline-expanded default price. Present on GET and list responses; omitted on mutation endpoints (create, update, set_default_price).
Show child attributes
Show child attributes
Display-only fallback populated when no default is set but exactly one price exists. Present on GET and list responses; omitted on mutation endpoints. Must not be treated as the assigned default.
Show child attributes
Show child attributes
Total number of prices on this product. Present on GET and list responses; omitted on mutation endpoints.

