Search Documentation
Search for a documentation page...
Promotions API
REST API endpoints for managing automatic storefront discounts.
Promotions are automatic discounts applied at checkout without a code. Each promotion takes a percentage or fixed amount off and can target specific products or collections, run over a date range, and be prioritized and stacked against other promotions.
List Promotions
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | number | 20 | Promotions per page (1-100) |
offset | number | 0 | Promotions to skip |
active | boolean | — | Filter by active status |
includeExpired | boolean | — | Include promotions whose end date has passed |
Response
Create Promotion
Creates an automatic discount. endDate must be after startDate. For fixed promotions on multi-currency stores, supply per-currency amounts via currencyAmounts.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Promotion name |
description | string | No | Optional description |
discountType | "percentage" | "fixed" | Yes | Discount type |
discountValue | number | Yes | Percentage (e.g. 10 = 10%) or fixed amount in store currency |
startDate | string | Yes | ISO 8601 datetime the promotion starts |
endDate | string | Yes | ISO 8601 datetime the promotion ends |
active | boolean | No | Whether the promotion is active (default true) |
priority | number | No | Priority when multiple apply, lower wins (default 1000) |
stackable | boolean | No | Whether it stacks with other promotions (default true) |
minQuantity | number | No | Minimum cart quantity to trigger (default 1) |
maxQuantity | number | No | Maximum quantity the promotion applies to |
products | string[] | No | Product UUIDs the promotion targets |
collections | string[] | No | Collection UUIDs the promotion targets |
color | string | No | Badge color hex (default #f5f5dc) |
currencyAmounts | object | No | Per-currency fixed amounts for multi-currency stores |
Response (201)
Get Promotion
Returns a single promotion by UUID, including its targeted products and collections.
Response
Update Promotion
Replaces the promotion's fields. Uses the same body as Create Promotion.
Request Body
Same fields as Create Promotion.
Response (200)
Delete Promotion
Hard-deletes the promotion by UUID.