Garten · Authentication Profile

Garten Authentication

Authentication

Garten secures its APIs with oauth2 and apiKey across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and refreshToken flow(s).

CompanyFood ServiceCorporate WellnessWorkplaceCateringEmployee BenefitsMicro MarketFacilities ManagementHospitalityStreaming VideoMCP
Methods: oauth2, apiKey Schemes: 2 OAuth flows: authorizationCode, refreshToken API key in: unspecified

Security Schemes

garten TV OAuth 2.1 oauth2
· flows: authorizationCode, refreshToken
garten client commerce API key apiKey
· in: unspecified ()

Source

Authentication Profile

garten-authentication.yml Raw ↑
generated: '2026-08-04'
method: probed
source: https://tv.garten.co/.well-known/oauth-authorization-server
note: 'Derived from live OAuth discovery metadata rather than from an OpenAPI document
  — garten publishes no machine-readable REST contract. Two distinct authentication
  surfaces exist in the estate and both are recorded: the OAuth 2.1 surface on garten
  TV (fully documented by its own metadata) and the opaque API-key surface on the Spree/Solidus
  client application (observed only through its 401 body; garten publishes no documentation
  for it, so nothing beyond the observed behaviour is asserted).'
summary:
  types: [oauth2, apiKey]
  oauth2_flows: [authorizationCode, refreshToken]
  pkce: [S256]
  dynamic_client_registration: true
  api_key_in: [unspecified]
schemes:
- name: garten TV OAuth 2.1
  type: oauth2
  applies_to: https://tv.garten.co/mcp
  issuer: https://tv.garten.co
  flows:
  - flow: authorizationCode
    authorizationUrl: https://tv.garten.co/oauth/authorize
    tokenUrl: https://tv.garten.co/oauth/token
    scope_count: 7
  - flow: refreshToken
    tokenUrl: https://tv.garten.co/oauth/token
  endpoints:
    authorization: https://tv.garten.co/oauth/authorize
    token: https://tv.garten.co/oauth/token
    revocation: https://tv.garten.co/oauth/revoke
    introspection: https://tv.garten.co/oauth/introspect
    registration: https://tv.garten.co/oauth/register
  response_types_supported: [code]
  grant_types_supported: [authorization_code, refresh_token]
  code_challenge_methods_supported: [S256]
  token_endpoint_auth_methods_supported: [client_secret_basic, client_secret_post, none]
  resource_indicators_supported: true
  bearer_methods_supported: [header]
  sources: [well-known/garten-tv-oauth-authorization-server.json, well-known/garten-tv-oauth-protected-resource.json]
- name: garten client commerce API key
  type: apiKey
  applies_to: https://api.garten.co/api/v1, https://api.garten.co/api/v2, https://client.garten.co
  in: unspecified
  parameter_name: unspecified
  documented: false
  observed_behaviour: 'Anonymous GET of /api/v1/products, /api/v2/storefront/products,
    /api/v2/storefront/menus and /api/v2/platform/products all return HTTP 401 with
    body {"error":"You must specify an API key."} — the Spree/Solidus default. garten
    publishes no documentation, no key-issuance flow and no header/parameter name for
    this credential, so the location of the key is recorded as unspecified rather than
    guessed.'
  sources: [live probe]
posture:
  strengths:
  - RFC 8414 authorization-server metadata published and anonymous
  - RFC 9728 protected-resource metadata published, correctly referenced from the WWW-Authenticate
    header on a 401
  - PKCE S256 required-capable; no implicit or password grants advertised
  - RFC 7591 dynamic client registration endpoint advertised
  - RFC 8707 resource indicators supported
  - separate revocation and introspection endpoints advertised
  gaps:
  - no OpenID Connect discovery document (/.well-known/openid-configuration returns
    404), so there is no id_token / userinfo contract
  - no human-readable authentication documentation anywhere on garten's public surface
  - the commerce API-key surface is undocumented — no key issuance, rotation or scoping
    guidance is published
  - the OAuth surface covers only the garten TV property, not the core kitchen/market/catering
    business
x-evidence:
- {fetched: '2026-08-04', url: 'https://tv.garten.co/.well-known/oauth-authorization-server',
   http_status: 200}
- {fetched: '2026-08-04', url: 'https://tv.garten.co/mcp', http_status: 401, header: www-authenticate}
- {fetched: '2026-08-04', url: 'https://api.garten.co/api/v2/storefront/products', http_status: 401}