type Query {
countries: [Country!]!
countryLicenseRestriction: CountryLicenseRestriction!
currencies: [Currency!]!
gameProviders(category: String): [String!]!
games(ordering: GamesOrderingInput, after: Cursor, before: Cursor, first: Int, last: Int, filter: GameFilterInput, search: String): GameConnection!
prizes(locale: Locale!): [Prize!]!
registrationFormType: RegistrationFormType!
socialNetworks(locale: Locale!): [SocialNetwork!]!
user: User!
}
type Country {
name: String!
code: CountryCode!
}
"""
Country-code is uppercase ISO 3166 two-letter code (alpha-2)
https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
Example: AQ
"""
scalar CountryCode
enum CountryLicenseRestriction {
FORBIDDEN_NO_LOGIN
FORBIDDEN
ALLOWED
}
"""
One of:
Currency in uppercase ISO 4217 three-letter code
https://en.wikipedia.org/wiki/ISO_4217
Example: EUR
"""
scalar Currency
input GamesOrderingInput {
orderBy: GamesOrderBy!
}
enum GamesOrderBy {
HIT
NEW
}
"""
Any string
Example: 9f06ce7cdca9ed9c074d33c4c9
"""
scalar Cursor
input GameFilterInput {
isFavorite: Boolean!
provider: String
category: GameCategory
}
enum GameCategory {
SLOTS
CASINO
LIVE
}
type GameConnection {
edges: [GameEdge!]!
pageInfo: PageInfo!
}
type GameEdge {
cursor: Cursor!
node: Game!
}
type Game {
id: ID!
title: String!
slug: String!
isDemoAvailable: Boolean!
isFavourite: Boolean!
isRestricted: Boolean!
isActiveTournamentFreeround: Boolean!
isPre: Boolean!
isNew: Boolean!
isSuperNew: Boolean!
isHot: Boolean!
thumbnails: [Thumbnail]!
}
type Thumbnail {
size: String!
url: Url!
}
"""
A URL string that adheres to the RFC 2396 format
https://www.ietf.org/rfc/rfc2396.txt
Example: https://example.com/img/vavada_logo.jpg
"""
scalar Url
type PageInfo {
endCursor: Cursor
hasNextPage: Boolean!
hasPreviousPage: Boolean!
startCursor: Cursor
}
"""
String that adheres to IETF BCP 47 language tag
https://en.wikipedia.org/wiki/IETF_language_tag
Example: ru, en-US
"""
scalar Locale
type Prize {
id: ID!
title: String!
amount: MoneyAmount!
position: Int!
createdAt: DateTime!
}
type MoneyAmount {
amount: Float!
currency: Currency!
}
"""
YYYY-MM-DDTHH:mm:ssZ
Example: 2025-01-01T00:00:00Z
"""
scalar DateTime
enum RegistrationFormType {
EXTENDED_FORM
SIMPLE_FORM
}
type SocialNetwork {
name: SocialNetworkName!
url: Url!
}
enum SocialNetworkName {
FACEBOOK
INSTAGRAM
TELEGRAM
XCOM
VK
YOUTUBE
}
type User {
email: String
phoneNumber: String
nameOnSite: String!
firstName: String
middleName: String
lastName: String
birthday: Date
city: String
country: CountryCode
preferredLanguage: Locale
gender: Gender
emailConfirmed: Boolean!
phoneConfirmed: Boolean!
twoFactorEnabled: Boolean!
rank: UserRank!
activeWallet: Wallet!
activeBonus: Bonus
firstDepositBonus: FirstDepositBonus!
bonuses: [Bonus!]!
freeSpins: [FreeSpin!]!
jackpots: [Jackpot!]!
}
"""
YYYY-MM-DD
Example: 2021-03-22
"""
scalar Date
enum Gender {
MALE
FEMALE
}
type UserRank {
current: Rank!
"""
Progress percentage to achieve the next status
If the maximum rank is reached, this value is 100
"""
progress: Int!
}
enum Rank {
BEGINNER
PLAYER
BRONZE
SILVER
GOLD
PLATINUM
}
type Wallet {
balance: MoneyAmount!
personalBonus: PersonalBonus
suggestedCashback: SuggestedCashback
}
type PersonalBonus {
amount: MoneyAmount!
wager: Int!
maxWinRate: Int!
}
type SuggestedCashback {
accrualDate: Date!
amount: MoneyAmount!
wager: Int!
}
type Bonus {
id: ID!
reason: BonusReason!
balance: MoneyAmount!
amount: MoneyAmount!
wager: Int
cashOut: Int
status: BonusStatus!
expiredAt: DateTime!
minBalance: MoneyAmount
betSum: MoneyAmount
requiredBetAmount: MoneyAmount
remainingBetAmount: MoneyAmount
cashOutSum: MoneyAmount
activationIsAllowed: Boolean!
createdAt: DateTime!
}
"Enums"
enum BonusReason {
PERSONAL
FREESPIN
FIRST_DEPOSIT
CASHBACK
CASINO
PROMO_CODE
CUSTOM
}
enum BonusStatus {
PENDING
ACTIVE
}
type FirstDepositBonus {
maxAmount: MoneyAmount!
isDone: Boolean!
}
type FreeSpin {
id: ID!
game: Game!
count: Int!
status: BonusStatus!
expiredAt: DateTime!
currency: Currency!
wager: Int
minBalance: MoneyAmount
createdAt: DateTime!
}
type Jackpot {
id: ID!
amount: MoneyAmount!
type: JackpotType!
createdAt: DateTime!
}
enum JackpotType {
MEGA
MAJOR
MINOR
}
type Mutation {
activateBonus(input: ActivateBonusInput!): ActivateBonusPayload!
activateFreeSpin(input: ActivateFreeSpinInput!): ActivateFreeSpinPayload!
activatePromoCode(input: ActivatePromoCodeInput!): ActivatePromoCodePayload!
applyPersonalBonus: ApplyPersonalBonusPayload!
changePassword(input: ChangePasswordInput!): ChangePasswordPayload!
confirmPhone(input: ConfirmPhoneInput!): ConfirmPhonePayload!
confirmUser2FA(input: ConfirmUser2FAInput!): ConfirmUser2FAPayload!
deleteBonus(input: DeleteBonusInput!): DeleteBonusPayload!
deleteFreeSpin(input: DeleteFreeSpinInput!): DeleteFreeSpinPayload!
editPersonalData(input: EditPersonalDataInput!): EditPersonalDataPayload!
editUserAddress(input: EditUserAddressInput!): EditUserAddressPayload!
initUser2FA(input: InitUser2FAInput!): InitUser2FAPayload!
invalidateUserSessions: InvalidateUserSessionsPayload!
requestPhoneConfirmation: RequestPhoneConfirmationPayload!
registerUser(input: RegisterUserInput!): RegisterUserPayload!
switchFavoriteGame(input: SwitchFavoriteGameInput!): SwitchFavoriteGamePayload!
takeBonus(input: TakeBonusInput!): TakeBonusPayload!
takeJackpot(input: TakeJackpotInput!): TakeJackpotPayload!
takePrize(input: TakePrizeInput!): TakePrizePayload!
turnOffUser2FA(input: TurnOffUser2FAInput!): TurnOffUser2FAPayload!
uploadVerificationFile(input: UploadVerificationFileInput!): UploadVerificationFilePayload!
}
"Inputs"
input ActivateBonusInput {
id: ID!
}
"Types"
type ActivateBonusPayload {
user: User!
}
input ActivateFreeSpinInput {
id: ID!
}
type ActivateFreeSpinPayload {
user: User!
}
input ActivatePromoCodeInput {
code: String!
}
type ActivatePromoCodePayload {
user: User!
}
type ApplyPersonalBonusPayload {
user: User!
}
input ChangePasswordInput {
currentPassword: String!
newPassword: String!
}
type ChangePasswordPayload {
user: User!
}
input ConfirmPhoneInput {
confirmationCode: String!
}
type ConfirmPhonePayload {
user: User!
}
input ConfirmUser2FAInput {
authCode: String!
}
type ConfirmUser2FAPayload {
user: User!
}
input DeleteBonusInput {
id: ID!
}
type DeleteBonusPayload {
user: User!
}
input DeleteFreeSpinInput {
id: ID!
}
type DeleteFreeSpinPayload {
user: User!
}
input EditPersonalDataInput {
email: String
phoneNumber: String
nameOnSite: String!
firstName: String
middleName: String
lastName: String
birthday: Date
preferredLanguage: Locale
gender: Gender
}
type EditPersonalDataPayload {
user: User!
}
input EditUserAddressInput {
country: CountryCode!
city: String
}
type EditUserAddressPayload {
user: User!
}
input InitUser2FAInput {
currentPassword: String!
}
type InitUser2FAPayload {
qrCodeContent: String!
secret: String!
}
type InvalidateUserSessionsPayload {
user: User!
}
type RequestPhoneConfirmationPayload {
isExpired: Boolean!
lifeTimeUntil: DateTime!
attempt: Int!
}
input RegisterUserInput {
identifier: String!
password: String!
currency: Currency!
firstName: String
lastName: String
birthday: Date
city: String
visits: [String!]!
utmTags: [UtmTag!]!
}
input UtmTag {
utmSource: String!
utmMedium: String
utmCampaign: String
utmTerm: String
utmContent: String
}
type RegisterUserPayload {
result: Boolean!
}
input SwitchFavoriteGameInput {
id: ID!
}
type SwitchFavoriteGamePayload {
game: Game!
}
input TakeBonusInput {
id: ID!
}
type TakeBonusPayload {
user: User!
}
input TakeJackpotInput {
id: ID!
}
type TakeJackpotPayload {
user: User!
}
input TakePrizeInput {
id: ID!
}
type TakePrizePayload {
user: User!
}
input TurnOffUser2FAInput {
currentPassword: String!
}
type TurnOffUser2FAPayload {
user: User!
}
input UploadVerificationFileInput {
uploadingSessionId: String!
closeUploadingSession: Boolean!
file: UploadingFile!
}
"Scalar type represents a multipart file upload."
scalar UploadingFile
type UploadVerificationFilePayload {
file: File!
}
type File {
id: ID!
}