Fnatic · Authentication Profile

Fnatic Authentication

Authentication

Fnatic publishes no OpenAPI, so this profile is built from live discovery documents and observed responses rather than derived securitySchemes. Four distinct auth postures were observed across Fnatic hosts on 2026-08-04. Note that fnatic.com's own member accounts (Fnatic ID) are a first-party login surface with NO published discovery document — only the Shopify-hosted shop exposes machine-readable identity metadata.

Fnatic secures its APIs with none, openIdConnect, oauth2, and other across 5 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode, refreshToken, and jwt-bearer flow(s).

CompanyEsportsGamingEntertainmentSportsConsumer ElectronicsGaming HardwareApparelEcommerceDirect to ConsumerAgentic CommerceShopifyGraphQLUniversal Commerce ProtocolModel Context ProtocolUnited Kingdom
Methods: none, openIdConnect, oauth2, other Schemes: 5 OAuth flows: authorizationCode, refreshToken, jwt-bearer API key in:

Security Schemes

anonymous-storefront-graphql none
shopify-customer-accounts openIdConnect
shopify-customer-accounts-oauth2 oauth2
storefront-customer-access-token other
ucp-agent-profile other

Source

Authentication Profile

fnatic-authentication.yml Raw ↑
generated: '2026-08-04'
method: probed
source: https://shop.fnatic.com/.well-known/openid-configuration
docs: https://shopify.dev/docs/api/customer
description: >-
  Fnatic publishes no OpenAPI, so this profile is built from live discovery documents and
  observed responses rather than derived securitySchemes. Four distinct auth postures
  were observed across Fnatic hosts on 2026-08-04. Note that fnatic.com's own member
  accounts (Fnatic ID) are a first-party login surface with NO published discovery
  document — only the Shopify-hosted shop exposes machine-readable identity metadata.
summary:
  types: [none, openIdConnect, oauth2, other]
  api_key_in: []
  oauth2_flows: [authorizationCode, refreshToken, jwt-bearer]
schemes:
  - name: anonymous-storefront-graphql
    type: none
    surface: https://shop.fnatic.com/api/2026-04/graphql.json
    observed: >-
      Full GraphQL introspection succeeded with no X-Shopify-Storefront-Access-Token
      header (HTTP 200, 755,648 bytes). Cost/rate limiting is signalled via
      extensions.cost on every response rather than by rejecting anonymous callers.
    sources: [graphql/fnatic-graphql.yml]
  - name: shopify-customer-accounts
    type: openIdConnect
    openIdConnectUrl: https://shop.fnatic.com/.well-known/openid-configuration
    issuer: https://shopify.com/authentication/54359195821
    authorizationUrl: https://shopify.com/authentication/54359195821/oauth/authorize
    tokenUrl: https://shopify.com/authentication/54359195821/oauth/token
    end_session_endpoint: https://shopify.com/authentication/54359195821/logout
    jwks_uri: https://shopify.com/authentication/54359195821/.well-known/jwks.json
    grant_types: [authorization_code, refresh_token, 'urn:ietf:params:oauth:grant-type:jwt-bearer']
    response_types: [code]
    token_endpoint_auth_methods: [client_secret_basic]
    pkce: [S256]
    id_token_signing_alg: [RS256]
    claims: [iss, sub, aud, exp, iat, nonce, sid, email, email_verified]
    scopes: [openid, email, 'customer-account-api:full', 'customer-account-mcp-api:full']
    sources: [well-known/fnatic-openid-configuration.json]
  - name: shopify-customer-accounts-oauth2
    type: oauth2
    note: >-
      The same authorization server also publishes RFC 8414 metadata at
      /.well-known/oauth-authorization-server (byte-identical document), and an RFC 9728
      protected-resource document at /.well-known/oauth-protected-resource declaring
      resource https://shop.fnatic.com with bearer_methods_supported [header]. The
      surface is therefore usable as plain OAuth 2.0 as well as OIDC.
    resource: https://shop.fnatic.com
    authorization_servers: ['https://shopify.com/authentication/54359195821']
    bearer_methods_supported: [header]
    sources:
      - well-known/fnatic-oauth-authorization-server.json
      - well-known/fnatic-oauth-protected-resource.json
  - name: storefront-customer-access-token
    type: other
    surface: https://shop.fnatic.com/api/2026-04/graphql.json
    observed: >-
      The legacy Storefront customer surface issues an opaque CustomerAccessToken via
      Mutation.customerAccessTokenCreate(input: CustomerAccessTokenCreateInput) and it is
      passed to QueryRoot.customer(customerAccessToken:) and every customer* mutation.
      Renewed with customerAccessTokenRenew, revoked with customerAccessTokenDelete.
      Multipass SSO is also present (customerAccessTokenCreateWithMultipass).
    sources: [graphql/fnatic-storefront.graphql]
  - name: ucp-agent-profile
    type: other
    surface: https://shop.fnatic.com/api/ucp/mcp
    observed: >-
      tools/list without an agent profile URI returns HTTP 422 with JSON-RPC -32001
      "UCP discovery failed" / invalid_profile_url. The UCP commerce surface therefore
      requires an agent to present a resolvable profile before any tool call, and Fnatic
      additionally requires contemporaneous buyer approval before complete_checkout.
    spec: https://ucp.dev/2026-04-08/specification/overview/
    sources: [well-known/fnatic-ucp.json, llms/fnatic-agents.md]
not_public:
  - name: fnatic-id
    surface: https://fnatic.com/account/login
    note: >-
      Fnatic's own member accounts ("Fnatic ID") on fnatic.com — register, login,
      change-password, connections, membership, wallet-connect. No OIDC/OAuth discovery
      document, no documented token endpoint, no developer program. Not a machine-readable
      auth surface.
  - name: id.fnatic.com
    surface: https://id.fnatic.com/
    note: >-
      Internal admin/identity application. Every request redirects to Google Workspace
      sign-in restricted to hd=fnatic.com (client_id 259306135017-…apps.googleusercontent.com,
      redirect_uri https://id.fnatic.com/nova/login-complete, scope "openid profile email").
      Staff-only; recorded for completeness, not an integrable surface.
platform:
  vendor: Shopify
  note: >-
    The identity provider is Shopify's, bound to Fnatic shop id 54359195821 and served
    from Fnatic's shop.fnatic.com domain. Unlike some Shopify merchants, Fnatic does not
    front the authorization endpoints on a fnatic.com vanity host — they resolve to
    shopify.com.
x-evidence:
  - fetched: '2026-08-04'
    url: https://shop.fnatic.com/.well-known/openid-configuration
    http_status: 200
    content_type: application/json
  - fetched: '2026-08-04'
    url: https://shop.fnatic.com/.well-known/oauth-authorization-server
    http_status: 200
    content_type: application/json
  - fetched: '2026-08-04'
    url: https://shop.fnatic.com/.well-known/oauth-protected-resource
    http_status: 200
    content_type: application/json
  - fetched: '2026-08-04'
    url: https://shop.fnatic.com/api/2026-04/graphql.json
    http_status: 200
    result: anonymous introspection succeeded