> ## 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.

# Developer Learning Path

> Step-by-step guided journey to integrate Suki using ambient or Form filling workflows with the Web SDK, Headless Web SDK, Mobile SDK, or REST APIs

<img className="block dark:hidden hover-popup-image" src="https://mintcdn.com/suki-1e08f176/zZGEkUTIkO3Bt4sD/documentation/assets/learning.webp?fit=max&auto=format&n=zZGEkUTIkO3Bt4sD&q=85&s=136e600fd7287cca7c3a466e0be256d1" alt="Developer learning path hero Light" loading="eager" decoding="async" style={{borderRadius: '16px', transition: 'transform 0.3s ease, box-shadow 0.3s ease', cursor: 'pointer'}} width="1600" height="849" data-path="documentation/assets/learning.webp" />

<img className="hidden dark:block hover-popup-image" src="https://mintcdn.com/suki-1e08f176/zZGEkUTIkO3Bt4sD/documentation/assets/learning.webp?fit=max&auto=format&n=zZGEkUTIkO3Bt4sD&q=85&s=136e600fd7287cca7c3a466e0be256d1" alt="Developer learning path hero Dark" loading="eager" decoding="async" style={{borderRadius: '16px', transition: 'transform 0.3s ease, box-shadow 0.3s ease', cursor: 'pointer'}} width="1600" height="849" data-path="documentation/assets/learning.webp" />

## Your journey to Suki integration

Follow this structured path to successfully integrate Suki's AI-powered healthcare capabilities. Each step builds on the previous one, ensuring you have a solid foundation before moving forward.

<Note>
  **Estimated Total Time**: 4-6 weeks from start to production deployment
</Note>

## Foundation setup

### Step 1: Partner onboarding

**Goal**: Get registered with Suki and receive your <Tooltip tip="A unique identifier assigned by Suki during onboarding that links an application to its configuration in the Suki Developer Platform." cta="View in Glossary" href="/Glossary/p">Partner ID</Tooltip>

<Card>
  <CardGroup cols={1}>
    <Card title="What You'll Do" icon="clipboard-check">
      * Contact Suki partnership team
      * Provide business information and authentication method
      * Receive your unique `partner_id`
    </Card>
  </CardGroup>

  **Prerequisites**: Business information, chosen authentication method

  **Time**: 3-5 business days

  **Next Step**: Once you have your `partner_id`, move to Step 2

  <div style={{marginTop: '1rem'}}>
    <a href="/documentation/partner-onboarding" className="learning-path-button">Start Partner Onboarding</a>
  </div>
</Card>

### Step 2: Authentication setup

**Goal**: Configure secure authentication between your system and Suki

<Card>
  <CardGroup cols={1}>
    <Card title="What You'll Do" icon="key">
      * Choose authentication method (<Tooltip tip="JSON Web Key Set. A set of keys containing the public keys used to verify any JWT issued by the authorization server." cta="View in Glossary" href="/Glossary/j">JWKS</Tooltip>, Okta, JWT Assertion)
      * Set up your identity provider integration
      * Test token generation and validation
    </Card>
  </CardGroup>

  **Prerequisites**: <Tooltip tip="A unique identifier assigned by Suki during onboarding that links an application to its configuration in the Suki Developer Platform." cta="View in Glossary" href="/Glossary/p">Partner ID</Tooltip> from Step 1, access to your identity provider

  **Time**: 2-3 days

  **Next Step**: With authentication working, choose your integration path

  <div style={{marginTop: '1rem'}}>
    <a href="/documentation/partner-authentication" className="learning-path-button">Setup Authentication</a>
  </div>
</Card>

***

### Step 3: Choose your integration path

Depending on the workflow you choose, you will need to choose the best integration method for your application.

Refer to the [Workflows overview](/documentation/workflows) for more information about the different workflows and how to choose the best integration method for your application.

