Metriport · Authentication Profile

Metriport Authentication

Authentication

Metriport secures its APIs with apiKey across 1 declared security scheme, as derived from its OpenAPI definitions.

HealthcareMedical RecordsFHIRHealth DataWearablesOpen-Source
Methods: apiKey Schemes: 1 OAuth flows: API key in: header

Security Schemes

ApiKeyAuth apiKey
· in: header (x-api-key)

Source

Authentication Profile

Raw ↑
generated: '2026-08-14'
method: searched
docs: https://docs.metriport.com/medical-api/getting-started/api-keys
source: >-
  https://docs.metriport.com/medical-api/getting-started/api-keys,
  /medical-api/more-info/sso, /medical-api/getting-started/embedding,
  /medical-api/getting-started/webhooks; scheme confirmed against the
  securitySchemes in openapi/*.yml.
summary:
  types:
  - apiKey
  api_key_in:
  - header
schemes:
- name: ApiKeyAuth
  type: apiKey
  in: header
  parameter: x-api-key
  sources:
  - openapi/metriport-consolidated-api-openapi.yml
  - openapi/metriport-devices-data-api-openapi.yml
  - openapi/metriport-document-api-openapi.yml
  - openapi/metriport-facility-api-openapi.yml
  - openapi/metriport-patient-api-openapi.yml
  - openapi/metriport-settings-api-openapi.yml
  - openapi/metriport-user-api-openapi.yml
  - https://docs.metriport.com/medical-api/getting-started/api-keys
  detail: >-
    A single static key grants full access to the account, including destructive
    operations. There are no scopes, no restricted or read-only keys, and no
    per-facility scoping. Metriport's own guidance is to treat the key like an
    account password and use it only from backend services.
  key_management:
    issued_from: https://dash.metriport.com/developers
    max_active_keys: 2
    rotation: >-
      Both keys are equally privileged and interchangeable, so rotation is
      generate-new, roll-out, revoke-old with zero downtime.
    revocation: Immediate — revoking a key on the Developers page makes it inactive at once.
  environments:
  - name: production
    base_url: https://api.metriport.com
  - name: sandbox
    base_url: https://api.sandbox.metriport.com
    note: Minted separately after toggling Sandbox mode in the dashboard; not interchangeable with production keys.
  key_format:
    prefix: none published
    note: >-
      Metriport publishes no distinguishing key prefix for sandbox versus
      production. A client cannot tell which environment a key belongs to by
      inspecting it, and a leaked key has no scannable shape.
oauth2: false
oidc: false
mtls: false
adjacent_credentials:
- name: Embed token
  type: URL-borne bearer token
  parameter: access_token (query parameter on the embedded app URL)
  minted_by: POST /medical/v1/token/embed, server-side, using the API key
  max_lifetime_seconds: 36000
  purpose: Authorises the hosted embedded app (Patient View, Transitions of Care) in a browser.
  docs: https://docs.metriport.com/medical-api/getting-started/embedding
- name: Webhook key
  type: HMAC shared secret
  parameter: x-metriport-signature (on inbound requests FROM Metriport)
  algorithm: HMAC-SHA256 over the raw body
  purpose: Lets your endpoint verify that a webhook came from Metriport.
  rotation: Clear and re-set the webhook URL to regenerate.
  docs: https://docs.metriport.com/medical-api/getting-started/webhooks
- name: SAML / Enterprise SSO
  type: SAML 2.0
  purpose: >-
    Human sign-in to the Metriport dashboard only — NOT an API authentication
    method. Named IdP guides for Google, Okta, Azure, OneLogin, JumpCloud, Duo
    and Rippling; attribute mapping on email, first_name, last_name.
  docs: https://docs.metriport.com/medical-api/more-info/sso
gaps:
- No OAuth 2.0 or OIDC; no delegated or third-party authorisation flow.
- No scoped, restricted or read-only API keys — least privilege is not expressible.
- No mutual TLS.
- No key-prefix convention, so leaked keys cannot be pattern-detected by secret scanners.
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com