Parsley Health · Authentication Profile

Parsley Health Authentication

Authentication

Parsley Health declares 4 security scheme(s) across its OpenAPI definitions.

CompanyHealthHealthcareTelehealthTelemedicineFunctional MedicinePrimary CareWellnessNutritionDiagnosticsLab TestingMembershipDigital HealthConsumer HealthEcommerceAgentic CommerceMCPSupplements
Methods: Schemes: 4 OAuth flows: API key in:

Security Schemes

none
agent-identity
openIdConnect
opaque

Source

Authentication Profile

parsley-health-authentication.yml Raw ↑
generated: '2026-08-15'
method: probed
source: >-
  https://store.parsleyhealth.com/.well-known/openid-configuration (HTTP 200),
  https://store.parsleyhealth.com/.well-known/oauth-authorization-server (HTTP 200),
  live anonymous probes of https://store.parsleyhealth.com/api/ucp/mcp and
  https://store.parsleyhealth.com/api/2026-01/graphql.json (2026-08-15)
note: >-
  Parsley Health publishes no developer authentication documentation and issues no API
  keys. The auth model recorded here is the one that is actually observable on its public
  hosts: an OAuth 2.0 / OpenID Connect authorization server delegated to Shopify for the
  supplement store's customer accounts, plus two surfaces that need no credential at all.
  The medical practice's member application (my.parsleyhealth.com) is a separate,
  authenticated single-page app with no documented or discoverable auth contract — its
  login is a human flow, not an API.
schemes:
- id: none-anonymous
  type: none
  applies_to:
  - https://store.parsleyhealth.com/api/ucp/mcp (tools/list, initialize)
  - https://store.parsleyhealth.com/api/2026-01/graphql.json (introspection + public storefront reads)
  - https://store.parsleyhealth.com/products.json and the other storefront JSON endpoints
  evidence: All returned HTTP 200 with no Authorization header on 2026-08-15.
- id: ucp-agent-profile
  type: agent-identity
  applies_to: [https://store.parsleyhealth.com/api/ucp/mcp]
  description: >-
    Not authentication in the credential sense — every UCP tool call must carry
    meta.ucp-agent.profile, a resolvable agent profile URI identifying the calling agent.
    Omitting it returns JSON-RPC error -32001 "UCP discovery failed" with
    data.code invalid_profile_url.
  evidence: Observed on resources/list and prompts/list probes, 2026-08-15.
- id: oauth2-oidc-shopify
  type: openIdConnect
  applies_to: [Parsley Health store customer accounts]
  issuer: https://shopify.com/authentication/24996151350
  authorization_endpoint: https://shopify.com/authentication/24996151350/oauth/authorize
  token_endpoint: https://shopify.com/authentication/24996151350/oauth/token
  end_session_endpoint: https://shopify.com/authentication/24996151350/logout
  jwks_uri: https://shopify.com/authentication/24996151350/.well-known/jwks.json
  discovery:
  - https://store.parsleyhealth.com/.well-known/openid-configuration
  - https://store.parsleyhealth.com/.well-known/oauth-authorization-server
  grant_types: [authorization_code, refresh_token, 'urn:ietf:params:oauth:grant-type:jwt-bearer']
  response_types: [code]
  pkce: [S256]
  token_endpoint_auth_methods: [client_secret_basic]
  id_token_signing_alg: [RS256]
  scopes: [openid, email, 'customer-account-api:full', 'customer-account-mcp-api:full']
  scopes_artifact: scopes/parsley-health-scopes.yml
  note: >-
    The discovery documents are served from Parsley Health's hostname but the issuer is
    Shopify's per-shop authorization server for shop 24996151350. Parsley Health does not
    operate this authorization server; it is inherited from the commerce platform.
- id: member-app-login
  type: opaque
  applies_to: [https://my.parsleyhealth.com, https://app.parsleyhealth.com]
  description: >-
    Authenticated member application for clinical care. Single-page app behind a
    catch-all that returns HTTP 200 text/html for every path, including
    /.well-known/* and /openapi.json. No auth metadata, no token endpoint, no
    machine-readable contract is discoverable.
  evidence: Probed 2026-08-15 and 2026-08-02; all responses are the app shell.
api_keys:
  published: false
  note: No developer program, no API key issuance, no key-prefix convention published.
mtls:
  published: false