Authentication
All Scribara API calls require a bearer token. Tokens are scoped to a tenant and a set of operations. Issue and rotate keys under Admin → API Keys.
curl https://api.scribara.com/v1/encounters \ -H "Authorization: Bearer sbr_live_••••••••••••" \ -H "Scribara-Tenant: pacific_cardio"
Versioning
The API is versioned by URL prefix (/v1). Breaking changes ship in new majors with a minimum 12-month deprecation window for the previous major.
Rate limits
Default tenant limit is 60 requests per second sustained, 300 burst. Per-endpoint limits documented in each response's X-Scribara-RateLimit-* headers.
Encounters
An encounter is the central resource. Create one to start a visit; the agent runtime takes over from there.
POST /v1/encounters
{
"provider_id": "prv_eh",
"patient_ref": "epic://pat_18421",
"specialty": "cardiology",
"consent": { "mode": "verbal", "witnessed_at": "2026-05-28T14:32:11Z" }
}
→ 201 Created
{
"id": "enc_01HW7AB...",
"state": "LISTEN",
"stream_url": "https://api.scribara.com/v1/encounters/enc_01HW7AB.../stream"
}
Notes
Once VERIFY succeeds, a note.drafted event fires. Retrieve the draft, the structured fields, and the per-line evidence map.
GET /v1/encounters/{id}/note
→ 200 OK
{
"format": "soap",
"sections": { "hpi": "...", "ros": "...", "exam": "...", "ap": "..." },
"confidence": 0.94,
"evidence": [ { "field": "ap.line_2", "transcript_offset_ms": 184_120 } ]
}
Codes
Coding suggestions include the predicted codes, modifiers, the level-of-service rationale, and the lines of transcript that justify each code.
Prior auths
Submit a draft auth to a payer via Waystar/Availity, or download it as a PDF for manual submission. Status flows through the encounter via webhooks.
Webhooks
All Scribara events are available as webhook deliveries, signed with HMAC-SHA256 over the raw body.
# event payload { "type": "encounter.signed", "id": "evt_01HW...", "data": { "encounter_id": "enc_01HW7AB...", "signed_by": "prv_eh" } }
SSE streams
For low-latency in-product use, subscribe to the encounter SSE stream to receive partial transcripts, agent state transitions, and confidence updates as they happen.
SDKs
First-party SDKs are open source under Apache 2.0:
# TypeScript npm install @scribara/sdk # Python pip install scribara
import { Scribara } from "@scribara/sdk" const sbr = new Scribara({ apiKey: process.env.SCRIBARA_KEY }) const enc = await sbr.encounters.create({ providerId: "prv_eh", specialty: "cardiology" }) for await (const ev of sbr.encounters.stream(enc.id)) { if (ev.type === "note.drafted") { await sbr.encounters.sign(enc.id) } }
MCP tools
Register your own tools into the Scribara agent runtime via the Model Context Protocol. Tools are scoped per workflow and per role.