<Tabs>
  <Tab title="Ambient Workflows" id="ambient-workflows-path">
    ### Integration choice

    **Goal**: Select the best integration method for your application

    <Card>
      <CardGroup cols={2}>
        <Card title="Web SDK" icon="globe" href="/documentation/learning-path#web-sdk-path" arrow={true}>
          **Best for**: React/JavaScript web apps that want Suki UI

          * Pre-built clinical UI components
          * Automatic state management
          * Fastest browser implementation
        </Card>

        <Card title="Headless Web SDK" icon="react" href="/documentation/learning-path#headless-web-sdk-path" arrow={true}>
          **Best for**: React 18+ web apps with a custom UI

          * Hooks for auth, sessions, and recording
          * You build all interface and layout
          * Same core ambient behavior as the Web SDK
        </Card>

        <Card title="Mobile SDK" icon="mobile" href="/documentation/learning-path#mobile-sdk-path" arrow={true}>
          **Best for**: Native iOS applications

          * Optimized for mobile audio
          * Native performance
          * Offline capabilities
        </Card>

        <Card title="Direct APIs" icon="code" href="/documentation/learning-path#api-path" arrow={true}>
          **Best for**: Custom implementations on any stack

          * Maximum flexibility
          * Any programming language
          * Full control at the API/WebSocket level
        </Card>
      </CardGroup>

      **Time**: 1-2 hours to evaluate options

      <div style={{marginTop: '1rem'}}>
        <a href="/documentation/integration-decision-guide" className="learning-path-button">Decision Guide</a>
      </div>
    </Card>

    ### Integration implementation

    <Tabs>
      <Tab title="Web SDK path" id="web-sdk-path">
        **Goal**: Install and configure the Suki Web SDK

        <Steps>
          <Step title="Install package (15 min)">
            Install `@suki-sdk/core` plus `@suki-sdk/react` for React or `@suki-sdk/js` for plain JavaScript

            ```bash theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
            npm install @suki-sdk/react @suki-sdk/core
            ```

            **Next**: Initialize auth and the SDK client (see quickstart for your stack)
          </Step>

          <Step title="Basic configuration (30 min)">
            Create `SukiAuthManager` from `@suki-sdk/core` with your `partnerId`, `partnerToken`, and provider fields. In React, wrap with `SukiProvider` and call `init({ authManager })` from `useSuki()` in a child (once, usually from `useEffect`). In JavaScript, call `initialize({ authManager })` from `@suki-sdk/js`.

            ```jsx theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
            import { SukiProvider } from '@suki-sdk/react';

            function App() {
              return (
                <SukiProvider>
                  {/* init({ authManager }) from useSuki() in a child */}
                </SukiProvider>
              );
            }
            ```

            **Next**: Mount the UI and start an ambient session
          </Step>

          <Step title="First ambient session (45 min)">
            Mount the SDK UI with an `encounter` and walk through recording and note generation

            **What you'll build**: A simple flow that starts ambient documentation, captures audio, and returns a clinical note

            **Next**: Test with sample audio and verify note generation
          </Step>
        </Steps>

        [Web SDK quickstart →](/web-sdk/quickstart)
      </Tab>

      <Tab title="Headless Web SDK path" id="headless-web-sdk-path">
        **Goal**: Install the Headless Web SDK and wire authentication and ambient hooks in React

        <Steps>
          <Step title="Install package (15 min)">
            Install the Headless Web SDK in a **React 18+** project

            ```bash theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
            npm install @suki-sdk/platform-react
            ```

            Confirm your test and production **host URLs** are on the Suki allowlist (see [Headless Web SDK prerequisites](/headless-web-sdk/prerequisites)).

            **Next**: Add `PlatformClient` and `PlatformClientProvider`
          </Step>

          <Step title="Platform client and provider (20 min)">
            Create a `PlatformClient` and wrap your app with `PlatformClientProvider` (see [Platform client and provider](/headless-web-sdk/api-reference/platform-client) and [Quickstart](/headless-web-sdk/quickstart))

            ```jsx theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
            import { PlatformClient, PlatformClientProvider } from '@suki-sdk/platform-react';

            const client = new PlatformClient({ env: 'staging', enableDebug: true, logLevel: 'error' });

            function App() {
              return (
                <PlatformClientProvider>
                  <YourApp />
                </PlatformClientProvider>
              );
            }
            ```

            **Next**: Authenticate with `useAuth` inside the provider tree
          </Step>

          <Step title="Authentication hooks (45 min)">
            Add the `useAuth` hook under the provider with your `partnerId` and `partnerToken` (see the [Authentication hook](/headless-web-sdk/guides/hooks/auth-hook) guide)

            ```jsx theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
            import { useAuth } from '@suki-sdk/platform-react';

            function YourApp() {
              const { isLoggedIn, isPending, error, login } = useAuth({
                partnerId: 'your-partner-id',
                partnerToken: 'your-partner-token',
                // See Authentication hook guide for full options
              });
              // Render your own sign-in UI and loading states
            }
            ```

            **Next**: Create an ambient session with `useAmbient`
          </Step>

          <Step title="Session and recording (60 to 90 min)">
            Create a session with `useAmbient`, then use `useAmbientSession` for recording lifecycle and status

            **What you'll build**: Your own controls and layout (start, pause, submit) backed by hook state, plus retrieval of note content when processing completes

            **Next**: Follow the quickstart through your first end-to-end recording, then harden error handling

            For step-by-step code, use the quickstart and [Authentication hook](/headless-web-sdk/guides/hooks/auth-hook), [Ambient hook](/headless-web-sdk/guides/hooks/ambient-hook), and [Ambient session hook](/headless-web-sdk/guides/hooks/ambient-session-hook) guides.
          </Step>
        </Steps>

        [Headless Web SDK quickstart →](/headless-web-sdk/quickstart)
      </Tab>

      <Tab title="Mobile SDK path" id="mobile-sdk-path">
        **Goal**: Install and configure the Suki Mobile SDK

        <Steps>
          <Step title="Install framework (20 min)">
            Add the Suki Mobile SDK to your iOS project

            **Methods**: SPM, CocoaPods, or manual installation

            **Next**: Configure permissions and capabilities
          </Step>

          <Step title="Basic configuration (45 min)">
            Initialize the SDK and set up basic configuration

            ```swift theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
            import SukiSDK

            SukiSDK.configure(
                partnerId: "your-partner-id",
                environment: .staging
            )
            ```

            **Next**: Implement session management
          </Step>

          <Step title="First ambient session (60 min)">
            Create a basic ambient session with recording capabilities

            **What you'll build**: A view controller that can create sessions, record audio, and retrieve generated notes

            **Next**: Test with device microphone and verify functionality
          </Step>
        </Steps>

        [Mobile SDK installation →](/mobile-sdk/installation)
      </Tab>

      <Tab title="REST APIs path" id="rest-apis-path">
        **Goal**: Implement Suki's APIs directly in your application

        <Steps>
          <Step title="Authentication implementation (60 min)">
            Implement the authentication flow to get Suki tokens

            **Key endpoints**: `/auth/register`, `/auth/login`

            **Next**: Test token generation and validation
          </Step>

          <Step title="Session management (90 min)">
            Implement ambient session creation and management

            **Key endpoints**:

            * <Badge color="blue">POST</Badge> `/ambient-sessions` - Create session
            * <Badge color="blue">POST</Badge> `/ambient-sessions/{id}/context` - Set context
            * <Badge color="green">GET</Badge> `WebSocket` - Audio streaming

            **Next**: Implement audio streaming
          </Step>

          <Step title="Content retrieval (45 min)">
            Implement note generation monitoring and content retrieval

            **Key endpoints**:

            * <Badge color="green">GET</Badge> `/ambient-content/{id}/status` - Check status
            * <Badge color="green">GET</Badge> `/ambient-content/{id}/content` - Get generated note

            **Next**: Test end-to-end workflow
          </Step>
        </Steps>

        [API overview →](/api-reference/overview)
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="Form Filling Workflows" id="form filling-workflows-path">
    ### Integration choice

    **Goal**: Select the best integration method for Form filling in your application

    <Card>
      <CardGroup cols={1}>
        <Card title="Form Filling APIs" icon="code" href="/documentation/learning-path#form-filling-api-path" arrow={true}>
          **Best for**: Custom web, mobile, or backend integrations

          * REST session lifecycle and structured form output
          * Shared Partner WebSocket for visit audio
          * You build template selection, capture, and review UI
        </Card>
      </CardGroup>

      **Prerequisites**: <Tooltip tip="A unique identifier assigned by Suki during onboarding that links an application to its configuration in the Suki Developer Platform." cta="View in Glossary" href="/Glossary/p">Partner ID</Tooltip> and working authentication from Foundation setup (Steps 1–2)

      **Time**: 1-2 hours to evaluate options and read the decision guide

      <div style={{marginTop: '1rem'}}>
        <a href="/documentation/form-filling-integration-decision-guide" className="learning-path-button">Form Filling integration decision guide</a>
      </div>
    </Card>

    ### Integration implementation

    <Tabs>
      <Tab title="Form Filling APIs path" id="form filling-api-path">
        **Goal**: Implement Form filling REST APIs and the shared Partner WebSocket in your application

        <Steps>
          <Step title="Authentication implementation (60 min)">
            Implement the authentication flow to get Suki tokens for Form filling REST calls

            **Key endpoints**: `/api/v1/auth/register`, `/api/v1/auth/login`

            **Next**: Test token generation and call Form filling session APIs with `sdp_suki_token`
          </Step>

          <Step title="Session and context (75 min)">
            Create a Form filling session and optionally seed template context before audio capture

            **Key endpoints**:

            * <Badge color="blue">POST</Badge> `/api/v1/form-filling/session/create` — Create session
            * <Badge color="blue">POST</Badge> `/api/v1/form-filling/session/{ambient_session_id}/context` — Bind `form_template_id` values

            <Note>
              The session ID field is named **`ambient_session_id`**, but it is **not** the same ID as an Ambient API session. Use only the value returned from **Form filling** `/session/create` for Form filling REST and for **`/ws/stream`**.
            </Note>

            **Next**: List templates if needed, then open the audio WebSocket
          </Step>

          <Step title="Audio streaming (90 min)">
            Stream visit audio on the Partner WebSocket using your Form filling session ID

            **Connection**: `wss://` to `GET /ws/stream` (same wire format as Ambient; see [Ambient audio streaming](/documentation/ambient-audio-streaming))

            **Sequence**: **START\_TIME**, **AUDIO** chunks (Base64 PCM), **AUDIO** with **`EOF`** (`RU9G`), close the WebSocket, then call session **end** on REST

            **Next**: Poll status or configure a webhook for completion
          </Step>

          <Step title="Structured output (45 min)">
            End the session, monitor processing, and retrieve populated form fields

            **Key endpoints**:

            * <Badge color="blue">POST</Badge> `/api/v1/form-filling/session/{ambient_session_id}/end` — End session
            * <Badge color="green">GET</Badge> `/api/v1/form-filling/session/{ambient_session_id}/status` — Check status
            * <Badge color="green">GET</Badge> `/api/v1/form-filling/session/{ambient_session_id}/structured-data` — Get **generated\_values** and **non\_generated\_values**

            **Optional**: [Webhook notifications](/api-reference/asynchronous/webhook) when processing finishes

            **What you'll build**: An end-to-end flow from login through structured form output in your UI or downstream systems

            **Next**: Test in-person and virtual scenarios, then harden error handling
          </Step>
        </Steps>

        [Form Filling API quickstart →](/form-filling-api-reference/quickstart)
      </Tab>
    </Tabs>
  </Tab>
