Overview
SNOW API (1.0)
Clinical-summarization API. Turn patient history into structured actionable summaries.
SNOW takes a combination of patient questions, uploaded reports, and pre-collected structured data, and returns a clinician-grade structured summary. One API key, four integration flows, real-time webhooks.
Authentication
All /v1/* endpoints require an API key:
Authorization: Bearer sn_live_<your_key>
Mint keys via the developer console at platform.snowmed.health (Google login).
Test keys (sn_test_*) emit webhooks but do not run the real LLM pipeline —
use them during integration development. Live keys (sn_live_*) cost real money
per call.
Public token-bound endpoints (e.g. /v1/sessions/:token/info) require no auth —
the unguessable token is itself the credential.
Integration flows
Pick one or more based on who enters the data:
| Flow | Endpoint | Who enters data |
|---|---|---|
| 1. Hosted form, fixed questions, single-submit | POST /v1/intake-sessions | Patient (SNOW-hosted UI) |
| 2. Hosted form with iterative Q&A + uploads + voice | POST /v1/sessions (patient-link mode) | Patient (SNOW-hosted UI) |
| 3. Direct API — you POST what you have | POST /v1/sessions | Your backend |
| 4. Hosted form with LLM-driven dynamic questions | POST /v1/sessions (no template) | Patient + LLM |
See the integration guide for full lifecycle examples.
Idempotency
Pass Idempotency-Key: <uuid> on POST requests. Replays return the cached response
body for 24h. Body-mismatch on the same key returns 409.
Error model
All errors return JSON of shape { "error": "<message>", "code": <int> }.
HTTP status codes follow standard semantics (4xx client error, 5xx server error).
Common codes: 400 (validation), 401 (auth), 404 (not found), 409 (conflict / already submitted),
410 (expired), 429 (rate limit), 500 (server error).
- SNOW Docs: https://docs.snowmed.health
- OpenAPI version: 3.0.3
Authentication
BearerAuth
API key (sn_live_* or sn_test_*) issued via the developer console
Security scheme type: http