Promotions
The Promotion object
idstringoptionalPublic identifier of the promotion.
namestringoptionalPromotion name, also shown on applied discounts.
descriptionstringoptionalOptional details for customers.
triggerenumoptionalautomatic promotions apply to every eligible cart; code promotions need a promo code. One of automatic, code.
codestringoptionalFor code promotions, an active promo code customers can share and enter in the cart. Null for automatic promotions and when only single-use or customer-specific codes exist.
availabilityenumoptionallive applies now; scheduled is active but outside its dates or weekly schedule; ended is past ends_at or ended. Paused promotions are not returned by the public API, so inactive doesn't appear here. One of live, scheduled, ended, inactive.
next_starts_attimestampoptionalFor scheduled promotions, when it next starts applying (looking up to a week ahead). Null otherwise.
ownerobjectoptionalWho runs it: type (store or network), id, name and logo_url.
typeenumoptionalHow the discount is calculated. One of percentage, fixed_amount, free_delivery, bogo.
valuenumberoptionalPercent off for percentage, amount off (minor units) for fixed_amount.
max_discount_amountintegeroptionalMaximum discount per order, in minor units.
currencystringoptionalCurrency of fixed_amount promotions.
min_subtotalintegeroptionalMinimum spend on the targeted items, in minor units.
min_itemsintegeroptionalMinimum number of targeted items.
applies_toobjectoptionalTargeting: products, categories, stores, exclude_products and exclude_categories lists of public IDs. Empty means the whole cart (of the owning store, for store promotions).
bogo_configobjectoptionalFor bogo: buy_quantity, get_quantity and discount_percent (100 means free). The cheapest units of each group are discounted.
first_order_onlybooleanoptionalOnly customers who have never placed a storefront order can use it.
usage_limit_per_customerintegeroptionalHow many times one customer can use it.
stackablebooleanoptionalWhether it combines with other stackable promotions.
starts_attimestampoptionalWhen the promotion starts.
ends_attimestampoptionalWhen the promotion ends.
schedulearray of objectsoptionalOptional weekly windows (days as ISO weekdays, start/end as HH:MM) in timezone when it applies.
timezonestringoptionalTimezone of the schedule windows.
image_urlstringoptionalPromotion image.
translationsobjectoptionalTranslated content.
created_attimestampoptionalTime the promotion was created.
updated_attimestampoptionalTime the promotion was last updated.
{
"id": "promotion_7Hq2xL9",
"name": "Weekday lunch 20% off",
"description": "20% off mains, weekdays 11:00-14:00.",
"trigger": "automatic",
"code": null,
"availability": "scheduled",
"next_starts_at": "2026-10-08T15:00:00Z",
"owner": {
"type": "store",
"id": "store_3Xb9kL2",
"name": "Corner Bistro",
"logo_url": "https://files.example.com/bistro.png"
},
"type": "percentage",
"value": 20,
"max_discount_amount": 1000,
"currency": "USD",
"min_subtotal": 1500,
"min_items": null,
"applies_to": {
"categories": [
"category_8Lq2nT4"
]
},
"bogo_config": null,
"first_order_only": false,
"usage_limit_per_customer": 1,
"stackable": false,
"starts_at": "2026-10-01T00:00:00Z",
"ends_at": "2026-12-31T23:59:59Z",
"schedule": [
{
"days": [
1,
2,
3,
4,
5
],
"start": "11:00",
"end": "14:00"
}
],
"timezone": "America/New_York",
"image_url": "https://files.example.com/lunch.png",
"translations": null,
"created_at": "2026-09-26T09:30:00Z",
"updated_at": "2026-09-26T09:30:00Z"
}/v1/promotionsQuery Promotions
Lists the storefront's live, public promotions: active, inside their date range and weekly schedule. Pass include=scheduled to also list active promotions that start later or are outside their weekly hours. With a network key the network's promotions and those of its member stores are returned; pass store to only list one member store's.
storestringoptionalNetwork member store public ID, to only list that store's promotions. Ignored for store keys.
includestringoptionalscheduled to also list active promotions that are outside their dates or weekly schedule right now (availability: scheduled), e.g. for an "upcoming offers" list.
/v1/promotionscurl https://api.fleetbase.io/v1/promotions?store=&include= \
-H "Authorization: Bearer flb_live_…"/v1/promotionsRetrieve a Promotion
Retrieves one public promotion of the storefront, including ones that are scheduled or have ended, so a shared link still explains the offer; check availability. Returns 404 for promotions that are paused, not public, or owned by another storefront.
/v1/promotionscurl https://api.fleetbase.io/v1/promotions \
-H "Authorization: Bearer flb_live_…"