List discounts
GET/openapi/2026-07/discounts
Returns the discount list by query parameters.
Request
Query Parameters
- rebate_cta_otr: Amount-threshold fixed reduction.
- rebate_ctq_otr: Quantity-threshold fixed reduction.
- rebate_cta_otp: Amount-threshold percentage discount.
- rebate_ctq_otp: Quantity-threshold percentage discount.
- m_n_discount: M-for-N discount.
- flashsale: Flash sale discount.
- code_percent: Discount-code percentage discount.
- code_fix_price_reduction: Discount-code fixed reduction.
- code_bxgy: Discount-code buy X get Y.
- code_free_shipping: Discount-code free shipping. Example: ?discount_type=rebate_cta_otr&discount_type=rebate_ctq_otr
- ongoing: Ongoing.
- not_started: Not started.
- finished: Finished.
- paused: Paused. Example: ?progress=ongoing&progress=finished
- automatic: Applied automatically.
- discount_code: Applied by discount code. Example: ?discount_methods=automatic&discount_methods=discount_code
- product: Product discount.
- order: Order discount.
- shipping: Shipping discount. Example: ?discount_targets=product&discount_targets=order
- 1: Manual creation.
- 2: Goaffpro Affiliate Marketing.
- 3: Fintouch.
- 4: MambaSMS SMS & Marketing.
- 5: Stamped Loyalty & Referrals.
- 6: Product recommendation.
- 999: Other. Example: ?source_ids=3001&source_ids=3002
- product: Can combine with product discounts.
- order: Can combine with order discounts.
- shipping: Can combine with shipping discounts. Example: ?discount_combines=product&discount_combines=shipping
Cursor for pagination, use the cursor from the response to retrieve the next page
A limit on the number of objects to be returned. Ranges from 1 to 250. Default is 10
Fuzzy match keyword for discount name
Discount types used as filter values.
Discount progress states used as filter values.
Lower bound datetime for time-overlap filtering, format as "2006-01-02 15:04:05"
Upper bound datetime for time-overlap filtering, format as "2006-01-02 15:04:05"
Discount code
Discount methods used as filter values.
Explicit discount IDs used as filter values. Example: ?ids=1001&ids=1002
Discount target categories used as filter values.
Business source IDs used as filter values.
Other discount categories that can be combined.
Responses
- 200
OK
- application/json
- Schema
- Example
Schema
- Array [
product: Product discountorder: Order discountshipping: Shipping discountrebate_cta_otr: Amount-threshold fixed reductionrebate_ctq_otr: Quantity-threshold fixed reductionrebate_cta_otp: Amount-threshold percentage discountrebate_ctq_otp: Quantity-threshold percentage discountm_n_discount: M-for-N discountflashsale: Flash sale discountcode_percent: Discount-code percentage discountcode_fix_price_reduction: Discount-code fixed reductioncode_bxgy: Discount-code buy X get Ycode_free_shipping: Discount-code free shippingautomatic: Applied automaticallydiscount_code: Applied by discount codeongoing: Ongoingnot_started: Not startedfinished: Finishedpaused: Pausedno_condition: No condition requiredpurchase_quantity: Requires purchase quantitypurchase_amount: Requires purchase amountno_discount: No discountfree_acquisition: Free acquisitionpercent: Percentage discountfixed_price_reduction: Fixed amount reductionfixed_price: Fixed final pricefixed_quantity: Fixed quantity grantedproduct_price_reduction: Product-level price reduction- Array [
- ]
no_limit: No per-product purchase limitcustomer_all_product: Per customer per discount, accumulated across all eligible variantscustomer_product: Per customer per discount per productcustomer_variant: Per customer per discount per variantproduct: use product stockdiscount: set a custom promotion stockprice: Use sale pricecompare_at_price: Use compare-at/original pricedesc: Apply by product price in descending orderasc: Apply by product price in ascending orderproduct: Can combine with product discountsorder: Can combine with order discountsshipping: Can combine with shipping discountshighest: Apply the highest matched layer onlyall: Apply all matched layershighest_all: Apply all matched layers; quantities above the highest layer use the highest-layer benefitentitled: Only entitled products are includedexclude: Entitled products are excludedall: All products are includedproduct: Follow product stockdiscount: Use discount stockentitled: Only entitled products are includedexclude: Entitled products are excludedall: All products are includedproduct: Follow product stockdiscount: Use discount stock- Array [
- ]
valid: Validdeleted: Deletedcanceled: Canceled early- ]
error code
error message
data object
discounts object[]
Discount list in current page
Discount ID
Merchant-facing discount name
Storefront display name
Discount target category:
Discount type identifier:
Discount method identifier:
Primary discount code
Current progress status:
Start timestamp
End timestamp
Creation datetime string
Last update datetime string
discount_layer object
Layered discount summary
Condition type:
Benefit type:
layers object[]
Layered discount rules from lower to higher thresholds
Condition threshold value for this layer
Discount value granted when the condition is met
Number of items granted as the discount benefit
discount_rule object
Rule summary of limits and behavior
Maximum total usage count of the discount; -1 means unlimited
Maximum usage count per customer; -1 means unlimited
Maximum usage count per order; -1 means unlimited
Per-customer product limit strategy type:
Max times a customer can purchase each eligible product under the discount
Discount stock when stock-based limiting is enabled
Whether the promotion stock follows the product stock:
Virtual sales value used for display or ranking
Price base used for discount calculation:
Reserved extension payload
Product ordering strategy used when applying discounts:
Other discount categories that can be combined:
Whether all required items must be fully met
Scope strategy for multi-layer discount evaluation:
Maximum usage count per discount code; -1 means unlimited. Only applicable to non-automatic discounts
Maximum usage count per customer per discount code. Only applicable to non-automatic discounts
Whether per-product extension discount settings are enabled
entitled_product object
Product scope summary
Product IDs included in the entitled scope
Variant IDs included in the entitled scope
Collection IDs included in the entitled scope
sort object
Sorting settings for entitled products
The field used to sort selected products
The sort direction
If non-empty, sort by time range for legacy flash sale compatibility. Unit: seconds
Selection strategy identifier:
sku_extends object
Per-variant extended settings keyed by variant ID
property name* SkuExtendResp
Discount value for this variant. Currently only supports fixed price reduction; stored as a string
Minimum purchase quantity for this variant
Custom display sequence number for sorting
Virtual sales count configured for this variant
Whether the activity stock follows the product stock:
Activity-level stock limit for this variant
Collection ID if this variant was selected via a collection
entitled_customer object
Customer scope summary
Explicit customer IDs that can use the discount
Customer segment IDs that can use the discount
obtain_product object
Obtain-product scope summary
Product IDs included in the entitled scope
Variant IDs included in the entitled scope
Collection IDs included in the entitled scope
sort object
Sorting settings for entitled products
The field used to sort selected products
The sort direction
If non-empty, sort by time range for legacy flash sale compatibility. Unit: seconds
Selection strategy identifier:
sku_extends object
Per-variant extended settings keyed by variant ID
property name* SkuExtendResp
Discount value for this variant. Currently only supports fixed price reduction; stored as a string
Minimum purchase quantity for this variant
Custom display sequence number for sorting
Virtual sales count configured for this variant
Whether the activity stock follows the product stock:
Activity-level stock limit for this variant
Collection ID if this variant was selected via a collection
entitled_area object
Geographic areas where the discount can be applied. Only present for non-automatic discounts
areas object[]
Geographic areas where the discount can be applied
ISO country code
Province or region codes under the country
Source name
Start datetime string
End datetime string
Marketing campaign state:
Cursor for pagination
Whether there are more records
Total count of discounts
{
"code": "string",
"message": "string",
"data": {
"discounts": [
{
"id": "string",
"discount_name": "string",
"display_name": "string",
"discount_target": "string",
"discount_type": "string",
"discount_method": "string",
"discount_code": "string",
"progress": "string",
"starts_at": 0,
"ends_at": 0,
"created_at": "string",
"updated_at": "string",
"discount_layer": {
"condition_type": "string",
"obtain_type": "string",
"layers": [
{
"condition_value": "string",
"obtain_value": "string",
"obtain_count": 0
}
]
},
"discount_rule": {
"limit_max_discount": 0,
"limit_user_discount": 0,
"limit_order_discount": 0,
"limit_user_product_type": "string",
"limit_user_product_discount": 0,
"stock": 0,
"follow_stock": "string",
"virtual_sales": 0,
"price_rule": "string",
"extends": "string",
"product_discount_order": "string",
"discount_combines": [
"string"
],
"obtain_full": true,
"mn_discount_scope": "string",
"limit_code_max_discount": 0,
"limit_code_user_discount": 0,
"enable_product_extends": true
},
"entitled_product": {
"product_ids": [
"string"
],
"variant_ids": [
"string"
],
"collection_ids": [
"string"
],
"sort": {
"by": "string",
"direction": "string",
"before": "string"
},
"selection": "string",
"sku_extends": {}
},
"entitled_customer": {
"customer_ids": [
"string"
],
"customer_segment_ids": [
"string"
]
},
"obtain_product": {
"product_ids": [
"string"
],
"variant_ids": [
"string"
],
"collection_ids": [
"string"
],
"sort": {
"by": "string",
"direction": "string",
"before": "string"
},
"selection": "string",
"sku_extends": {}
},
"entitled_area": {
"areas": [
{
"country_code": "string",
"province_codes": [
"string"
]
}
]
},
"source_name": "string",
"starts_date": "string",
"ends_date": "string",
"state": "string"
}
],
"cursor": "string",
"has_more": true,
"total_count": 0
}
}