openapi: 3.2.0 info: title: Commure FHIR Auth API version: v1 summary: HL7 FHIR REST API and SMART App Launch / OpenID Connect authentication surface of the Commure Developer Platform. description: 'Derived verbatim from Commure''s first-party PUBLIC Postman collection "Commure FHIR API" (https://www.postman.com/commure/commure/collection/8745312-3d47dab4-e5ff-4e53-85fd-e53659614b24). The majority of endpoints are specified by the HL7 FHIR standard for healthcare data exchange; Commure adds extended operations ($commure-json-patch, $bulk-delete, $async-status, $async-cancel) alongside the standard FHIR RESTful, terminology, and Bulk Data operations. NOTE ON AVAILABILITY: the Commure Developer Platform this contract describes (developer.commure.com, tenant hosts api-{tenant-id}.developer.commure.com) no longer resolves publicly (HTTP 404 / NXDOMAIN as of 2026-07-31). This document is captured as the machine-readable record of a real, published contract - it is not a claim that the endpoints are currently callable.' contact: name: Commure Developer Support email: dev-support@commure.com x-origin: - format: postman version: 2.1.0 url: https://www.postman.com/collections/8745312-3d47dab4-e5ff-4e53-85fd-e53659614b24 converter: api-evangelist enrichment pipeline (postman->openapi) servers: - url: https://api-{tenant-id}.developer.commure.com description: Tenant-scoped Commure Developer Platform host (per Commure's published Postman collection). Currently non-resolving. variables: tenant-id: default: tenant-id description: Tenant identifier, the suffix on the dashboard URL when signed in to the Commure Developer Platform. security: - SMARTonFHIR: [] - bearerAuth: [] tags: - name: auth paths: /auth/authorize: get: operationId: authorizationEndpoint summary: Authorization Endpoint description: 'This endpoint allows clients to initiate the OpenID Connect/SMART App Launch authentication process. The Commure Authentication API supports the OpenID Connect [Authorization Code](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth), [Implicit](https://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth), and [Hybrid](https://openid.net/specs/openid-connect-core-1_0.html#HybridFlowAuth) flows, combined with the [SMART EHR launch sequence](https://www.hl7.org/fhir/smart-app-launch/#ehr-launch-sequence) and [SMART standalone launch sequence](https://www.hl7.org/fhir/smart-app-launch/#standalone-launch-sequence). To initiate the authentication process, clients should navigate the user to this endpoint, which will authenticate the user via single sign-on (SSO), typically using an SSO provider configured by a hospital. After the SSO process completes, the user will be redirected to the URL specified in the `redirect_uri` query parameter. This callback will include query parameters that depend on the requested `response_type`, as defined by [OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html). If an error occurs, the user will be forwarded to the `redirect_uri` with an [error response](https://openid.net/specs/openid-connect-core-1_0.html#AuthError).' tags: - auth parameters: - name: response_type in: query required: false description: '(Required) Specifies the desired authentication flow. This parameter is a space-delimited string that supports any combination of the following values: * `code`: [Authorization Code](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth) flow. * `token`: [Implicit](https://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth) flow. * `id_token`: [Implicit](https://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth) flow. The most common and secure usage is to pass the value `code`, which indicates that the client wishes to receive a single-use authorization `code` at its `redirect_uri`, which can then be exchanged for an access token using the Token Endpoint. Alternatively, the values `token` or `token id_token` (if using the `openid` scope) indicate that the client wishes to receive an access token and optional OpenID Connect ID token at its `redirect_uri` utilizing the [Implicit](https://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth) flow. Finally, combinations such as `code token id_token` may also be used for the [Hybrid](https://openid.net/specs/openid-connect-core-1_0.html#HybridFlowAuth) flow. **For security reasons, the Implicit and Hybrid flows may not be enabled in all Commure Platform environments.**' schema: type: string - name: client_id in: query required: false description: (Required) Client identifier provided by Commure. schema: type: string - name: redirect_uri in: query required: false description: (Required) The URL to which the user should be navigated following completion or failure of the SSO process. For security reasons, this URL *must* be pre-configured with the Commure Platform; otherwise, the user will be presented with an error message. schema: type: string format: uri - name: scope in: query required: false description: '(Required) Specifies the scope of the access request. This parameter is a space-delimited string that supports any combination of the following values: * `openid`: Requests that the Token Endpoint return an OpenID Connect ID token. * `profile`: Requests that the OpenID Connect ID token contain the user''s default profile claims (`name`, `family_name`, `given_name`, etc.). * `email`: Requests that the OpenID Connect ID token contain the `email` claim. * `phone`: Requests that the OpenID Connect ID token contain the user''s phone number. * `address`: Requests that the OpenID Connect ID token contain the user''s address. * `fhirUser`: Requests that the OpenID Connect ID token contain the SMART App Launch `fhirUser` claim.' schema: type: string - name: state in: query required: false description: (Required) Opaque value used for passing state to the `redirect_uri` and mitigating session fixation/cross-site request forgery (CSRF) vulnerabilities. Clients not using the `` React component should include a cryptographically secure pseudorandom value in the `state` parameter for each authentication request and verify this value at the specified `redirect_uri`, as described in [Section 10.12 of RFC 6749](https://tools.ietf.org/html/rfc6749#section-10.12). schema: type: string - name: nonce in: query required: false description: Value used for mitigating ID token replay vulnerabilities. If the `openid` scope is requested, this parameter will be included as the `nonce` value in the OpenID Connect ID token. Clients not using the `` React component should provide a cryptographically secure pseudorandom `nonce` value for each authentication request and verify that the `nonce` contained in the ID token returned by the Token Endpoint (or passed to the `redirect_uri` in the Implicit or Hybrid flows) matches this value. schema: type: string - name: code_challenge in: query required: false description: '[Proof Key for Code Exchange (PKCE)](https://tools.ietf.org/html/rfc7636) challenge for mitigating authorization code interception attacks. Clients without a client secret are strongly encouraged to use PKCE when utilizing the Authorization Code flow.' schema: type: string - name: code_challenge_method in: query required: false description: '[Proof Key for Code Exchange (PKCE)](https://tools.ietf.org/html/rfc7636) challenge method. For security reasons, the Commure Authentication API only supports the `S256` (SHA-256) challenge method.' schema: type: string - name: launch in: query required: false description: Opaque value issued by the EHR during the [SMART EHR launch sequence](https://www.hl7.org/fhir/smart-app-launch/#ehr-launch-sequence). If omitted, the [SMART standalone launch sequence](https://www.hl7.org/fhir/smart-app-launch/#standalone-launch-sequence) is used. schema: type: string - name: aud in: query required: false description: URL of the EHR FHIR server that should be used to authenticate the user. This URL must be pre-configured with the Commure Platform. This parameter is required for the [SMART EHR launch sequence](https://www.hl7.org/fhir/smart-app-launch/#ehr-launch-sequence) and is typically used alongside the `launch` parameter. However, it may optionally be specified for the [SMART standalone launch sequence](https://www.hl7.org/fhir/smart-app-launch/#standalone-launch-sequence) as well. schema: type: string format: uri responses: '303': description: See Other content: application/fhir+json: schema: type: object '400': description: Bad Request content: application/fhir+json: schema: $ref: '#/components/schemas/OperationOutcome' security: - SMARTonFHIR: [] - bearerAuth: [] /auth/token: post: operationId: tokenEndpoint summary: Token Endpoint description: 'This endpoint allows clients to retrieve access tokens for use in authenticated requests to Commure APIs. The following grant types are supported: * Authorization Code: used for exchanging a single-use authorization `code` sent to a client''s `redirect_uri` for an access token and optional refresh token. * Client Credentials: used by clients with an associated client secret for which the Client Credentials grant is enabled within the specific Commure Platform environment to exchange their client credentials for an access token and optional refresh token. This grant should only be used when making Commure API requests that cannot reasonably be associated with an individual user. Otherwise, the Authorization Code grant should be used. * Refresh Token: used for exchanging a refresh token for a new access token and optional refresh token.' tags: - auth requestBody: required: true content: application/fhir+json: schema: type: object responses: '200': description: OK content: application/fhir+json: schema: type: object '400': description: Bad Request content: application/fhir+json: schema: $ref: '#/components/schemas/OperationOutcome' '401': description: Unauthorized content: application/fhir+json: schema: $ref: '#/components/schemas/OperationOutcome' security: - SMARTonFHIR: [] - bearerAuth: [] /auth/jwks: get: operationId: publicKeys summary: Public Keys description: This endpoint returns a [JSON Web Key Set (JWKS)](https://tools.ietf.org/html/rfc7517) that clients can use to verify OpenID Connect ID tokens issued by the Commure Authentication API. tags: - auth responses: '200': description: OK content: application/fhir+json: schema: type: object security: - SMARTonFHIR: [] - bearerAuth: [] /auth/.well-known/openid-configuration: get: operationId: openIDConnectProviderMetadata summary: OpenID Connect Provider Metadata description: '[OpenID Connect Discovery metadata](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig) describing provider configuration.' tags: - auth responses: '200': description: OK content: application/fhir+json: schema: type: object security: - SMARTonFHIR: [] - bearerAuth: [] /auth/userinfo: get: operationId: userInfo summary: UserInfo description: This endpoint returns information about the authenticated user in the form of [OpenID Connect claims](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo). The returned claims depend on the `scope` values associated with the access token as well as the information provided by the single sign-on (SSO) provider and electronic health record (EHR). Even when the relevant scope has been requested, clients should expect that any claim except `aud` (audience client ID) and `sub` (subject ID) may be omitted from the response. tags: - auth responses: '200': description: OK content: application/fhir+json: schema: type: object '401': description: Unauthorized content: application/fhir+json: schema: $ref: '#/components/schemas/OperationOutcome' security: - SMARTonFHIR: [] - bearerAuth: [] /auth/logout: get: operationId: logout summary: Logout description: This endpoint logs out the authenticated user. tags: - auth responses: '200': description: OK content: application/fhir+json: schema: type: object '401': description: Unauthorized content: application/fhir+json: schema: $ref: '#/components/schemas/OperationOutcome' security: - SMARTonFHIR: [] - bearerAuth: [] components: schemas: OperationOutcome: type: object description: HL7 FHIR OperationOutcome - the standard FHIR error envelope returned on 4xx/5xx. properties: resourceType: type: string const: OperationOutcome issue: type: array items: type: object properties: severity: type: string enum: - fatal - error - warning - information code: type: string diagnostics: type: string details: type: object expression: type: array items: type: string securitySchemes: SMARTonFHIR: type: oauth2 description: OpenID Connect / SMART App Launch. Supports the authorization code (with PKCE), implicit, hybrid, client credentials and refresh token grants. flows: authorizationCode: authorizationUrl: https://api-{tenant-id}.developer.commure.com/auth/authorize tokenUrl: https://api-{tenant-id}.developer.commure.com/auth/token refreshUrl: https://api-{tenant-id}.developer.commure.com/auth/token scopes: openid: OpenID Connect authentication; returns an ID token. profile: OpenID Connect profile claims for the authenticated user. email: OpenID Connect email claim for the authenticated user. launch: SMART EHR launch context. offline_access: Request a refresh token for long-lived access. clientCredentials: tokenUrl: https://api-{tenant-id}.developer.commure.com/auth/token scopes: {} bearerAuth: type: http scheme: bearer description: Access token issued by the Commure Authentication API, presented as a bearer token (tokens are prefixed "Sec-").