</Tabs>

***

## Advanced features

*Estimated Time: 1-2 weeks*

### Step 5: Add advanced capabilities

**Goal**: Enhance your integration with Suki's advanced features

<CardGroup cols={2}>
  <Card title="Multilingual Support" icon="language" href="/api-reference/capabilities/multilingual" cta="Learn more">
    **Time**: 2-3 hours

    Enable support for 80+ languages with automatic English note generation

    **Key Features**:

    * Automatic language detection
    * Multi-language conversations
    * English output standardization
  </Card>

  <Card title="Problem-Based Charting" icon="heart-pulse" href="/api-reference/capabilities/problem-based-charting" cta="Learn more">
    **Time**: 4-6 hours

    Implement diagnosis-focused documentation structure

    **Key Features**:

    * Problem-oriented notes
    * Diagnosis tracking
    * Enhanced clinical workflows
  </Card>

  <Card title="Custom Note Sections" icon="file-text" href="/documentation/note-sections" cta="Learn more">
    **Time**: 2-4 hours

    Configure custom clinical note sections using LOINC codes

    **Key Features**:

    * 26+ standard sections
    * Custom section ordering
    * EHR integration ready
  </Card>

  <Card title="User Preferences" icon="user" href="/api-reference/user-preferences/preferences" cta="Learn more">
    **Time**: 3-5 hours

    Allow providers to customize their documentation preferences

    **Key Features**:

    * Personal note styling
    * Section preferences
    * Workflow customization
  </Card>
