> ## Documentation Index
> Fetch the complete documentation index at: https://developer.suki.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# JWKS URL

> Public key endpoint for JWT token verification and signature validation

Use this public endpoint to get the JWKS (JSON Web Key Set. A set of keys containing the public keys used to verify any JWT issued by the authorization server.) (JSON Web Key Set) containing Suki's public keys. Use these keys to verify the signature of any JWT (JSON Web Token. A compact, URL-safe means of representing claims used for authentication and information exchange.) issued by Suki, such as the `suki_token`.

This endpoint follows the **RFC 7517** standard.

> [!NOTE]
>
> **Authentication**
>
> This is a public endpoint and does not require authentication.

## Common integration patterns and use cases

* **Verify issued tokens:** Fetch the JWKS and use the matching public key to verify the signature of a `suki_token` before trusting its claims.

* **Handle key rotation:** Resolve signing keys by key ID and refresh the JWKS when a token references a key that is not in your cache.

* **Cache public keys:** Cache the JWKS according to your token-verification library or service policy, and refresh it when key resolution fails.

## Code examples

**Language tabs (agents):** Equivalent code samples are available in: Python, TypeScript. Humans see one language at a time. Use the variant that matches the user's stack; behavior is the same across tabs.

> [tab] Python
>
> ```python theme={"theme":{"light":"one-light","dark":"material-theme-darker"}}
> import requests
>
> url = "https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json"
>
> response = requests.get(url)
>
> if response.status_code == 200:
>     jwks = response.json()
>     print("Public keys retrieved successfully")
>     print(f"Keys: {jwks}")
> else:
>     print(f"Failed to retrieve JWKS: {response.status_code}")
> ```

> [tab] TypeScript
>
> ```typescript theme={"theme":{"light":"one-light","dark":"material-theme-darker"}}
> const response = await fetch('https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json');
>
> if (response.ok) {
>   const jwks = await response.json();
>   console.log('Public keys retrieved successfully');
>   console.log('Keys:', jwks);
> } else {
>   console.error(`Failed to retrieve JWKS: ${response.status}`);
> }
> ```


## OpenAPI

````yaml GET /api/auth/.well-known/jwks-pub.json
openapi: 3.0.1
info:
  title: Suki Developer Platform
  description: >-
    REST and WebSocket APIs for the Suki Developer Platform. Authenticate with
    Login or Register to obtain a Suki access token, then integrate ambient
    clinical documentation, form filling, transcription, content rewrite, and
    reference metadata endpoints.
  contact: {}
  version: '1.0'
servers:
  - url: https://sdp.suki.ai
    description: >-
      Production base URL for Suki Developer Platform REST APIs. WebSocket
      endpoints use the same host with `wss://`.
security:
  - SukiTokenAuth: []
paths:
  /api/auth/.well-known/jwks-pub.json:
    get:
      tags:
        - /api/auth
      summary: Get JWKS public keys
      description: >-
        Returns the JSON Web Key Set (JWKS) with public keys Suki uses to verify
        partner tokens. Use this endpoint when configuring JWT signature
        validation for your identity provider.
      parameters: []
      responses:
        '200':
          description: JWKS document with public keys for partner token verification.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/controllers.PublicKeyData'
      security: []
components:
  schemas:
    controllers.PublicKeyData:
      type: object
      properties:
        keys:
          type: array
          items:
            $ref: '#/components/schemas/controllers.KeyData'
          description: Array of JSON Web Keys used to verify partner token signatures.
      description: JSON Web Key Set document for partner token verification.
    controllers.KeyData:
      type: object
      properties:
        alg:
          type: string
          description: The specific cryptographic algorithm used with the key.
          example: RS256
        e:
          type: string
          description: >-
            The exponent for the RSA public key :
            https://tools.ietf.org/html/rfc7518#page-30
          example: AQAB
        kid:
          type: string
          description: The unique identifier for the key.
          example: partner-jwks-key-1
        kty:
          type: string
          description: The family of cryptographic algorithms used with the key.
          example: RSA
        'n':
          type: string
          description: >-
            The modulus for the RSA public key :
            https://tools.ietf.org/html/rfc7518#page-30
          example: >-
            yeNlzlub94YgerT030codqEztjfU_S6X4DbDA_iVKkjAWtYfPHDzz_sPCT1Axz6isZdf3lHpq_gYX4Sz-cbe4rjmigxUxr-FgKHQy3HeCdK6hNq9ASQvMK9LBOpXDNn7mei6RZWom4wo3CMvvsY1w8tjtfLb-yQwJPltHxShZq5-ihC9irpLI9xEBTgG12q5lGIFPhTl_7inA1PFK97LuSLnTJzW0bj096v_TMDg7pOWm_zHtF53qbVsI0e3v5nmdKXdFf9BjIARRfVrbxVxiZHjU6zL6jY5QJdh1QCmENoejj_ytspMmGW7yMRxzUqgxcAqOBpVm0b-_mW3HoBdjQ
        use:
          type: string
          description: How the key was meant to be used; sig represents the signature.
          example: sig
      description: >-
        Each property in the key is defined by the JWK specification
        https://datatracker.ietf.org/doc/html/rfc7517#section-4 or, for
        algorithm-specific properties, in https://tools.ietf.org/html/rfc7518
  securitySchemes:
    SukiTokenAuth:
      type: apiKey
      in: header
      name: sdp_suki_token
      description: >-
        Suki access token (`suki_token`) from Login or Register. Expires after
        one hour.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.