Setup and Configuration
Partner ID, security (JWKS), and environment setup. Install the Web or Headless package, embed the Mobile SDK, or configure REST API clients.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
🚀 New Patient Summary APIs are out! Refer to the Release notes for details.
All Suki integrations follow the same four implementation phases, regardless of the SDK or API you choose. The exact implementation details vary by integration option. Use the expanded sections below for product-specific guidance and implementation checklists.
Partner ID, security (JWKS), and environment setup. Install the Web or Headless package, embed the Mobile SDK, or configure REST API clients.
Connect your IdP, issue partner tokens, and validate access for embedded SDKs or server-side REST API calls.
Run sessions with Web or Headless UI, native mobile capture, or API-driven flows. Stream audio, receive transcript and structured clinical note.
Receive structured payloads (JSON), map to your formats, and route to chart, record, or downstream systems.
To use our developer tools, you need to have the following:
Use your existing identity and access management system, such as OAuth 2.0. Suki integrates with the authentication framework you already use.
Support for a modern web or mobile application. Suki integrates with standard development frameworks and deployment models.
Configure Suki to match your clinical specialties, documentation workflows, and organizational requirements for high quality outputs.
Receive structured clinical data and connect it to your EHR, care management, billing, or other downstream systems.
Support secure audio capture through standard browser or mobile microphone access over HTTPS.
Provide user and organization identifiers so Suki can securely associate sessions with the correct clinician, role, and tenant.
Partner onboarding and environment setup.
Week 1
SDK integration and UI customization so the experience matches your product.
Week 2–3
Testing, QA, and production deployment with confidence.
Week 4
Go live with a controlled rollout, monitor usage and quality, and iterate.
Go-live
Goal Aligned plan, scope, and success criteria.
Goal Integrated solution in your environment.
Goal Validated solution that meets quality and security standards.
Goal Successful launch and continuous improvement.
Total time to value: 2-4 weeks | From start to production launch. Compare that to 6-12 months building ambient AI from scratch.
These five areas require attention for smooth deployment. Each requirement is standard for modern healthcare web applications.
Requirements
exp, iss, aud, and user identifierWhy it matters: Secure authentication is the foundation of trust. Get this right from the start, and everything else flows smoothly.
Requirements
Package selection
@suki-sdk/react@suki-sdk/jsWhy it matters: Match the package to the stack. React apps get React-optimized components. The JS package targets browser JavaScript outside React. This avoids unnecessary complexity.
Requirements
Why it matters: Context is everything. A cardiology note looks different from a behavioral health note. Proper configuration ensures notes are clinically appropriate and perfectly formatted for partner workflows.
Requirements
Why it matters: Completed notes arrive as LOINC-encoded JSON. Partner systems receive structured, ready-to-use data for charts, exports, or internal services. No manual translation needed.
Requirements
allow=“microphone; clipboard-write; clipboard-read” attributesWhy it matters: Audio capture is essential. Without proper microphone permissions, the system can’t function. Ensure permissions are requested and iframe configurations are correct.
These areas need attention for native iOS deployments. The Mobile SDK is a headless framework: you own the UI while the SDK handles audio, sessions, and platform services.
Requirements
tokenProvider protocol so the mobile SDK can request authentication tokens when neededPartnerID, ProviderInfo, and related fields to initialize as described in configuration guide.stage for development and .prod for productionWhy it matters: The SDK exchanges tokens with Suki services on a predictable contract. A correct token provider and initialization payload avoid auth failures during sessions.
Requirements
SukiAmbientCore.framework added, embedded, and set to Embed & SignNSMicrophoneUsageDescription in Info.plist with a clear, user-facing explanationWhy it matters: Apple enforces microphone disclosure and embedding rules. A correct deployment target and framework embedding prevent runtime crashes and App Store rejection.
Requirements
initialize when your product requires itWhy it matters: ambient capture is stateful. Delegates keep your UI and backend logic in sync with SDK events and errors.
Requirements
Why it matters: Clinical value lands when notes reach the right system. Plan retrieval and persistence before go-live.
Use these when your backend or a custom client orchestrates login, sessions, and content without the pre-built Web SDK UI. Follow REST and streaming patterns in the API reference.
Requirements
sdp_suki_token via login using partner_id, partner_token, and provider_id as documentedWhy it matters: API access is token-driven. Misconfigured login or partner tokens surface as 401s across session and content calls.
Requirements
/api/v1/…) per resourceWhy it matters: Environment mix-ups cause subtle failures. Pin URLs per environment in configuration, not in scattered constants.
Requirements
Why it matters: ambient features span REST and streaming. Plan both client behavior and server-side orchestration up front.
Requirements
Why it matters: Production APIs need observability and safe handling of transient failures, especially in clinical workflows.
Partner authentication and tokens are the same as the Web SDK. Headless differs because you build your own UI and integrate useAuth, ambient hooks, and related APIs instead of pre-built components.
Requirements
Same partner authentication checklist as the Web SDK tab.
exp, iss, aud, and user identifierWhy it matters: It is the same trust model as the Web SDK. In Headless you connect tokens through useAuth and related hooks; auth gaps block Ambient APIs until identity is wired correctly.
Requirements
@suki-sdk/platform-react with npm, pnpm, or yarnWhy it matters: The package ships React hooks. Version and bundler assumptions must match what we test and support.
Requirements
partnerId from Suki during onboardingWhy it matters: Headless initialization fails fast when hosts or user identity keys do not match what Suki configured for your tenant.
Requirements
allow attributes for microphone (and clipboard if needed)Why it matters: You own the experience. Explicit permission and error paths keep capture reliable for clinicians.
Dictation embeds a hosted iframe in your web app. You supply partner credentials, mount the Dictation UI in your layout, and wire SukiAuthManager and DictationClient (or React equivalents) instead of building capture UI yourself.
Requirements
partnerId and partnerToken from Suki after partner onboardingSukiAuthManager from @suki-sdk/core with provider fields and staging or production environmentWhy it matters: Invalid or missing credentials block iframe initialization. Auth must be stable before clinicians open Dictation.
Requirements
HTMLIFrameElement and postMessage (not Node.js or SSR-only rendering for the iframe)@suki-sdk/core plus @suki-sdk/dictation or @suki-sdk/dictation-reactWhy it matters: Dictation is browser-hosted. Package and runtime choices must match the integration track you ship.
Requirements
rootElement) with real height and a stable layout boxoverflow: visible on wrappers when minimized or floating so the iframe is not clippedallow attributes for microphone and clipboard as neededWhy it matters: The hosted Dictation UI sizes to your DOM. Clipping or zero-height containers hide Dictation or break interaction.
Requirements
ShowOptions per sessionWhy it matters: You own the surrounding UX. Mode and callback wiring determine how dictated content returns to your fields or charts.
Form filling embeds a hosted iframe in your web app. You supply partner credentials and Medical form template IDs, mount the Form filling UI in your layout, and wire SukiAuthManager and FormFillingClient (or React equivalents) instead of building capture UI yourself.
Requirements
partnerId and partnerToken from Suki after partner onboardingSukiAuthManager from @suki-sdk/core with optional provider fields and staging or production environmentWhy it matters: Invalid or missing credentials block iframe initialization. Auth must be stable before clinicians open Form filling.
Requirements
@suki-sdk/core plus @suki-sdk/form-filling or @suki-sdk/form-filling-reactWhy it matters: Form filling is browser-hosted. Package and runtime choices must match the integration track you ship.
Requirements
template_id UUIDs from Suki support in form_template_ids (staging and production IDs differ)frame-src in Content-Security-Policy allowing https://sdk.suki.ai (production) or https://sdk.suki-stage.com (staging)correlation_id (your encounter ID) to match results in callbacks and webhooksWhy it matters: Unsupported template IDs fail at start time. Zero-height containers or blocked iframe origins hide Form filling or trigger handshake errors.
Requirements
template_id values per workflowonSubmit, cancel, and error callbacks; map structured_data.generated_values into your EHRWhy it matters: Submit starts processing; structured JSON arrives later. Browser callbacks plus server webhooks keep form data from being lost.
Form filling uses REST for session lifecycle and the shared Partner WebSocket for visit audio. Your backend or custom client authenticates, creates a Form filling session, streams audio with that session ID, then retrieves structured output or consumes webhooks.
Requirements
Why it matters: Form filling REST and WebSocket calls are token-driven. Misconfigured login or JWKS surfaces as auth failures across the workflow.
Requirements
/api/v1/form-filling/…Why it matters: Environment mix-ups cause subtle failures. Pin URLs and credentials per environment in configuration.
Requirements
GET /ws/stream using the Form filling ambient_session_idWhy it matters: Capture spans REST and WebSocket. Use the Form filling session ID on the shared stream so audio maps to the correct workflow.
Requirements
Why it matters: Clinical value lands when populated forms reach the right system. Plan retrieval, validation, and handoff before go-live.
Patient Summary is API-first. Your backend authenticates, ingests FHIR data into the Clinical Knowledge Graph (CKG), triggers asynchronous summary generation, polls job status, then retrieves full or pre-visit summaries for display in your schedule and chart UI.
Requirements
sdp_suki_token for generation, status, and retrieval callsWhy it matters: Patient Summary uses different auth surfaces for CKG ingestion and summary APIs. Misconfigured tokens surface as auth failures across upload, generation, and retrieval.
Requirements
/api/v1/patient-summary/…/api/v1/fhir-push/…Why it matters: Environment mix-ups cause subtle failures. Pin URLs and credentials per environment in configuration.
Requirements
COMPLETEDfhir_encounter_id and fhir_practitioner_id consistent across ingestion, generation, and retrievalCOMPLETED, FAILED, or ABORTED)Why it matters: Summaries are generated from CKG data only. Incomplete ingestion or identifier mismatch produces empty, failed, or missing results.
Requirements
COMPLETEDWhy it matters: Clinical value lands when completed summaries reach the right clinician surface. Plan retrieval, empty states, and handoff before go-live.
Suggestions