</CardGroup>

***

## Production readiness

*Estimated Time: 1 week*

### Step 6: Testing & optimization

**Goal**: Ensure your integration is production-ready

<Card>
  <CardGroup cols={1}>
    <Card title="What you will do" icon="flask">
      * Comprehensive testing with real clinical scenarios
      * Performance optimization and error handling
      * Security review and compliance verification
      * User acceptance testing with healthcare providers
    </Card>
  </CardGroup>

  **Key areas**:

  * Audio quality and streaming reliability
  * Note generation accuracy and speed
  * Error handling and recovery
  * HIPAA compliance verification

  **Time**: 3-5 days
</Card>

### Step 7: Go live

**Goal**: Deploy your Suki-powered application to production

<Card>
  <CardGroup cols={1}>
    <Card title="Production deployment" icon="rocket">
      * Switch to production environment
      * Monitor initial usage and performance
      * Gather user feedback and iterate
      * Scale based on usage patterns
    </Card>
  </CardGroup>

  **Support resources**:

  * 24/7 technical support during launch
  * Performance monitoring and alerts
  * Regular check-ins with Suki team

  <div style={{marginTop: '1rem'}}>
    <a href="/documentation/support" className="learning-path-button">Get Support</a>
  </div>
</Card>

## Next steps

<Icon icon="file-lines" iconType="solid" /> If you have all the required information and `partner_id`, start with the [Getting started guide](/documentation/getting-started) to get oriented.

<Icon icon="file-lines" iconType="solid" /> For **ambient** workflows, open the quickstart or overview for your path: [Web SDK](/web-sdk/quickstart), [Headless Web SDK](/headless-web-sdk/quickstart), [Mobile SDK](/mobile-sdk/overview), or [Ambient API overview](/api-reference/overview).

<Icon icon="file-lines" iconType="solid" /> For **Form filling** workflows, use the [Form Filling API quickstart](/form-filling-api-reference/quickstart) and [Form Filling overview](/documentation/form-filling).
