BulletProof · Authentication Profile

Bulletproof Authentication

Authentication

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

CompanyConsumer Packaged GoodsFood and BeverageHealth and WellnessSupplementsEcommerceDirect to ConsumerRetailAgentic CommerceShopify
Methods: none, oauth2, openIdConnect, bearer Schemes: 6 OAuth flows: authorizationCode API key in:

Security Schemes

storefront-graphql-anonymous none
storefront-json-anonymous none
wordpress-rest-anonymous none
ucp-agent-profile bearer
scheme: jwt
customer-accounts-oidc openIdConnect
· flows: authorizationCode
customer-accounts-oauth2 oauth2

Source

Authentication Profile

bulletproof-authentication.yml Raw ↑
generated: '2026-08-08'
method: probed
source:
- https://shop.bulletproof.com/.well-known/openid-configuration
- https://shop.bulletproof.com/.well-known/oauth-authorization-server
- https://shop.bulletproof.com/.well-known/oauth-protected-resource
- live probes of the Storefront GraphQL and UCP MCP endpoints
note: >-
  Bulletproof publishes no OpenAPI, so nothing here is derived from securitySchemes.
  Every scheme below was observed live on 2026-08-08 — three of the four surfaces
  answered anonymously, which is itself the finding.
summary:
  types: [none, oauth2, openIdConnect, bearer]
  api_key_in: []
  oauth2_flows: [authorizationCode]
  anonymous_surfaces: 3
  gated_surfaces: 2
schemes:
- name: storefront-graphql-anonymous
  type: none
  applies_to: https://shop.bulletproof.com/api/{version}/graphql.json
  observed: >-
    Introspection and data queries (shop, products, cart) returned HTTP 200 with no
    X-Shopify-Storefront-Access-Token header and no cookie. access-control-allow-origin
    is "*". Cost is reported per request via shopify-complexity-score headers and the
    extensions.cost field.
  evidence:
    http_status: 200
    url: https://shop.bulletproof.com/api/2026-01/graphql.json
- name: storefront-json-anonymous
  type: none
  applies_to: https://shop.bulletproof.com/products.json, /collections.json, /products/{handle}.json
  observed: HTTP 200 unauthenticated; documented as the read-only agent surface in agents.md.
  evidence:
    http_status: 200
    url: https://shop.bulletproof.com/products.json
- name: wordpress-rest-anonymous
  type: none
  applies_to: https://www.bulletproof.com/wp-json/
  observed: >-
    The route index reports an empty "authentication" array — no authentication scheme
    is advertised for the public read routes across 16 namespaces / 384 routes.
  evidence:
    http_status: 200
    url: https://www.bulletproof.com/wp-json/
- name: ucp-agent-profile
  type: bearer
  scheme: jwt
  applies_to: https://shop.bulletproof.com/api/ucp/mcp
  observed: >-
    tools/list and initialize answer anonymously. Every tools/call requires a resolvable
    meta["ucp-agent"].profile URI; without one the server returns JSON-RPC -32001
    "UCP discovery failed". Order and checkout tools additionally return JSON-RPC -32000
    "AuthenticationRequired — a valid JWT is required".
  docs: https://shopify.dev/docs/agents/get-started/authentication
  evidence:
    http_status: 403
    url: https://shop.bulletproof.com/api/ucp/mcp
- name: customer-accounts-oidc
  type: openIdConnect
  openIdConnectUrl: https://shop.bulletproof.com/.well-known/openid-configuration
  issuer: https://shopify.com/authentication/434700319
  applies_to: https://account.bulletproof.com
  flows:
  - flow: authorizationCode
    authorizationUrl: https://account.bulletproof.com/authentication/oauth/authorize
    tokenUrl: https://account.bulletproof.com/authentication/oauth/token
    scopes: [openid, email, 'customer-account-api:full', 'customer-account-mcp-api:full']
  jwks_uri: https://account.bulletproof.com/authentication/.well-known/jwks.json
  end_session_endpoint: https://account.bulletproof.com/authentication/logout
  token_endpoint_auth_methods_supported: [client_secret_basic]
  grant_types_supported: [authorization_code, refresh_token, 'urn:ietf:params:oauth:grant-type:jwt-bearer']
  code_challenge_methods_supported: [S256]
  id_token_signing_alg_values_supported: [RS256]
  response_types_supported: [code]
  subject_types_supported: [public]
  evidence:
    http_status: 200
    url: https://shop.bulletproof.com/.well-known/openid-configuration
- name: customer-accounts-oauth2
  type: oauth2
  applies_to: https://account.bulletproof.com
  metadata: RFC 8414 authorization server metadata, identical payload to the OIDC document
  protected_resource_metadata: RFC 9728 at /.well-known/oauth-protected-resource on shop., account. and myshopify hosts
  evidence:
    http_status: 200
    url: https://shop.bulletproof.com/.well-known/oauth-authorization-server
gaps:
- The provider publishes no first-party authentication documentation; the only auth guidance
  reachable from a Bulletproof host is the shopify.dev link embedded in an MCP error message.
- No /.well-known/security.txt on any host.