Bluestacks · Authentication Profile

Bluestacks Authentication

Authentication

Bluestacks secures its APIs with oauth2, http, and apiKey across 5 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and refreshToken flow(s).

CompanyGamingCloud GamingAndroidMobilePaymentsIn-App PurchasesSubscriptionsDeveloper PlatformApp DistributionAdvertisingOAuth
Methods: oauth2, http, apiKey Schemes: 5 OAuth flows: authorizationCode, refreshToken API key in: header

Security Schemes

nowggOAuth2 oauth2
· flows: authorizationCode, refreshToken
nowggBearer http
scheme: bearer
paymentsApiKey apiKey
· in: header ()
publisherToken apiKey
· in: header ()
webhookApiKey apiKey
· in: header ()

Source

Authentication Profile

Raw ↑
generated: '2026-08-08'
method: searched
source: https://docs.now.gg/user-account-service/api-reference
docs:
- https://docs.now.gg/user-account-service/api-reference
- https://docs.now.gg/user-account-service/authenticate-with-a-backend-server
- https://docs.now.gg/payments/references/verifypurchase
- https://docs.now.gg/nowstudio/start-using-nowstudio
note: >-
  Derived by reading the published docs, not from an OpenAPI — now.gg publishes no
  machine-readable specification for any of these surfaces. Four distinct credentials
  are in play and they are not interchangeable: an OAuth 2.0 client_id/client_secret
  pair for player login, a Payments API Key for the server-side purchase APIs, a
  Publisher Token for nowStudio/CLI operations, and a Webhook API Key that now.gg
  presents to the publisher's own callback endpoint.
summary:
  types:
  - oauth2
  - http
  - apiKey
  api_key_in:
  - header
  oauth2_flows:
  - authorizationCode
  - refreshToken
  openid_connect_discovery: false
  mtls: false
schemes:
- name: nowggOAuth2
  type: oauth2
  api: now.gg User Account Service API
  flows:
  - flow: authorizationCode
    tokenUrl: https://now.gg/accounts/oauth2/v1/token
    grant_type: code
    note: >-
      The authorization code is delivered to the app by the now.gg Login flow / account
      manager; no public authorization endpoint URL is documented in the API reference.
  - flow: refreshToken
    tokenUrl: https://now.gg/accounts/oauth2/v1/token
    grant_type: refresh_token
  credentials:
    client_id: issued per app in nowStudio under OAuth 2.0 Credentials
    client_secret: issued per app in nowStudio under OAuth 2.0 Credentials
    guidance: >-
      Docs explicitly warn against sharing one credential pair across apps, because
      revoking one app's access would interrupt all of them.
  tokens:
  - name: id_token
    purpose: authentication — asserts who the player is
    format: JWT-shaped, verified via the verify-token endpoint
    claims:
    - iss
    - sub
    - aud
    - exp
    - iat
    - auth_time
    - email
    - mobile
    - userId
    - name
    - picture
    - countryCode
    issuer: https://now.gg
    used_by: basic login flow
  - name: token
    purpose: authorization — bearer credential for the protected user APIs
    claims:
    - iss
    - tokenId
    - aud
    - sessionId
    - userId
    - scope
    - iat
    - exp
    issuer: https://now.gg
    used_by: advanced (token-based) login integration flow
  - name: refresh_token
    purpose: mint a new `token` after expiry
  verification:
    endpoint: POST https://now.gg/accounts/oauth2/v1/verify-token
    body:
    - token_type
    - token
    - client_id
    - client_secret
    note: >-
      client_secret is required when token_type is `token`, optional when it is
      `id_token`. Verification is a provider-side call rather than local JWKS
      validation — no JWKS URI or OIDC discovery document is published.
- name: nowggBearer
  type: http
  scheme: bearer
  api: now.gg User Account Service API
  header: 'Authorization: Bearer <token>'
  applies_to:
  - GET /accounts/users/v1/userinfo
  - GET /accounts/users/v1/sessioninfo
- name: paymentsApiKey
  type: apiKey
  in: header
  name_in_request: Authorization
  api: now.gg Payments Server API
  note: >-
    The Payments API Key is sent as a RAW value in the Authorization header — no
    Bearer/Basic scheme prefix, contrary to RFC 7235. Issued in the nowStudio
    credentials section.
  applies_to:
  - POST /v2/sellers/order/verifyPurchase
  - POST /v2/order/consumePurchase
  - POST /v2/seller/order/acknowledgepurchase
  errors:
  - code: 3900
    message: INVALID_AUTHORIZATION_KEY
- name: publisherToken
  type: apiKey
  in: header
  name_in_request: publisherToken
  api: now.gg Payments (v1, deprecated) and nowStudio CLI
  note: >-
    Company-level credential copied from nowStudio > Account Information. Used by the
    deprecated v1 verifyPayment endpoint and by `nowgg init` in the CLI.
- name: webhookApiKey
  type: apiKey
  in: header
  name_in_request: Authorization
  direction: inbound-to-publisher
  note: >-
    Reversed direction — now.gg presents this key to the publisher's own
    SubscriptionStatusCallback / PaymentsProcessingCallback endpoint so the publisher
    can authenticate the caller. Generated and regenerated in nowStudio.
gaps:
- No /.well-known/openid-configuration and no /.well-known/oauth-authorization-server
  on any host, so neither OIDC nor RFC 8414 discovery is possible.
- No published JWKS endpoint; token validation requires a round trip to now.gg.
- No documented authorization endpoint URL, redirect_uri handling, PKCE or state
  parameter in the API reference.
- The Payments API Key is a bare header value with no scheme prefix and no documented
  rotation policy.