Overview
This quickstart guide will help you integrate Suki’s ambient documentation capabilities into your healthcare application. You’ll go from initial setup to your first successful ambient session in just a few steps.What You’ll Accomplish
By completing this guide, you will:- Set up authentication with Suki Platform
- Choose and integrate your preferred SDK or API
- Create your first ambient session with patient information
- Record and stream audio for at least 1 minute
- Retrieve a fully structured clinical note with transcript
New to Suki? Consider following our comprehensive Learning Path for a structured, step-by-step journey from onboarding to production deployment with progress tracking and time estimates.
What You Need Before Starting
To integrate your application with Suki Platform, you must meet the following requirements:OAuth-compliant authentication system
For secure user management
JWT tokens with consistent user identifiers
For user authentication
Publicly accessible JWKS endpoint
For token validation
ES6 compatible browser
Modern browser support (for Web SDK)
Required Information From Suki
You’ll need the following from Suki to get started:- Partner ID - Unique identifier provided by Suki
How Does Authentication Work
Suki supports the following public key sharing authentication mechanisms. You will use your own identity provider to issue the token.- Stored Secret - You provide your public key to Suki, and we store it securely in our database as an encrypted file.
- JWKS URL - You host your public keys at a public JSON Web Key Set () endpoint, and Suki fetches them dynamically to verify tokens.
- Okta - You use Okta as your Identity Provider, and Suki obtains the public key from your Okta issuer URL.
- JWT Assertion - You share your public key as a signed JWT that follows the RFC 7523 standard. Suki then verifies this JWT using our public key.
Step 1: Choose Your Integration Path
Select the integration method that best fits your application requirements: Refer to the Integration Decision Guide to help you decide.Web SDK
Best for: React/JavaScript web applicationsPre-built UI components with automatic state management
Mobile SDK
Best for: Native iOS applicationsNative framework optimized for mobile audio capture
Direct APIs
Best for: Custom implementationsMaximum flexibility with direct API control
Step 2: Integration Setup For API And SDKs
Once you have chosen your integration method, you can follow the following setup guide below to start building your application with Suki for Partners.Web SDK
Mount UI
In the same component where you initialized the SDK, mount the
SukiAssistant component with encounter data:Start Recording
Click the recording button in the Suki web SDK UI to start capturing the conversation.
Record for at least 1 minute
Record a test conversation. The session should be at least 1 minute long for note generation to occur.
For complete web SDK capabilities, refer to the Web SDK Section of the documentation.
Mobile SDK
Install the Framework
Add the Suki Mobile SDK to your iOS project following the installation guide.
For complete mobile SDK capabilities, refer to the Mobile SDK Section of the documentation.
Direct API
Authenticate and Get Token
Get your access token by calling the login endpoint: If not registered in Suki, you will need to call the register endpoint first. Call the Register endpoint to register a new user.
Save the
suki_token from the response. This token is valid for 1 hour and must be included as sdp_suki_token header for all subsequent API calls.Create Ambient Session
Start a new ambient session:
Save the
ambient_session_id from the response. You’ll need it to stream audio and retrieve content.Session Duration RequirementYour ambient session must be at least 1 minute long for note generation to occur. Sessions shorter than 1 minute will receive a
SKIPPED status, meaning no clinical note was generated.For complete API capabilities, refer to the API Reference of the documentation.Verify Success
After completing your first session, you should see: For Web SDK:- The generated clinical note automatically appears in the Suki UI panel
- Sections are organized according to your LOINC configuration
- Transcript is available within the UI
- Call
content()andtranscript()to retrieve the note and transcript respectively - Check the session status to confirm successful completion
- Access structured sections and conversation transcript programmatically
- GET request to
/api/v1/ambient/session/{ambient_session_id}/contentreturns:summary- Array of structured clinical note sections
- GET request to
/api/v1/ambient/session/{ambient_session_id}/transcriptreturns:final_transcript- Complete conversation transcript with speaker identification
- GET request to
/api/v1/ambient/session/{ambient_session_id}/statusreturns:status- Session status (created,ready,running,aborted,skipped,failed,completed)
Step 3:Advance Configuration (Optional But Recommended)
You can configure the generated note in many ways. For example, if you want to generate a customized clinical note, you should refer to the LOINC codes to define the sections you want to generate.Next Steps
Ambient Documentation Guide
Learn more about how ambient documentation works
Authentication Setup
Understand how to authenticate your application with Suki
Note Sections
Customize clinical note structure and LOINC codes
API Reference
Explore detailed API specifications
Success Checklist
Before moving to production, ensure you have successfully completed these steps:Authentication Works
Authentication Works
- You can successfully call the
/api/v1/auth/loginendpoint - You receive a valid
suki_tokenin the response - Your JWT token is properly formatted and not expired
- Your JWKS endpoint is publicly accessible
Session Creation Works
Session Creation Works
- You can create an ambient session with patient information
- You receive an
ambient_session_idin the response - The session status is valid (not
FAILED)
Audio Streaming Works
Audio Streaming Works
- WebSocket connection establishes successfully
- Audio chunks are being sent to Suki
- No connection errors or timeouts occur
- Session duration is at least 1 minute
Content Retrieval Works
Content Retrieval Works
- You can fetch session content using the
ambient_session_id - Response includes structured
summaryarray with clinical content - Response includes a complete
transcriptof the conversation - Session status shows
COMPLETED(notSKIPPEDorFAILED)
Integration Quality
Integration Quality
- Generated notes are accurate and clinically relevant
- Transcript speaker identification is correct
- LOINC sections match your requested configuration
- Error handling is implemented for all API calls
Troubleshooting
Common Issues
Authentication Failed - 401 Unauthorized
Authentication Failed - 401 Unauthorized
Session Creation Failed
Session Creation Failed
Problem: Cannot create ambient session or receive error responseSolution:
- Confirm you have a valid
suki_tokenfrom the login endpoint - Use
sdp_suki_tokenheader (notAuthorization: Bearer) for all API calls - Verify
ambient_session_idandencounter_idare valid UUIDs if provided - Check that
multilingualis a boolean value (true/false) - Verify your partner account has the necessary permissions for ambient sessions
WebSocket Connection Failed
WebSocket Connection Failed
Problem: WebSocket connection fails or immediately disconnectsSolution:
- Verify you’re using the correct WebSocket URL:
wss://sdp.suki.ai/ws/stream - For browser clients, ensure you’re using
Sec-WebSocket-Protocolheader with format:SukiAmbientAuth,<ambient_session_id>,<sdp_suki_token> - For non-browser clients, include both
sdp_suki_tokenandambient_session_idas separate headers in the WebSocket upgrade request - Check network connectivity and firewall settings allow WebSocket connections
- Ensure your
suki_tokenhasn’t expired (valid for 1 hour)
Session Status Shows SKIPPED
Session Status Shows SKIPPED
Problem: Session completes but status is
SKIPPED and no note is generatedSolution:- Ensure your session duration is at least 1 minute long
- Verify audio is being properly captured and streamed
- Check that audio chunks contain actual speech (not silence)
- Confirm WebSocket connection remained stable throughout the session
A
SKIPPED status is expected for sessions shorter than 1 minute or with no audible speech. This is not a system error.Audio Not Processing
Audio Not Processing
Problem: Audio streams but transcript is empty or note not generatedSolution:
- Verify audio format is correct (PCM, 16-bit, 16kHz mono recommended)
- Ensure audio chunks are the correct size (100ms chunks recommended)
- Check that you’re sending the
end_of_streammessage when done - Verify microphone permissions are granted in your application
- Test with a known working audio sample first
Content Retrieval Returns Empty or Incomplete Data
Content Retrieval Returns Empty or Incomplete Data
Problem: Session completes but content endpoint returns no data or incomplete noteSolution:
- Wait at least 5-10 seconds after ending the session before retrieving content
- Check the session
status- it should beCOMPLETED, notPROCESSING - Verify you’re using the correct
ambient_session_idin the URL path - Use
sdp_suki_tokenheader (notAuthorization: Bearer) - Ensure your
suki_tokenis still valid (valid for 1 hour) - Check if session was
SKIPPEDdue to short duration (less than 1 minute) - Verify you called the
/endendpoint to trigger note generation
Getting Help
- Technical Issues: Review our FAQs
- Integration Support: Contact our support team
- Partnership Questions: Reach out to our partnership team