Skip to main content
🎉 GP CONF 2026: WEB Games Market Conference 👾 September 23 | Details

Platform

Use PlatformFetchGamePlatform as the main configuration request during site startup. Cache the result on the client and refresh it when the page reloads or your server invalidates its platform-settings cache.

Execution context: browser or platform server. A browser sends Content-Type, X-Game-Platform-ID, its matching Origin, and player cookies with credentials: 'include'. A server additionally sends X-Game-Platform-Api-Key. Never expose the API key to the browser.

Load the complete platform site configuration

fragment PlatformSeoTemplate on SeoTemplates {
headerTemplate(lang: $lang)
h1Template(lang: $lang)
descriptionTemplate(lang: $lang)
ogTitleTemplate(lang: $lang)
ogDescriptionTemplate(lang: $lang)
}

fragment PlatformTypography on GamePlatformTypography {
fontFamily
fontSize
lineHeight
fontWeight
letterSpacing
}

fragment PlatformBannerConfig on BannerConfig {
enableWrapper
wrapperCountdown
frequency
refreshInterval
position
biddersConfig {
codeType
sizes
}
bidders {
key
adServer
params {
key
value
}
}
}

query PlatformConfiguration($lang: Lang) {
result: PlatformFetchGamePlatform {
__typename
... on Problem {
message
}
... on GamePlatform {
id
domain
apiUrl
platformUrl
mainPageId
showPrivacyConsentCheckbox
clickableTitlesForCollections
showBreadcrumbs
showPromoBlock
name(lang: $lang)
title(lang: $lang)
description(lang: $lang)
icon
fullIcon
favicon
supportedLanguages
openGameInSameTab
legalInfo {
privacyPolicyPageId
personalDataConsentPageId
privacyPolicyPageSlug(lang: $lang)
personalDataConsentPageSlug(lang: $lang)
companyLegalName(lang: $lang)
}
socialNetworks {
vk
facebook
twitter
telegram
discord
youtube
}
seoSettings {
ogTitle(lang: $lang)
ogDescription(lang: $lang)
ogImage(lang: $lang)
footerText(lang: $lang)
}
categories(lang: $lang) {
key
name
url
}
tags(lang: $lang) {
key
name
url
}
categoriesSeoTemplates {
...PlatformSeoTemplate
}
tagsSeoTemplates {
...PlatformSeoTemplate
}
collectionsSeoTemplates {
...PlatformSeoTemplate
}
gamesSeoTemplates {
...PlatformSeoTemplate
}
ymCounterId
ymCounterIds
gtagCounterId
mailRuCounterIds
liveInternetCounterIds
styles {
layout
header {
fullWidth
rounded
logoHeight
burgerIcon
}
footer {
isNeedToShowCustomFooter
}
aside {
style
isMonoColor
}
radius {
gameTiles
}
colors {
primary
contentBackground
accent
contentAccent
asideBackground
}
text {
fontSources {
family
weight
src
}
typography {
title1 {
...PlatformTypography
}
title2 {
...PlatformTypography
}
title3 {
...PlatformTypography
}
title4 {
...PlatformTypography
}
title5 {
...PlatformTypography
}
body {
...PlatformTypography
}
body2 {
...PlatformTypography
}
}
}
}
menus {
type
items {
type
entityId
name(lang: $lang)
url(lang: $lang)
icon(lang: $lang)
}
}
adsConfig {
id
adFoxOwnerId
advertonicUserId
adsenseClientId
configs {
web {
implementation
bidders {
id
key
adServer
adServerBidderId
cpmAdjustment
params {
key
type
}
}
banners {
type
enabled
enabledDesktop
bannerId
desktopBannerId
adServer
adServerDesktop
mobileConfig {
...PlatformBannerConfig
}
desktopConfig {
...PlatformBannerConfig
}
}
}
}
}
paymentsConfig {
id
configs {
web {
implementation
activeService
}
}
}
currency {
name(lang: $lang)
pluralisation(lang: $lang)
icon
code
precision
currencySpendUrl
separateCurrencySpendUrlEnabled
}
productsList {
count
items {
id
icon
tag
type
name(lang: $lang)
description(lang: $lang)
price(platform: PARTNER)
currency
currencySymbol
realCurrencyPrice(lang: $lang)
realCurrencyCode(lang: $lang)
realCurrencySymbol(lang: $lang)
benefits {
disableGameAds
disablePlatformAds
currencyAccrual
bonusCurrency
}
}
}
}
}
}

Variables:

{
"lang": "EN"
}

A successful result starts with this shape; the remaining selected branches contain menus and monetization settings:

{
"data": {
"result": {
"__typename": "GamePlatform",
"id": 42,
"domain": "games.example.com",
"apiUrl": "https://api.gamepush.com/gs/api/graphql",
"platformUrl": "https://games.example.com",
"mainPageId": "home",
"name": "Example Games",
"supportedLanguages": ["EN", "RU"],
"styles": {
"layout": "PREMIUM",
"colors": {
"primary": "#7c3aed",
"contentBackground": "#ffffff",
"accent": "#f59e0b",
"contentAccent": "#111827",
"asideBackground": "#f3f4f6"
}
}
}
}
}

Apply the response

  • Use styles, icons, and localized text to build the visual theme.
  • Use apiUrl for subsequent White-label API requests when it differs from the standard endpoint.
  • Build the header, sidebar, and footer from menus; route entity items by type and entityId, and direct links by url.
  • Use categories and tags for labels and links on category, tag, and game pages.
  • Fill default meta tags from seoSettings. Apply entity templates on category, tag, collection, and game routes.
  • Initialize only the analytics counters that contain configured values, and respect the configured consent flow. See Analytics for the shared privacy requirements.
  • Render only enabled ad placements. The advertising implementation must follow the returned adsConfig; use its public provider identifiers when initializing AdFox, Advertonic, or AdSense.
  • Use paymentsConfig, currency, and productsList to render purchase UI. Never expect payment-service secrets in this response.
  • Show the promotion area only when showPromoBlock is true, then load its content through the Promotions API.
  • Resolve mainPageId through the Pages API and legal page IDs or slugs through the same page router.

For the common advertising and payment concepts, see Advertising and Purchases. Those sections describe the product features; the query above remains the source of configuration specific to the platform site.