Doximity OpenID Connect API

Identity and discovery endpoints

OpenAPI Specification

doximity-openid-connect-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Doximity 2.0 & OAuth OpenID Connect API
  version: '1.0'
  description: OAuth 2.0 authorization server and OpenID Connect provider that authenticates and identifies verified Doximity medical professionals against the Doximity medical database. Uses the Authorization Code grant with mandatory PKCE (S256), refresh tokens, and the device_code grant.
  contact:
    name: Doximity Business Development
    email: bd@doximity.com
    url: https://www.doximity.com/developers/documentation
  termsOfService: https://www.doximity.com/terms-of-service
servers:
- url: https://auth.doximity.com
  description: Production authorization server
security:
- doximityOAuth: []
tags:
- name: OpenID Connect
  description: Identity and discovery endpoints
paths:
  /oauth/userinfo:
    get:
      operationId: userinfo
      tags:
      - OpenID Connect
      summary: Fetch the authenticated member's identity claims
      description: Returns the OpenID Connect claims permitted by the granted scopes. Requires a bearer access token.
      security:
      - bearerAuth: []
      responses:
        '200':
          description: UserInfo claims (JWT signed RS256 or JSON)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
        '401':
          description: Missing or invalid access token
        '403':
          description: Insufficient scope
        '429':
          description: Rate limit exceeded
  /oauth/logout:
    get:
      operationId: logout
      tags:
      - OpenID Connect
      summary: End the Doximity session (RP-initiated logout)
      parameters:
      - name: id_token_hint
        in: query
        required: false
        schema:
          type: string
      - name: post_logout_redirect_uri
        in: query
        required: false
        schema:
          type: string
          format: uri
      - name: state
        in: query
        required: false
        schema:
          type: string
      responses:
        '302':
          description: Redirect to post_logout_redirect_uri
  /oauth/session_state:
    post:
      operationId: sessionState
      tags:
      - OpenID Connect
      summary: Check the OP session state (iframe-based)
      responses:
        '200':
          description: Session state
          content:
            text/plain:
              schema:
                type: string
                enum:
                - changed
                - unchanged
                - error
  /.well-known/openid-configuration:
    get:
      operationId: openidConfiguration
      tags:
      - OpenID Connect
      summary: OpenID Connect discovery document
      responses:
        '200':
          description: OIDC provider metadata
  /.well-known/jwks.json:
    get:
      operationId: jwks
      tags:
      - OpenID Connect
      summary: JSON Web Key Set for verifying id_token signatures
      responses:
        '200':
          description: JWKS
components:
  schemas:
    UserInfo:
      type: object
      description: OpenID Connect claims, gated by granted scopes.
      properties:
        sub:
          type: string
          description: Stable subject identifier (UUID v4)
        name:
          type: string
        given_name:
          type: string
        family_name:
          type: string
        middle_name:
          type: string
        credentials:
          type: string
        profile_photo_url:
          type: string
          format: uri
        profile_uuid:
          type: string
        specialty:
          type: string
        primary_email:
          type: string
          format: email
        emails:
          type: array
          items:
            type: string
            format: email
        permissions:
          type: array
          items:
            type: string
  securitySchemes:
    doximityOAuth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://auth.doximity.com/oauth/authorize
          tokenUrl: https://auth.doximity.com/oauth/token
          refreshUrl: https://auth.doximity.com/oauth/token
          scopes:
            openid: Enables the OpenID Connect id_token to be returned
            search: Search the Doximity member directory
            dialer: Access to Doximity Dialer functionality
            docsgpt:access: Access to DocsGPT
            hipaa:identified: Access identified data under HIPAA
            jobs:read: Read job data
            colleagues:read: Read the member's colleagues
            colleagues:write: Modify the member's colleagues
            login_context:inferred: Access inferred login context
            sessions:linked: Access linked sessions
            activities:read:cards: Read activity cards
            activities:read:comments: Read activity comments
            activities:read:likes: Read activity likes
            activities:write:likes: Write activity likes
            profile:read:basic: Read basic profile (name, credentials, specialty, photo)
            profile:read:email: Read the member's email
            profile:read:dialer_phone: Read the member's Dialer phone number
            profile:read:experience: Read the member's experience
            profile:read:office: Read the member's office information
            profile:read:permissions: Read the member's permissions
            profile:read:private_contact: Read the member's private contact information
    openIdConnect:
      type: openIdConnect
      openIdConnectUrl: https://auth.doximity.com/.well-known/openid-configuration
    clientBasic:
      type: http
      scheme: basic
      description: HTTP Basic with client_id:client_secret (client_secret_basic)
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT