S2S API Changelog
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 [email protected]