Suki Dictation API

REST + WebSocket API for real-time clinical dictation. Partners open a dictation session, stream audio to a WebSocket, and receive transcribed clinical text. Designed for both in-field dictation (into a single EHR field) and scratchpad mode for free-form capture. Also exposed through the Suki Dictation SDK as a hosted iframe for fast web integration.

OpenAPI Specification

suki-dictation-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Suki Dictation API
  description: |
    REST control plane for clinical dictation sessions on Suki Speech
    Service. Partners open a dictation session, stream audio over the
    paired WebSocket endpoint (`wss://sdp.suki-stage.com/api/v1/dictation/sessions/{sessionId}/audio`),
    and receive real-time transcription. Supports both in-field
    dictation (single EHR field) and scratchpad mode.
  version: '1.0.0'
  contact:
    name: Suki for Partners
    url: https://developer.suki.ai
servers:
  - url: https://sdp.suki-stage.com/api/v1
    description: Suki Speech Service staging environment
tags:
  - name: Dictation
    description: Dictation Session Lifecycle
security:
  - SdpSukiToken: []
paths:
  /dictation/sessions:
    post:
      tags: [Dictation]
      summary: Create Dictation Session
      operationId: createDictationSession
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DictationSessionCreate'
      responses:
        '201':
          description: Dictation session created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictationSession'
  /dictation/sessions/{sessionId}/end:
    post:
      tags: [Dictation]
      summary: End Dictation Session
      operationId: endDictationSession
      parameters:
        - name: sessionId
          in: path
          required: true
          schema: { type: string, format: uuid }
      responses:
        '200':
          description: Session ended; final transcript returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictationResult'
components:
  securitySchemes:
    SdpSukiToken:
      type: apiKey
      in: header
      name: sdp_suki_token
  schemas:
    DictationSessionCreate:
      type: object
      required: [providerId]
      properties:
        providerId: { type: string }
        mode: { type: string, enum: [in-field, scratchpad], default: in-field }
        languageCode: { type: string, example: en-US }
        fieldHint:
          type: string
          description: Free-text hint describing the target EHR field
    DictationSession:
      type: object
      properties:
        sessionId: { type: string, format: uuid }
        providerId: { type: string }
        mode: { type: string }
        status: { type: string, enum: [open, ended] }
        audioWebsocketUrl: { type: string, format: uri }
        createdAt: { type: string, format: date-time }
    DictationResult:
      type: object
      properties:
        sessionId: { type: string, format: uuid }
        transcript: { type: string }
        durationMs: { type: integer }
        confidence: { type: number, format: float, minimum: 0, maximum: 1 }