S2S API Changelog
2026.10.30
- Changed
show_global_max_purchase_counteron store items so it also applies when the item has a per-user limit, showing the player's own purchases left after their first purchase, in get_store_items, get_all_store_items, create_store_item, bulk_update_store_items, and update_store_item
2026.10.29
- Added optional
display_optionsto items, setting how the hub displays the item's duration (largest unit and whether durations stack), returned wherever items appear in responses
2026.10.28
- Added optional
nested_items_choicesto bundles, defining bonus slots the player fills before purchase on top of the always-deliverednested_items - Added the
storetoken type to expression tokens in campaign conditions and variables, and in the attribute variables of items, store items, offers, pages, news, coupons, daily rewards, loyalty, and segment groups, for example in create_campaign and update_campaign_graph - Added optional
wave, a number from -1 to 1, tolimited_stock_settingsin get_stores, create_store, get_store, update_store, and get_store_by_store_item - Added optional
durationto browser popup notification nodes in create_campaign, update_campaign, get_campaign_graph, and update_campaign_graph, setting how long the popup stays visible to the player in seconds (default 30 days)
2026.10.22
- Added optional
quantityto theitemsattached to campaign message nodes (email, push, popup, Discord, webhook, and prompt nodes) in create_campaign, update_campaign, get_campaign_graph, and update_campaign_graph - Made
store_item_idoptional on theitemsattached to campaign message nodes in the same endpoints, so an item can be referenced byitem_idalone
2026.10.21
- Added optional
disputesto payments in get_payments, listing each payment's chargebacks with their amounts, status, reason, and fees - Added required
amount_decimal, the amount in major units ofcurrency, to disputes in get_disputes and to payment refunds in get_payments - Added optional
amount_usd, the refunded amount booked in USD cents, to payment refunds in get_payments - Corrected the documented units of dispute and dispute fee amounts in get_disputes:
amount_usd,amount_eur, and the feeamountandfixed_feeare in minor units (cents), not major units
2026.10.20
- Added the
upsellcampaign event type to get_campaigns, create_campaign, get_campaigns_by_ids, get_campaign, update_campaign, and update_campaign_graph
2026.10.19
- Added optional
warningsto the create_order response, listing request fields whose invalid values, like an unsupportedlocaleorcountry, were ignored - Added optional
variant(verticalorhorizontalgrid layout),custom_badge_image_url, andcustom_badge_text_rotationto pick-one offer settings returned by get_items, get_store_items, get_all_store_items, create_store_item, bulk_update_store_items, and update_store_item
2026.10.15
- Added rolling offers: a new
rollingitem type, arolling_offerstore item object type, and theRollingReadschema in item and store item responses - Added optional
is_bonus_targetto bundle nested items, choosing which items receive the bundle bonus instead of only the featured one - Added optional
bonus_fixed, a fixed bonus amount, to the nested items returned by get_items, get_store_items, get_all_store_items, create_store_item, bulk_update_store_items, update_store_item, get_daily_rewards, create_daily_reward, get_daily_reward, update_daily_reward, and copy_daily_reward - Added optional
availability_calendarandreset_calendarto pick-one offers returned by get_items, get_store_items, get_all_store_items, create_store_item, bulk_update_store_items, and update_store_item, setting when the offer is available and when players may pick again
2026.10.14
- Added optional
display_settingsto store items across create_store_item, batch_create_store_item, bulk_update_store_items, update_store_item, get_store_items, and get_all_store_items, with aplacementofinlineorfull_widthfor the item's card in the store grid - Added optional
hide_day_numberto daily rewards page blocks across create_page, update_page, bulk_update_page, get_pages, get_page, and translate_page - Added optional
keep_original_image_ratioto featured article page blocks across create_page, update_page, bulk_update_page, get_pages, get_page, and translate_page
2026.10.12
- Added optional
unavailable_behavior,unavailable_title, andunavailable_messageto daily rewards, loyalty program, and progression program page blocks across create_page, update_page, bulk_update_page, get_pages, get_page, and translate_page, controlling what the block shows when the player has no program - Added optional
idsquery parameter to get_creators to fetch up to 100 creators by ID - Renamed the operation ID of
POST /v1/players/{player_id}/issue_loyalty_pointsfromissue_loyalty_pointsto issue_player_loyalty_points. It previously shared that ID withPOST /v1/loyalty/{loyalty_settings_id}/issue_points, which keeps issue_loyalty_points
2026.10.08
- Added optional
card_template_optionsto store items across create_store_item, batch_create_store_item, bulk_update_store_items, update_store_item, get_store_items, and get_all_store_items, letting you pick the bonus badge template (defaultorbonus) per item - Added the
customdaily reward program type to get_daily_rewards, create_daily_reward, get_daily_reward, update_daily_reward, and copy_daily_reward, for programs whose pace your game controls - Added optional
hidden_image_urlto the rewards settings on create_daily_reward and update_daily_reward, also returned by get_daily_rewards, get_daily_reward, and copy_daily_reward - Added optional
quantity_expressionto tier items on update_loyalty_tiers and get_loyalty_tiers, a math expression that computes the item quantity
2026.10.05
- Replaced the
sort_fieldandsort_orderquery parameters on get_news_list with a singlearticle_sort(newest_first,oldest_first, ormanual), and removed theNewsSortFieldschema - Added an optional
localeplayer attribute, accepted by update_player, upsert_player, create_order, and authorize_user, and returned wherever player attributes appear - Added optional
requirements_expressionto virtual currency items returned by get_items and the store item endpoints, defining the rules by which the currency is shown to the player - Removed
progress_reset_atfrom pick-one items returned by get_items and the store item endpoints - Added the
requirements_not_metvalue to the rewardissue_statuson get_order and update_order - Added optional
inputandctxto each validation error in422responses on every endpoint, echoing the rejected value and any extra details about the failed check
2026.10.02
- Added optional
refundsto payments in get_payments. Each refund has astatus(pending,succeeded, orfailed),amount,currency,reason,created_at, andsucceeded_at.refund_reasonnow holds the chargeback reason category for chargebacks - Added optional
display_as_profile_balanceto campaign custom attributes, across create_campaign, update_campaign, get_campaigns, get_campaigns_by_ids, get_campaign, and update_campaign_graph
2026.09.28
- Replaced
eligibility_ruleson subscription offers with a nullableexpression, so any rule anExpressioncan describe decides who gets an offer. The field is gone from get_items and the store item endpoints, along with theSubscriptionOfferEligibilityschema - Added optional
eligible_rewardsto create_order, which overrides the virtual currency rewards granted once the order is paid. The response reports each reward asapplied,declined, orinvalid_amount - Added optional
modetobonus_items_settingson store items and store promotions.addstacks the bonus items on top of the store item's own, and the defaultreplacekeeps the current behavior - Deprecated
view_optionon items, in requests to create_item, update_item, bulk_create_or_update_items, and bulk_update_items, and wherever an item is returned, including coupons, daily rewards, loyalty tiers, and store items - Added optional
transparent_backgroundtoImageBannerBlockin page layouts, across create_page, update_page, bulk_update_page, get_pages, get_page, and translate_page
2026.09.24
- Added upgrade_player_subscription endpoint, which moves a player's subscription to another plan by
plan_keyor explicit overrides such asamount,cycle_period, andrenewal_type. Nothing is charged right away, and the new plan takes effect at the next renewal
2026.09.23
- Added piggy bank offers — a
piggy_bankitem type and aPiggyBankReadschema with tiers unlocked by a player custom attribute, returned by get_items and the store item endpoints, where a newobject_typefield says what each card holds - Merged the five expression schemas into one recursive
Expression, used by itemquantity_expression, newsrequirements_expression, and campaignvariables, and added afunctiontoken type.nameis no longer required onquantity_expression - Added nullable
opened_atto orders, the Unix time the player first opened the order's checkout page, on get_orders, get_order, and update_order
2026.09.22
- Added
GrantDiscordRoleNodeandRemoveDiscordRoleNodeto campaign graphs, which give a player the Discord role named inrole_idor take it away, across create_campaign, update_campaign, get_campaign_graph, and update_campaign_graph
2026.09.21
- Added
FeaturedArticleBlockto page layouts — a single pinned article, or one rotated out of a collection everyrotation_periodseconds — across the page endpoints and thepage_blockunion onAddPageBlockNode - Added optional
default_valueto the custom attributes a campaign defines, the value a player falls back to when none is stored for them, on get_campaigns, create_campaign, get_campaigns_by_ids, get_campaign, update_campaign, and update_campaign_graph
2026.09.17
- Bounded the pagination parameters on the list endpoints —
limitnow caps at 300 on 26 endpoints andoffsetmust be 0 or greater on 24 of them. The lower bound onlimitis exclusive everywhere except get_orders, solimit=1no longer validates - Capped every ID path and query parameter at 32 characters, covering 31 parameter names across 105 operations, from the resource IDs in the path to filters like
category_idon get_items and thestart_after_idcursor on get_orders - Marked the
offsetquery parameter on get_orders asdeprecatedin the spec, which its description has said since 2026.09.16. Usestart_after_idinstead - Removed the placeholder
An enumeration.description from ten enum schemas, includingResourceState,NewsState,NewsGroup,NewsSortField,ItemPriceType,ItemStackableType,ItemOrderType,CouponGeneratedType,RangeField, andUnsetType - Removed the description from the
countryquery parameter on get_price_points, which explained that the two-letter ISO 3166-1 alpha-2 code drives price localization. The^[A-Z]{2}$pattern still documents the format
2026.09.16
- Added a server-side store flow — upsert_player sets the
countryandplatforma player's store is priced with, get_player_store_items returns the personalized offers the Game Hub would show them, and create_order charges those offers bystore_item_idinstead ofsku, with an optionalexpected_priceto catch a mismatch and requiredcurrencyandamounton the response - Deprecated the
offsetquery parameter on get_orders in favor of the newstart_after_id, a cursor that takes theidof the last order on the previous page - Added a
discord_linkedvalue to theCampaignEventTypeenum, triggering a campaign when a player links their Discord account, across get_campaigns, create_campaign, get_campaigns_by_ids, get_campaign, update_campaign, and update_campaign_graph
2026.09.11
- Added a
primaryvalue to thePaymentMethodDisplayenum, marking a payment method as the pre-selected option at the top of the checkout form, alongside the existingautoandexpress. ItsPaymentMethodSettingsschema is still not referenced by any endpoint
2026.09.10
- Renamed the
fieldquery parameter toorder_byon get_payments and added the same parameter to get_disputes, where it acceptscreated_atorupdated_at. On both endpoints the named timestamp now sets the sort order as well as the fieldstart_at/end_atfilter on - Added
PWAPromptPopupActionNodeto campaign graphs — a PWA install ask rendered as a plain Game Hub popup, carrying the same content and offer-linking fields asPWAPromptActionNodebut without itspositionandskip_dialogplacement controls - Added read-only
mode(exclusiveorinclusive) to lootbox hard pity, saying whether a guarantee replaces the roll it lands on or arrives on top of it, across the item, store item, and daily reward responses - Added optional
show_descriptionto item categories, controlling whether the categorydescriptionis displayed, on create_item_category, update_item_category, bulk_update_item_categories, get_item_category, and get_item_categories - Clarified
amount_usdon get_orders, get_order, and update_order — before payment it is an estimate converted from the order currency and may change once the order is paid, rather than a value only set on payment - Added optional
selected_plan_lockedto order items on create_order, which pins the checkout page to the plan named inselected_plan_keyso the player cannot switch plans
2026.09.08
- Added the get_disputes and get_fraud_alerts endpoints, which list the chargebacks and issuer fraud alerts raised against the game's payments, with amounts booked in USD and EUR and dispute fees flagged as processor-reported or estimated
- Added the get_gdpr_request endpoint, which looks up a data removal request by
email,user_id, orplayer_idand returns itsidandstatus(pending,in_progress,deferred,failed, orcompleted) - Marked
secret_redactedread-only on get_webhooks, get_webhook, and update_webhook, documenting that the masked secret is returned but never accepted
2026.09.07
- Added
CreateOnboardingPlayerBannerActionNodeto campaign graphs — a Game Hub banner holding up to 10 onboarding tasks (submit_email,pwa_install, orwebpush_subscribe), each worth points toward a loyalty or progression program and up to 10 item rewards
2026.09.03
- Added four node types to campaign graphs —
EmailPromptActionNodeandWebpushPromptActionNodeask the player for an email address or push permission,GrantVirtualCurrencyNodeandGrantPointsNodehand out currency and loyalty or progression points — plus anemail_submittedcampaign trigger that fires when a player submits their email - Added
ArticleCollectionBlockto page layouts, listing the pages of a collection as aslideror agrid, across the page endpoints and thepage_blockunion onAddPageBlockNode - Added read-only
amount_usdto orders — the order amount in USD cents, set once the order is paid — on get_orders, get_order, and update_order - Added optional
show_global_max_purchase_counterto store items, which shows the player how many purchases are left against the global limit when there is no per-user limit, across get_all_store_items, get_store_items, create_store_item, update_store_item, bulk_update_store_items, and batch_create_store_item
2026.09.02
- Added required
sales_channel(game_hub,checkout,android_sdk, orcheckout_link) to every order returned by get_orders, get_order, and update_order, naming the surface the order was placed through - Added required
created_at(Unix epoch time) to each order in get_orders, which the single-order endpoints already returned - Added optional
billing_addressto create_order, carrying the player's billingzipor postal code
2026.08.31
- Split the shared
GraphRootschema intoCampaignGraph,PageGraph, andSegmentGroupGraph, so each graph only accepts the node types that run in its context — pagegraph_rulesare down toAddPageBlockNode,ConditionNode, andSplitNode - Removed the store nodes (
AddStoreNode,SortStoreItemsNode,ItemCategorySortNode), the payment risk nodes (DeclinePaymentNode,Require3DSNode,RequirePennyDropNode,BanUserNode,BatchBanUserNode), and theSortStoreTypeenum from the API - Made
noncerequired on reject_authorization — a rejection has to name the Game Hub session it belongs to, where the field was optional before - Typed the
htmlmap on translate_page asSanitizedHtmlLocaleMappingrather thanLocaleMapping, marking those values as sanitized HTML. Same locale keys, same string values, no change on the wire
2026.08.27
- Added the reject_authorization endpoint, which ends a Game Hub login the game server turns down and returns a URL that shows the player the error
- Added optional
start_at,end_at, andplatformquery filters to get_orders, narrowing the list by order creation time (Unix timestamp in seconds) and by platform - Added optional
platform(any,ios,android, orother) to each order returned by get_orders, so the platform an order came from is readable without matching it back to the filter used
2026.08.26
- Added
RequirePennyDropNodeto campaign, page, and segment-group graphs — a payment risk action node that lets the capture through but makes billing verify the card with a penny drop - Added optional
pin_scope(globalorcollection) to pages, setting whether a pinned page ranks first among the pages of all sibling collections or only within its own collection, across get_pages, get_page, create_page, update_page, bulk_update_page, and translate_page. An unset scope is read asglobal
2026.08.25
- Added optional
quantity_expressionto nested items, so a child item inside a bundle, subscription plan, loyalty tier, or daily reward can compute its amount from a formula, and added aPublicNestedItemschema that keeps that formula out of player-facing responses
2026.08.24
- Added
price_step_upandprogress_reset_atto lootbox settings — a ladder of up to 50 price steps that changes what a lootbox costs as a player keeps opening it — returned by the item and store item endpoints - Added
collection_idto update_news and bulk_update_news, pluscollection_id,has_collection, andstatefilters on get_news_list - Moved get_dispute_evidence, upsert_dispute_evidence, and upload_dispute_evidence_file out of the
Paymentstag into aPayments' Dispute Evidencetag of their own, so they get their own section in the API reference
2026.08.20
- Added four payment risk action nodes —
DeclinePaymentNode,Require3DSNode,BanUserNode, andBatchBanUserNode— to campaign, page, and segment-group graphs - Added the update_creator_terms endpoint for correcting an accepted terms record in place, and a
legal_namefield to the creatortermsobject on every creator endpoint - Replaced
lootbox_settings.pityon public lootboxes with amechanicsarray on the lootbox itself, reporting the pity progress that applies to the player, across the daily reward endpoints - Limited resource-reference ID fields on the store promotion, store, loyalty, daily reward, order, and payment endpoints to 32 characters, continuing the cap already applied to catalog, graph, coupon, and creator payloads
- Added optional
card_issuer_bankandcard_issuing_countryto get_payments — the issuing bank name and ISO 3166-1 alpha-2 country resolved from the card BIN, best-effort and empty for non-card payments - Added ten Aghanim-maintained engagement attributes to update_player —
last_purchase_date,last_purchase_item_id,last_purchase_sku,last_purchase_amount,purchases_count_rp,last_communication_date,last_email_date,last_hub_popup_date, and the twogame_hub_last_sent_webpush_*timestamps - Widened
price_decimalon create_order to accept a decimal string as well as a number, so clients can send exact amounts without going through a float - Renamed the
player_infoschema on authorize_user fromPlayerInfotoLoginPlayerInfo, which also types thecustom_attributesvalues as booleans, numbers, strings, or arrays of those instead of leaving them unconstrained
2026.08.17
- Added optional
quantity_expressionto items — a math expression that computes the quantity of a stackable item — writable on the item endpoints and returned wherever an item is embedded, including store items, coupons, and orders - Added an optional
experimentsarray to orders, recording up to 20 A/B test assignments asexperiment_keyandvariant_keypairs, on create_order, get_order, and update_order - Limited resource-reference ID fields on the coupon and creator endpoints to 32 characters, completing the cap already applied to catalog, store, graph, and page payloads
- Narrowed the item union on get_items and in store item responses from
anyOftooneOf, so generated clients treatItemRead,LootboxRead,SubscriptionRead, andVirtualCurrencyReadas mutually exclusive variants - Added the
PaymentMethodSettingsschema and its three enums —PaymentMethodDisplay(auto,express),BillingAddressCollection(full,zip_only,none), andEmailCollection(auto,none,required) — describing per-payment-method checkout behavior. No endpoint references them yet - Renamed the get_creators response schema from
PaginatedResponse_list_aghanim.creator.schemas.CreatorRead__toPaginatedResponse_list_CreatorRead__
2026.08.12
- Added ten
tenjin_*attribution attributes to player attributes, writable on update_player, create_order, and authorize_user - Limited resource-reference ID request fields on graph action nodes and page blocks to 32 characters, across campaign, page, and segment-group endpoints
- Added optional
position(toporbottom) andskip_dialogto the PWA prompt action node in campaign, page, and segment-group graphs
2026.08.11
- Added optional
save_payment_method_enabledto orders — whether the player may save a card or wallet for future purchases, enabled by default — on create_order, get_order, and update_order - Added the
player.updateevent type to the webhook subscription list on create_webhook, update_webhook, get_webhooks, and get_webhook - Documented the dispute evidence fields returned by get_dispute_evidence, upsert_dispute_evidence, and upload_dispute_evidence_file, including what
usage_idholds and what each player attribute means
2026.08.10
- Added optional
header_image_urlto item categories, alongside the existingimage_url,divider_image_url, andbackground_image_url, across get_item_categories, create_item_category, get_item_category, update_item_category, and bulk_update_item_categories - Added optional
is_hub_url_paramto campaign custom attributes, marking an attribute as usable as a hub URL parameter, across create_campaign, update_campaign, get_campaigns, get_campaign, get_campaigns_by_ids, and update_campaign_graph - Documented that the
countriesfilter on get_payments takes ISO 3166-1 alpha-2 codes, such asUS,DE
2026.08.08
- Added dispute evidence on payments — get_dispute_evidence, upsert_dispute_evidence, and upload_dispute_evidence_file record whether a purchase was consumed, attach supporting files, and store game-side facts about the player
- Added optional
registered_at,first_login_ip, andis_verifiedplayer attributes to update_player, writable independently of the dispute evidence endpoints
2026.08.06
- Added an optional
earnings_capto creators — alimit_usd_centsamount measured over aweekormonthperiod — readable on every creator endpoint and settable on update_creator - Added a
mechanicsarray to public lootbox settings in daily reward responses, reporting hard pity progress and the groups guaranteed at the next threshold - Added the get_orders endpoint, returning a list of orders paged with
limitandoffset - Added optional
child_sort_attribute_nameto item categories — the player list attribute holding child category slugs in the order they must be shown — across get_item_categories, create_item_category, get_item_category, update_item_category, and bulk_update_item_categories
2026.08.04
- Added optional
availability_calendarto store items — either a list of explicitperiodsor a daily/weeklyrecurrencewith weekdays and a UTC time window — as an alternative to the singlestart_at/end_atwindow - Added optional
grid_mode(autoormanual) and a per-breakpointgrid_configto daily reward settings, controlling the reward grid layout on the hub - Added the per-player
is_wonflag to nested lootbox items in daily reward responses, by switching lootbox settings to the newPublicLootboxSettings,PublicLootboxGroup, andPublicLootboxNestedItemschemas across get_daily_rewards, get_daily_reward, create_daily_reward, update_daily_reward, and copy_daily_reward - Added optional
background_image_urlandcard_template_idto theprofile_displayobject on campaign custom attributes, across create_campaign, update_campaign, get_campaigns, get_campaign, get_campaigns_by_ids, and update_campaign_graph - Added
bonus_items_settingsto each entry ofbenefitsin store item responses across get_all_store_items, get_store_items, create_store_item, update_store_item, and bulk_update_store_items
2026.08.03
- Added optional
discount_duration— acyclescount orforever— to subscription offers and subscription plans across item, store item, and daily reward endpoints - Added optional
profile_display(label, icon, and value format) to campaign custom attributes, controlling how an attribute is presented on the hub profile - Added the transfer_player_subscription endpoint to move a subscription to another player in the same game, keeping the plan, billing schedule, and saved payment method
2026.07.30
- Added webhook-driven daily rewards — an optional
webhook_idon daily reward programs plus adaily_reward.getwebhook event type - Added a
reward_modeofrepeatingornon_repeatingand anis_wonflag to lootbox nested items across item, store item, and daily reward endpoints - Added the
UserProfileBlockpage block type to page layouts and theAddPageBlockNodegraph node - Added optional
create_default_coupon(defaulttrue) to create_creator to skip creating the default creator promo coupon
2026.07.27
- Removed the campaign store items, user store items, virtual SKU report, and virtual store item delete endpoints, along with the
UserStoreItem,VirtualSKUStat, andVirtualStoreItemUserschemas (breaking, no deprecation) - Added optional
creator_settingsto create_order, with anattribution_modeofpersistent(default) orone_timeto control whether a creator coupon code links the player to the creator for future purchases - Documented that the price template
keyis generated fromnamewhen omitted in create_price_template
2026.07.20
- Restructured item, lootbox, and subscription read models — removed
is_system, switched lootbox groups toanyOf, and consolidatedSubscriptionRead - Limited resource-reference ID request fields to 32 characters across catalog, campaign, page, store item, and store promotion endpoints
- Added the
ItemCategorySortNodegraph node type to campaign, page, and segment-group graphs - Added a
not_foundsync status and channel view-average fields to get_creator_social_accounts - Removed the unused
LocaleMappingandPlayerInfoV1schemas
2026.07.14
- Increased the
skumaximum length from 100 to 255 characters across catalog items, store items, coupons, daily rewards, and loyalty tiers
2026.07.10
- Added the
VED(Venezuelan bolívar) andZWG(Zimbabwe Gold) currency codes to the shared currency enum used across all catalog, order, pricing, and reward endpoints - Added the
XCG(Caribbean guilder) currency code to the shared currency enum used across all catalog, order, pricing, and reward endpoints - Added the get_creator_social_accounts endpoint
2026.07.07
- Removed 13 non-circulating ISO 4217 codes (
BOV,CHE,CHW,CLF,COU,CUC,HRK,MXV,SLL,USN,UYI,UYW,XDR) from the shared currency enum (breaking)
2026.07.02
- Added the copy_store_promotion endpoint to duplicate an existing store promotion
- Added optional
custom_icon_urlto loyalty settings across get_loyalty_settings and update_loyalty_settings
2026.07.01
- Added
requirements_expressiontargeting rules — content is shown only to matching users — to News and Pages across the news endpoints (get_news_list, create_news, bulk_update_news, get_news_post, update_news) and page endpoints (get_pages, create_page, bulk_update_page, get_page, update_page, translate_page) - Added optional
created_from_campaign_node_idandcreated_from_campaign_versionto store item responses across the store item endpoints (get_all_store_items, get_store_items, get_campaign_store_items, get_user_store_items, create_store_item, update_store_item, bulk_update_store_items) - Removed the
DELETE /v1/campaigns/{campaign_id}/objectsendpoint (breaking) - Added a 32-character max length to the
creator_program_idfield on update_player - Removed the internal
aghanim__api__player__schemas__PlayerInfoandaghanim__user__schemas__PlayerInfoschemas
2026.06.26
- Added an optional
category_idto the Latest Pages layout block, letting it scope content to a specific category, across the page endpoints (get_pages, create_page, bulk_update_page, get_page, update_page, translate_page)
2026.06.20
- Added Progressive Web App (PWA) support — a new
pwa_opencampaign event type across the campaign endpoints (get_campaigns, create_campaign, get_campaigns_by_ids, get_campaign, update_campaign, update_campaign_graph) and new optionalfirst_pwa_install_at,pwa_install_at, andpwa_visit_atplayer attributes on update_player
2026.06.19
- Added creator country filtering — a new get_creator_countries endpoint and an optional
countryquery parameter on get_creators - Renamed the
analytics.checkout.payment_method.selectedwebhook event type toanalytics.checkout.payment_method.selectacross all webhook endpoints (get_webhooks, create_webhook, get_webhook, update_webhook, expire_webhook_secret, reveal_webhook_secret) (breaking)
2026.06.18
- Renamed the
analytics.checkout.payment_method.openwebhook event type toanalytics.checkout.payment_method.selectacross all webhook endpoints (get_webhooks, create_webhook, get_webhook, update_webhook, expire_webhook_secret, reveal_webhook_secret) (breaking) - Added a 32-character max length to the news
idandcollection_idfields and the segmentidfield across the news and segment endpoints - Added a 32-character max length to the
locale_idfield on create_translation_glossary
2026.06.16
- Removed the deprecated single-item coupon fields
item_id,quantity, anditemacross create_coupon, update_coupon, bulk_update_coupon, get_coupon, get_coupons, and get_user_coupons (breaking; usefree_itemsanditemsinstead)
2026.06.13
- Added support for abandoned payments — the
abandonedpayment status is now returned by get_payments, and a newpayment.abandonedwebhook event type was added across the webhook endpoints (get_webhooks, create_webhook, get_webhook, update_webhook, expire_webhook_secret, reveal_webhook_secret) - Added new
analytics.checkout.payment_method.selectandanalytics.checkout.payment_method.closewebhook event types across all webhook endpoints (get_webhooks, create_webhook, get_webhook, update_webhook, expire_webhook_secret, reveal_webhook_secret)
2026.06.12
- Added optional
store_item_discount_limit_percentandstore_item_bonus_limit_percentfields to cap combined store-item-plus-coupon discounts and bonuses across create_coupon, update_coupon, bulk_update_coupon, get_coupon, get_coupons, and get_user_coupons
2026.06.10
- Added an optional operator-only
annotation(note,display_name) to creator responses across get_creators, create_creator, get_creator, and update_creator - Documented the required
loyalty_settings_idpath parameter on issue_loyalty_points - Relaxed the
emailresponse field to a plain string (dropped theemailformat constraint) on get_order and update_order
2026.06.08
- Removed the Cashback Rewards resource — all
/v1/cashback_rewardsendpoints and theCashbackRewardCreate,CashbackRewardRead, andCashbackRewardUpdateschemas (breaking, no deprecation) - Added optional
scope(publicorprivate, defaultprivate) to campaign custom attributes across get_campaigns, create_campaign, get_campaigns_by_ids, get_campaign, update_campaign, and update_campaign_graph
2026.06.04
- Added a new Creators resource with full CRUD (get_creators, create_creator, get_creator, update_creator, delete_creator)
2026.06.03
- Added optional
vc_settings/allow_non_secure_authto embedded virtual currency items across daily reward, item, and store item endpoints (get_daily_rewards, create_daily_reward, get_daily_reward, update_daily_reward, copy_daily_reward, get_items, get_all_store_items, get_campaign_store_items, get_user_store_items, get_store_items, bulk_update_store_items, create_store_item, update_store_item) - Added optional
ga4_user_idto player attributes across create_order, update_player, authorize_user, get_order, update_order, and get_player
2026.05.29
- Added Progressive Web App support — a
PWAPromptActionNodegraph node,pwa_installed/pwa_deinstalledcampaign event types, and an optionalis_pwa_installedplayer attribute - Added optional
offers(offers the promotion applies to) across store promotion endpoints (get_store_promotions, create_store_promotion, bulk_update_store_promotions, get_user_promotions, get_store_promotion, update_store_promotion) - Added
campaign_id,user_campaign_id, anduser_idto store promotion responses (get_store_promotions, create_store_promotion, bulk_update_store_promotions, get_store_promotion, update_store_promotion)
2026.05.27
- Reworked coupon item rewards to support multiple items per coupon via new
free_itemsanditemsfields across all coupon endpoints, deprecating single-itemitem,item_id, andquantity - Added optional
ga4firebase_app_instance_idto player attributes across create_order, update_player, authorize_user, get_order, update_order, and get_player
2026.05.25
- Added
RemoveFromSegmentNodegraph node across campaign, segment group, and page dynamic-block endpoints - Added optional
collection_idto news endpoints (get_news_list, create_news, bulk_update_news, get_news_post, update_news) - Added optional
video/auto_playto Twitch and YouTube blocks across get_pages, get_page, create_page, update_page, bulk_update_page, and translate_page - Added optional
item_featured_card_background_image_urlacross store promotion endpoints (get_store_promotions, create_store_promotion, bulk_update_store_promotions, get_user_promotions, get_store_promotion, update_store_promotion)
2026.05.22
- Added optional
eligible_for_reward_points,eligible_for_loyalty_points, andrewards(virtual currency rewards with issue status) to get_order and update_order responses
2026.05.21
- Unified item
sourceenum across catalog and order responses, adding seven new reward/liveops values and making the order itemsourcerequired - Added optional
quantity_bonus_valueandquantity_after_bonusto item responses across items, store items, and daily rewards - Added optional
category_template_idto carousel and featured-item blocks andshow_thumbnailto Twitch and YouTube video blocks across page endpoints - Made
start_atandend_atoptional and nullable across store promotion endpoints - Added optional
creator_program/inherits_from_tierto create_coupon, update_coupon, and coupon responses - Added optional
coupon_codeto create_order request - Added optional
show_store_buttonto get_loyalty_settings and update_loyalty_settings - Added optional
attributesandcustom_attributesto get_player response
2026.05.12
- Added optional
receipt_numberto get_order and update_order responses - Changed authorize_user to upsert: when the player already exists, the provided
player_info(name,avatar_url,attributes,custom_attributes) now updates the stored player on every call instead of being ignored after the first authorization
2026.05.11
- Added optional
player_infoto authorize_user request, allowing player name, avatar URL, attributes, and custom attributes to be supplied alongside the authorization
2026.05.08
- Added optional
button_textandcustom_urlfields to page card across all page endpoints - Restructured item objects in order and payment responses with required
nameandquantity, plain-stringimage_url, recursivenested_items, and a unifiedItemschema - Added reactivate_player_subscription endpoint
- Added optional
couponsarray to get_order, update_order, and get_payments responses - Renamed
cancel_user_subscriptionsoperation ID to cancel_player_subscriptions - Removed
OrderItemandPaymentItemschemas
2026.05.07
- Added deprecated Apple-specific image URL fields on item responses across all item-bearing endpoints
2026.05.05
- Set
maxLengthof 32 onidin locale responses (get_locales, create_locale, get_locale, update_locale)
2026.05.01
- Added structured
highlightsfield across all item types and every endpoint that returns item data - Deprecated
payment_numberon get_payments, replaced by new requiredreceipt_number - Added
title,text, andbutton_textoptional fields toImageBannerBlockin page endpoints - Added optional
bonus_items_settings/start_atandend_atscheduling to store item and store promotion endpoints - Added optional
start_atandend_atto virtual currency items in store item and daily reward responses - Added optional
limited_stock_settings/start_calculation_atto store endpoints - Added
galaxy_storeandone_storeenum values to marketplace fields in create_order and update_player - Added optional
appsflyer_customer_user_idto create_order and update_player - Added optional
applied_reward_pointsto get_order, update_order, and get_payments responses - Changed
claim_modedefault frommodaltoinlinein create_daily_reward and update_daily_reward - Tightened
image_urlvalidation on achievement endpoints to require a valid URI (non-empty, format: uri, max 2083 characters); achievementtypeno longer acceptsnull - Set maxLength of 32 on
user_idin gdpr_data_removal
2026.04.13
- Added virtual currency support across coupons, items, store items, and daily rewards
- Added analytics webhook events and batch delivery mode
- Added bulk_update_coupon endpoint
- Added optional
category_idto create_coupon and get_coupons - Added
item_price_type,sort_orderparameters andmodified_at,pricesort options to get_items - Added
amount,amount_before_discount,currencyfields to get_order and update_order responses - Added fallback item fields to featured item blocks in page endpoints
- Added optional
skuto loyalty tier items in update_loyalty_tiers - Removed
LoyaltyItemCreatUpdateschema
Need help?
Contact our integration team at integration@aghanim.com