Promotions

Promotions are special offers that users can redeem for various benefits, such as discounts or free trials. Outbound promotions are offers to third-party services, while inbound promotions are in-platform offers sponsored by third-party services.

Promotion Object

Promotion Structure
FieldTypeDescription
idsnowflakeThe ID of the promotion
trial_id?snowflakeThe ID of the subscription trial associated with the promotion
start_dateISO8601 timestampWhen the promotion starts
end_dateISO8601 timestampWhen the promotion ends
outbound_redemption_end_date?ISO8601 timestampWhen the promotion's redemption period ends
inbound_header_text?stringThe title of the inbound promotion
inbound_body_text?stringThe description of the inbound promotion
inbound_help_center_link?stringThe help center link of the inbound promotion
outbound_title?stringThe title of the outbound promotion
outbound_redemption_modal_body?stringThe description of the outbound promotion
outbound_terms_and_conditions?stringThe terms and conditions of the promotion
outbound_redemption_page_link? 1stringThe redemption page to claim the outbound promotion
outbound_redemption_url_format? 1 2stringThe redemption page to claim the outbound promotion
flags?integerThe promotion's flags
inbound_restricted_countries?array[string]The ISO 3166-1 alpha-2 codes of countries that the inbound promotion is not available in
outbound_restricted_countries?array[string]The ISO 3166-1 alpha-2 codes of countries that the outbound promotion is not available in
promotion_typeintegerThe type of promotion
partner_id?stringThe type of promotion partner
marketing_components?array[promotion marketing component object]The components used in marketing

1 Only either outbound_redemption_page_link or outbound_redemption_url_format will be present.

2 This field is a formatted string. {code} should be replaced with the claimed code.

Promotion Flags
ValueNameDescription
1 << 5IS_BLOCKED_IOSPromotion is not shown on iOS
1 << 6IS_OUTBOUND_REDEEMABLE_BY_TRIAL_USERSPromotion is redeemable by trial user
1 << 7SUPPRESS_NOTIFICATIONNotifications about the promotion are suppressed
Promotion Type
ValueNameDescription
0THIRD_PARTYThird-party promotion
1BOGOBOGO promotion
3THIRD_PARTY_INBOUNDThird-party inbound promotion
4THIRD_PARTY_OUTBOUNDThird-party outbound promotion
5MARKETING_MOMENTMarketing moment
6GIFT_PROMOTIONGift promotion
Promotion Partner Type
ValueDescription
steelseriesSteelSeries
kontrolfreekKontrolFreek

Promotion Marketing Component Object

Promotion Marketing Component Structure
FieldTypeDescription
component_typeintegerThe type of marketing component
idintegerThe ID of the component
promotion_idsnowflakeThe ID of the promotion
propertiesstringThe base64-encoded serialized PremiumMarketingComponentProperties protobuf
Promotion Marketing Component Type
ValueNameDescription
0ANNOUNCEMENT_MODALAnnonucement modal
1PREMIUM_TABPremium tab
2MARKETING_PAGE_BANNERMarketing page banner
3PAYMENT_MODAL_BANNERPayment modal banner
4MOBILE_BOTTOM_SHEETBottom sheet on mobile

Claimed Promotion Object

Claimed Promotion Structure
FieldTypeDescription
codestringThe code of the claimed promotion
user_idsnowflakeThe ID of the user who claimed the promotion
claimed_atISO8601 timestampWhen the promotion was claimed at
promotionpromotion objectThe promotion

Endpoints

Get Outbound Promotions

GET/outbound-promotions

Returns a list of promotion objects the current user is eligible for.

Query String Params
FieldTypeDescription
locale?stringThe language to return promotions in
platform?integerThe platform to get promotions for
Promotion Platform Type
ValueNameDescription
0DESKTOPDesktop
1MOBILEMobile

Get Promotions

GET/promotions

Returns a list of promotion objects the current user is eligible for.

Query String Params
FieldTypeDescription
locale?stringThe language to return promotions in
platform?integerThe platform to get promotions for

Get BOGO Promotions

GET/bogo-promotions

Same as above, except only returns promotions of type BOGO.

Query String Params
FieldTypeDescription
locale?stringThe language to return promotions in

Get Claimed Promotions

GET/users/@me/outbound-promotions/codes

Returns a list of claimed promotion for the current user.

Query String Params
FieldTypeDescription
locale?stringThe language to return promotions in

Claim Promotion

POST/outbound-promotions/{promotion.id}/claim

Claims a promotion. Returns a claimed promotion object on success.