Skip to main content
This guide covers: Form filling APIs.
This guide walks you through how to build a standalone Form filling workflow with the Form filling APIs. In this workflow, you:
  • Create a Form filling session
  • Seed session context with template metadata
  • Stream visit audio over WebSocket
  • End the session when capture is complete
  • Retrieve structured form output when processing finishes
Before you start, register the provider and get an sdp_suki_token. Refer to Partner authentication and Form filling authentication.

From filling API workflow overview

The Form filling API workflow uses Form filling REST APIs and the shared partner WebSocket.
  1. Create a session with the REST API.
  2. Seed context with form_template_id values when needed.
  3. Stream audio to the session over /ws/stream.
  4. End the session with the REST API.
  5. Poll status and retrieve structured data.
Both Form filling and Ambient clinical note sessions use the parameter name ambient_session_id in the API reference. Those identifiers refer to different sessions. Use only the ID returned from Form filling Create Form filling session for Form filling REST calls and for /ws/stream.

Create a Form filling session

Create a Form filling session before you seed context or open the WebSocket. The response includes an ambient_session_id that you use for the rest of the workflow. Call POST Create Form filling session:
Example response:
The API returns 201 Created when the session is created successfully.

Request details

  • Include sdp_suki_token in every REST request and during the WebSocket handshake.
  • The request body is optional. You may send correlation_id when your integration needs it.
  • Save ambient_session_id for context, /ws/stream, end session, status, and structured-data calls.

Seed session context

After you create the session, you can provide form template metadata for the visit. Context helps Suki generate structured output for the templates you select. Call POST Seed Form filling session context:

Request details

  • The body is optional. If you omit it, you can continue to audio capture without seeding context.
  • If you include form_filling, provide valid values with a required form_template_id (UUID) for each template.
  • Refer to Suki Medical form templates to list templates for your integration.
  • To update context later, use PATCH Update Form filling session context.

Stream visit audio

Form filling uses the Partner WebSocket GET /ws/stream, not a separate Form filling streaming path. Authenticate during the WebSocket handshake with:
  • sdp_suki_token
  • Your Form filling ambient_session_id
For browser versus non-browser handshake headers, PCM format, chunking, and EVENT messages, refer to Stream ambient audio over WebSocket, WebSocket streaming wire format, and the Audio streaming API reference. Close the WebSocket when audio capture is complete, then call end session.

End the Form filling session

When visit capture is complete:
  1. Close the WebSocket connection used for audio.
  2. End the session with the REST API.
Call POST End Form filling session:

Retrieve structured form output

After you end the session, poll until processing reaches a terminal status, then retrieve structured data.

Poll session status

Call GET Form filling session status:
Poll until the status is terminal (for example completed or failed). Refer to the status API reference for all status values.

Get structured data

Call GET Form filling structured data:
After you bind templates, stream audio, and end the session, call this endpoint when processing is done. Filled forms appear in generated_values. Templates with no output appear in non_generated_values.

Example response

The Form filling structured data API returns the following response for a completed Form filling session with filled templates:
The response contains the following top-level fields under structured_data: Each item in generated_values has the following fields:
data is where the filled field values live. Different templates use different field names (for example vitals vs skin). Check the template schema using the Suki Medical form templates API to know which keys to expect.
When webhooks are enabled for your partner account, Suki can notify your application when processing completes. Refer to Webhook and Asynchronous notifications.

Common integration patterns and use cases

Pattern 1: Standard Form filling flow

A typical Form filling workflow follows these steps:
1

Create the Session

Call Create Form filling session and save ambient_session_id.
2

Seed Context

Call Seed Form filling session context with form_template_id values when needed.
3

Stream Audio

Connect to /ws/stream, stream audio per Ambient audio streaming, then close the WebSocket.
4

End the Session

5

Retrieve Structured Data

Pattern 2: Update context during the visit

If the templates in scope change during the visit, call Update Form filling session context before you end the session.

Pattern 3: Submit feedback on a form instance

After clinicians review generated output, call Form filling session feedback. Include feedback_metadata.form_id for the medical form instance you are rating.

What you can build

In-Person and Virtual Form Filling Workflows

Complete template-based forms during room or telehealth visits with structured output in your UI.

Server-Side Capture Pipelines

Capture audio on a backend service, stream on /ws/stream, and store structured data for downstream systems.

Nursing and Clinical Assessments

Bind Suki templates in context and route generated_values into your chart or internal tools.

Webhook-Driven Completion

Trigger save or review flows when Suki notifies your backend that processing finished.

Create Form Filling Session

Create a Form filling session

Seed Session Context

Provide form template metadata

Form Filling Structured Data

Retrieve structured form output

Best practices

  • Close the WebSocket before end session so processing can start reliably.
  • Use the Form filling session ID for /ws/stream, not an ambient clinical note session ID.
  • Poll status until terminal, or configure webhooks for completion events.
  • Handle non_generated_values in your UI so clinicians know which templates need follow-up.
  • Store tokens securely and refresh sdp_suki_token before expiry.

FAQs

Call Suki Medical form templates. Use template_id from each template in form_filling.values when you seed or update context.
Last modified on July 24, 2026