100 Thieves · Authentication Profile

100 Thieves Authentication

Authentication

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

CompanyEsportsGamingApparelRetailE-CommerceEntertainmentMediaDirect To ConsumerAgentic Commerce
Methods: none, oauth2, openIdConnect Schemes: 6 OAuth flows: authorizationCode, refreshToken, jwt-bearer API key in:

Security Schemes

anonymous-ucp-mcp none
anonymous-storefront-graphql none
anonymous-storefront-json none
shopify-customer-accounts-oidc openIdConnect
shopify-customer-account-oauth2 oauth2
· flows: authorizationCode
customer-access-token apiKey
· in: header (X-Shopify-Customer-Access-Token)

Source

Authentication Profile

100-thieves-authentication.yml Raw ↑
generated: '2026-08-05'
method: probed
source:
- https://100thieves.com/.well-known/openid-configuration
- https://100thieves.com/.well-known/oauth-authorization-server
- https://100thieves.com/api/ucp/mcp
- https://100thieves.com/api/2024-04/graphql.json
docs: https://100thieves.com/agents.md
note: >-
  Derived from live probes, not from an OpenAPI document — 100 Thieves publishes no
  spec. derive-authentication.py found 0 schemes because there is no openapi/ directory;
  this file records the auth model actually observed on the wire.
summary:
  types: [none, oauth2, openIdConnect]
  api_key_in: []
  oauth2_flows: [authorizationCode, refreshToken, jwt-bearer]
  anonymous_surfaces: 3
schemes:
- name: anonymous-ucp-mcp
  type: none
  applies_to: https://100thieves.com/api/ucp/mcp
  observed: tools/list returned HTTP 200 with the full tool set and input schemas without
    any credential.
  note: Transacting tools still enforce a buyer-approval invariant at payment; that
    is a policy control, not an authentication control.
- name: anonymous-storefront-graphql
  type: none
  applies_to: https://100thieves.com/api/2024-04/graphql.json
  observed: Full introspection returned HTTP 200 (414 types) with no X-Shopify-Storefront-Access-Token
    header.
  note: Customer-scoped fields still require a customerAccessToken obtained via the
    customerAccessTokenCreate mutation.
- name: anonymous-storefront-json
  type: none
  applies_to: https://100thieves.com/
  observed: /collections/all/products.json returned HTTP 200 unauthenticated.
- name: shopify-customer-accounts-oidc
  type: openIdConnect
  openIdConnectUrl: https://100thieves.com/.well-known/openid-configuration
  issuer: https://shopify.com/authentication/31052262
  authorizationUrl: https://shopify.com/authentication/31052262/oauth/authorize
  tokenUrl: https://shopify.com/authentication/31052262/oauth/token
  end_session_endpoint: https://shopify.com/authentication/31052262/logout
  jwks_uri: https://shopify.com/authentication/31052262/.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]
  subject_types: [public]
  claims: [iss, sub, aud, exp, iat, nonce, sid, email, email_verified]
  applies_to: Customer account sign-in at https://100thieves.com/account/login
  provider: Shopify Customer Accounts (shop id 31052262)
- name: shopify-customer-account-oauth2
  type: oauth2
  source: https://100thieves.com/.well-known/oauth-authorization-server
  flows:
  - flow: authorizationCode
    authorizationUrl: https://shopify.com/authentication/31052262/oauth/authorize
    tokenUrl: https://shopify.com/authentication/31052262/oauth/token
    scopes: 4
  note: The RFC 8414 metadata document is byte-identical to the OIDC discovery document.
- name: customer-access-token
  type: apiKey
  in: header
  parameter: X-Shopify-Customer-Access-Token
  applies_to: https://100thieves.com/api/2024-04/graphql.json
  observed: Required by the customer query field per the introspected schema; obtained
    via customerAccessTokenCreate.
  note: Documented by the platform vendor, not by 100 Thieves.
x-evidence:
- url: https://100thieves.com/.well-known/openid-configuration
  http_status: 200
  content_type: application/json
- url: https://100thieves.com/.well-known/oauth-authorization-server
  http_status: 200
  content_type: application/json
- url: https://100thieves.com/api/ucp/mcp
  http_status: 200
  note: anonymous tools/list
- url: https://100thieves.com/api/2024-04/graphql.json
  http_status: 200
  note: anonymous full introspection