GET/v1/tenants/{tenantId}/ecom_stores/{eComStoreId}/campaigns
Get campaigns
Lists all active and planned campaigns for the ecom store with SKUs in the store's assortment. Each campaign includes SKU pricing and selected member levels. validFrom and validTo remain date-only fields; use validFromAt (inclusive) and validToAt (exclusive) for B2C activation and expiry. Timestamps are resolved in the tenant time zone, also available from GET /settings; changing that zone is not supported. B2B availability continues to follow ordering dates.
Parameters
tenantIdrequiredeComStoreIdrequired
Responses
application/jsoncampaignsrequiredShow item fields
campaignTyperequiredThe campaign's type, which decides how to read each sku's campaignPrice
Allowed values"NORMAL""THREE_FOR_TWO"Example"THREE_FOR_TWO"codeoptional- Example
"SUMMER2024" currencyIsoCoderequiredISO 4217 currency code for campaign prices
Example"NOK"idrequired- Example
"01234567-89ab-cdef-0123-456789abcdef" loyaltyProgramoptionalLoyalty program associated with this campaign
Show child fields
idrequiredUnique identifier of the loyalty program
Example"01234567-89ab-cdef-0123-456789abcdef"namerequired- Example
"Premium Members Club"
memberLevelsrequiredEligible member levels. An empty list adds no level restriction; existing SKU membership requirements still apply. NORMAL explicitly means a program member with no configured level, not a non-member.
Show item fields
codeoptionalProvider member level code; null for NORMAL
idoptionalConfigured member level identifier; null for NORMAL
nameoptionalConfigured member level display name; null for NORMAL
typerequiredNORMAL is the base member level; CONFIGURED identifies a provider level
Allowed values"NORMAL""CONFIGURED"
namerequired- Example
"Summer Sale 2024" skusrequiredShow item fields
campaignPricerequiredThe price this sku sells at while the campaign runs. For a NORMAL campaign that is the discounted price; for THREE_FOR_TWO the unit price does not change, so it is the sku's normal price and campaignType is what carries the offer
- Format: BigDecimal
- Pattern: ^-?\d+(\.\d{1,2})?$
Example"199.00"loyaltyProgramMembershipRequiredrequiredWhether loyalty program membership is required to purchase this SKU at the campaign price
ExamplefalseskuIdrequiredUnique identifier of the SKU
Example"01234567-89ab-cdef-0123-456789abcdef"
statusrequiredCurrent status of the campaign
Allowed values"PLANNED""ACTIVE"timeZonerequiredTenant IANA time zone used to resolve campaign dates and times; also available from GET /settings. Changing the tenant time zone is not supported.
Example"Europe/Oslo"validFromrequiredSelected start date, without a time or offset. Retained for compatibility; use validFromAt for the inclusive start boundary.
- Format: date
Example"2024-06-01"validFromAtrequiredInclusive campaign start as an ISO 8601 datetime with the tenant time zone's UTC offset at this boundary. Apply the campaign when validFromAt <= now < validToAt.
- Format: date-time
Example"2024-06-01T00:00:00+02:00"validFromTimerequiredInclusive start time on validFrom, in HH:mm; 24:00 means next calendar midnight
Example"00:00"validTorequiredSelected end date, without a time or offset. Retained for compatibility; use validToAt for the exclusive end boundary.
- Format: date
Example"2024-08-31"validToAtrequiredExclusive campaign end as an ISO 8601 datetime with the tenant time zone's UTC offset at this boundary. The campaign is inactive at this instant. A selected 24:00 resolves to midnight on the next calendar date.
- Format: date-time
Example"2024-09-01T00:00:00+02:00"validToTimerequiredExclusive end time on validTo, in HH:mm; 24:00 means next calendar midnight
Example"24:00"
401Unauthorized - Invalid or missing authentication
Unauthorized - Invalid or missing authentication
application/jsonerrorrequiredStable error code
Example"INVALID_REQUEST"messagerequiredHuman-readable error message
Example"Invalid customer ID format"resolutionrequiredSuggested next action
Example"Correct the customer ID and retry the request"
403
application/jsonerrorrequiredStable error code
Example"INVALID_REQUEST"messagerequiredHuman-readable error message
Example"Invalid customer ID format"resolutionrequiredSuggested next action
Example"Correct the customer ID and retry the request"
500
application/jsonerrorrequiredStable error code
Example"INVALID_REQUEST"messagerequiredHuman-readable error message
Example"Invalid customer ID format"resolutionrequiredSuggested next action
Example"Correct the customer ID and retry the request"