Temple Health · Authentication Profile

Temple Health Authentication

Authentication

Temple Health secures its APIs with oauth2 and openIdConnect across 1 declared security scheme, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode, clientCredentials, refreshToken, jwtBearer, and tokenExchange flow(s).

Academic Medical CenterCMS InteroperabilityCures ActDSTU2EpicFHIRFox Chase Cancer CenterHL7HealthcareHospital SystemMyChartAuthenticationPatient AccessPrice TransparencyR4SMART on FHIRTemple UniversityUS CoreUSCDI
Methods: oauth2, openIdConnect Schemes: 1 OAuth flows: authorizationCode, clientCredentials, refreshToken, jwtBearer, tokenExchange API key in:

Security Schemes

smartOnFhir oauth2
· flows: authorizationCode

Source

Authentication Profile

Raw ↑
generated: '2026-08-15'
method: probed
source: Live GET of the SMART configuration, the OIDC discovery document and the JWKS on epicaccess.templehealth.org
  (all HTTP 200, 2026-08-15), plus an observed 401 challenge on GET /FHIR/R4/Patient/example. Reconciled
  against the oauth2 securityScheme in openapi/*.yml.
summary:
  types:
  - oauth2
  - openIdConnect
  oauth2_flows:
  - authorizationCode
  - clientCredentials
  - refreshToken
  - jwtBearer
  - tokenExchange
  pkce: S256 (only method supported)
  client_auth:
  - client_secret_post
  - client_secret_basic
  - private_key_jwt
  bearer_challenge: 'WWW-Authenticate: Bearer (observed on 401; no realm, no resource_metadata)'
  anonymous_endpoints:
  - /FHIR/R4/metadata
  - /FHIR/R4/.well-known/smart-configuration
  - /FHIR/DSTU2/metadata
  - /FhirProxyPrd/oauth2/.well-known/openid-configuration
schemes:
- name: smartOnFhir
  type: oauth2
  flows:
  - flow: authorizationCode
    authorizationUrl: https://epicaccess.templehealth.org/FhirProxyPrd/oauth2/authorize
    tokenUrl: https://epicaccess.templehealth.org/FhirProxyPrd/oauth2/token
    scopes: 13
  description: SMART on FHIR / OAuth 2.0 with PKCE for patient-facing and provider-facing app launches.
  sources:
  - openapi/temple-health-allergy-intolerance-api-openapi.yml
  - openapi/temple-health-bulk-data-api-openapi.yml
  - openapi/temple-health-condition-api-openapi.yml
  - openapi/temple-health-document-reference-api-openapi.yml
  - openapi/temple-health-encounter-api-openapi.yml
  - openapi/temple-health-medication-request-api-openapi.yml
  - openapi/temple-health-metadata-api-openapi.yml
  - openapi/temple-health-observation-api-openapi.yml
  - openapi/temple-health-patient-api-openapi.yml
docs: https://fhir.epic.com/Documentation
docs_note: There is no Temple Health-authored authentication page. Epic on FHIR documents the SMART/OAuth
  model generally; the Temple-specific facts come only from the endpoint.
discovery:
  smart_configuration:
    url: https://epicaccess.templehealth.org/FhirProxyPrd/api/FHIR/R4/.well-known/smart-configuration
    status: 200
    file: well-known/temple-health-smart-configuration.json
  openid_configuration:
    url: https://epicaccess.templehealth.org/FhirProxyPrd/oauth2/.well-known/openid-configuration
    status: 200
    file: well-known/temple-health-openid-configuration.json
  jwks:
    url: https://epicaccess.templehealth.org/FhirProxyPrd/api/epic/2019/Security/Open/PublicKeys/530027/OIDC
    status: 200
    file: well-known/temple-health-oidc-jwks.json
  oauth_authorization_server_rfc8414:
    status: 404
  oauth_protected_resource_rfc9728:
    status: 404
  dstu2_smart_configuration:
    status: 404
    note: The legacy DSTU2 base publishes no SMART discovery document; read the oauth-uris extension from
      its Conformance resource instead.
openid_connect:
  issuer: https://epicaccess.templehealth.org/FhirProxyPrd/oauth2
  id_token_signing_alg_values_supported:
  - RS256
  subject_types_supported:
  - public
  response_types_supported:
  - code
  response_modes_supported:
  - query
profiles:
- name: SMART App Launch — standalone patient
  grant: authorization_code + PKCE S256
  client: public or confidential
  use: Patient-access apps under CMS-9115-F
  capability_evidence:
  - launch-standalone
  - context-standalone-patient
  - permission-patient
  - permission-offline
- name: SMART App Launch — EHR launch
  grant: authorization_code + PKCE S256
  client: confidential
  use: Provider-facing apps launched from inside Epic
  capability_evidence:
  - launch-ehr
  - context-ehr-patient
  - context-ehr-encounter
  - permission-user
- name: SMART Backend Services
  grant: client_credentials with private_key_jwt (RFC 7523)
  client: confidential-asymmetric
  use: Bulk Data Group $export under a data-use agreement
  capability_evidence:
  - client-confidential-asymmetric
onboarding:
  app_registration: https://fhir.epic.com/Developer/Apps
  production_access: Approved by Temple Health per app against the production endpoint; no self-service
    path.
  endpoint_directory: https://open.epic.com/Endpoints/R4
gaps:
- No RFC 9728 protected-resource metadata — the 401 challenge carries no pointer to the authorization
  server.
- No RFC 8414 authorization-server metadata at either the origin root or the FHIR base.
- The 401 body is an empty JSON string, not an OperationOutcome — no machine-readable reason for the rejection.
- No dynamic client registration endpoint published.

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/temple-health-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 email required.

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