Olipop · Authentication Profile

Olipop Authentication

Authentication

Olipop secures its APIs with none, apiKey, oauth2, openIdConnect, and agent-profile across 5 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).

beverageconsumer-packaged-goodsdirect-to-consumerecommerceretailagent-commerceuniversal-commerce-protocolmcpgraphqlshopifyprebiotic-sodafunctional-beverage
Methods: none, apiKey, oauth2, openIdConnect, agent-profile Schemes: 5 OAuth flows: authorizationCode API key in: header

Security Schemes

publicRead none
storefrontAccessToken apiKey
· in: header ()
customerAccessToken apiKey
· in: body ()
shopifyCustomerAccounts openIdConnect
· flows: authorizationCode
ucpAgentProfile agent-profile
· in: header ()

Source

Authentication Profile

olipop-authentication.yml Raw ↑
generated: '2026-07-31'
method: searched
source: https://drinkolipop.com/.well-known/openid-configuration
docs: https://drinkolipop.com/agents.md
notes: >-
  OLIPOP publishes no OpenAPI, so this profile was assembled from live probes rather than derived from
  securitySchemes. Three distinct auth models coexist on the drinkolipop.com host: an unauthenticated
  read-only JSON/catalog surface, a token-bearing Storefront GraphQL surface, and an agent-identity model
  (UCP-Agent profile) in front of the MCP commerce endpoint - with OIDC underneath for customer accounts.
summary:
  types: [none, apiKey, oauth2, openIdConnect, agent-profile]
  api_key_in: [header]
  oauth2_flows: [authorizationCode]
  pkce: [S256]
schemes:
- name: publicRead
  type: none
  description: Product, collection, search, sitemap and policy JSON/HTML require no credential at all.
  applies_to:
  - /products.json
  - /products/{handle}.json
  - /collections/{handle}/products.json
  - /search?q={query}&type=product
  - /sitemap.xml
  source: https://drinkolipop.com/llms.txt
- name: storefrontAccessToken
  type: apiKey
  in: header
  parameter_name: X-Shopify-Storefront-Access-Token
  description: >-
    Public storefront access token for the Shopify Storefront GraphQL API. Schema introspection at
    https://drinkolipop.com/api/2025-07/graphql.json answered anonymously during this probe; data reads and
    all mutations require the token.
  applies_to: [https://drinkolipop.com/api/2025-07/graphql.json]
  source: https://shopify.dev/docs/api/storefront
- name: customerAccessToken
  type: apiKey
  in: body
  parameter_name: customerAccessToken
  description: >-
    Per-customer token minted by the customerAccessTokenCreate mutation and passed as an argument to
    customer-scoped queries and mutations in the Storefront GraphQL schema.
  applies_to: [https://drinkolipop.com/api/2025-07/graphql.json]
  source: graphql/olipop-storefront.graphql
- name: shopifyCustomerAccounts
  type: openIdConnect
  openIdConnectUrl: https://drinkolipop.com/.well-known/openid-configuration
  description: >-
    Shopify customer accounts OIDC provider scoped to this shop (shop id 3466100806). Also advertised as an
    RFC 8414 OAuth 2.0 authorization server at /.well-known/oauth-authorization-server with a byte-identical
    document.
  issuer: https://shopify.com/authentication/3466100806
  authorization_endpoint: https://shopify.com/authentication/3466100806/oauth/authorize
  token_endpoint: https://shopify.com/authentication/3466100806/oauth/token
  end_session_endpoint: https://shopify.com/authentication/3466100806/logout
  jwks_uri: https://shopify.com/authentication/3466100806/.well-known/jwks.json
  flows:
  - flow: authorizationCode
    grant_types: [authorization_code, refresh_token, 'urn:ietf:params:oauth:grant-type:jwt-bearer']
    code_challenge_methods: [S256]
    token_endpoint_auth_methods: [client_secret_basic]
  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']
  source: well-known/olipop-openid-configuration.json
- name: ucpAgentProfile
  type: agent-profile
  in: header
  parameter_name: UCP-Agent
  description: >-
    The UCP/MCP commerce endpoint does not authenticate with a bearer token; it requires the CALLING
    PLATFORM to identify itself with a URL to its own UCP profile document, carried as
    meta["ucp-agent"].profile in the JSON-RPC params or as the UCP-Agent HTTP header. An anonymous call is
    rejected with JSON-RPC -32001 / invalid_profile_url before any tool is exposed. Payment authorization
    is separate again and rides the declared payment handlers (Google Pay, Shopify Card, Shop Pay) with a
    mandatory human buyer-approval step.
  applies_to: [https://drinkolipop.com/api/ucp/mcp]
  source: https://ucp.dev/2026-04-08/services/shopping/mcp.openrpc.json
x-evidence:
  fetched: '2026-07-31'
  probes:
  - {url: 'https://drinkolipop.com/.well-known/openid-configuration', http_status: 200}
  - {url: 'https://drinkolipop.com/.well-known/oauth-authorization-server', http_status: 200}
  - {url: 'https://drinkolipop.com/api/2025-07/graphql.json', method: POST, http_status: 200, note: anonymous introspection succeeded}
  - {url: 'https://drinkolipop.com/api/ucp/mcp', method: POST, http_status: 422, note: anonymous tools/list rejected}