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 WellnessSupplementsE-CommerceDirect 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.

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/bulletproof-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.