canonical: https://jentic.com/apis/nabla.com/nabla-user

# Nabla Core User API

Jentic publishes the only available OpenAPI specification for Nabla Core User API, keeping it validated and agent-ready. Nabla is an AI clinical assistant that produces structured notes, normalized clinical data, and patient instructions from ambient encounter audio. The Core User API is the client-side variant: it powers clinician-facing applications with operations for transcription, digest generation, normalization, patient instructions, dot phrases, custom dictionary expressions, and JWT refresh and logout. It uses an HTTP bearer token minted per clinician.

## For AI agents

Run client-side ambient transcription, clinical note generation, dot-phrase management, and custom-dictionary editing for individual clinicians on Nabla.

## Scope

Does not handle billing claims, prescription writing, or scheduling - use for clinician-side ambient transcription, dot phrases, custom dictionaries, and patient-instruction generation only.

## Capabilities

- Stream or upload encounter audio for ambient transcription via /listen
- Generate a structured clinical digest, note, or normalized clinical data for an encounter
- Create, update, and delete clinician dot phrases used as text shortcuts in notes
- Manage a clinician's custom dictionary expressions for transcription accuracy
- Refresh or revoke the clinician's JWT via /jwt/refresh and /jwt/logout
- Generate patient-facing visit instructions for handoff
- Submit usage reports tied to the clinician's session

## Use cases

### Clinician-Side Ambient Documentation

Power a clinician's mobile or web Nabla experience by recording encounter audio, transcribing it, and turning it into a structured note inside the same authenticated session. POST /listen handles audio capture, /digest produces the structured clinical digest, and /generate-note generates the note draft. Replaces dictation or scribe queues so a clinician finishes documentation before they leave the room.

Example prompt: Upload the recording for visit ID 9821 to POST /listen and call POST /digest to retrieve the structured digest for the clinician to review.

### Personal Dot-Phrase Library

Clinicians compose notes faster with personal dot phrases, expanded shortcuts that drop in commonly used assessment or plan text. POST /dot-phrases creates entries, GET /dot-phrases lists them, and PATCH /dot-phrases/{id} updates them. The Nabla client UI then surfaces these inside the note editor so the clinician keeps their personal shortcuts across devices.

Example prompt: Create a dot phrase '.aspasse' with the clinician's standard asthma assessment paragraph via POST /dot-phrases.

### Custom Dictionary Tuning

Clinicians fix recurring transcription errors by adding their own custom dictionary expressions for drug names, local jargon, and patient names that the base transcription model mishears. POST /custom-dictionary-expressions, PATCH, and DELETE control the entries per clinician. Improves note quality without retraining a model and gives the clinician direct control of their own dictionary.

Example prompt: Add 'tirzepatide' as a custom dictionary expression for the clinician via POST /custom-dictionary-expressions to fix its repeated misrecognition.

### After-Visit Patient Instructions

Generate a plain-language after-visit summary for the patient straight from the clinician's device. The patient-instructions operations turn the encounter into medication, follow-up, and red-flag-symptom guidance the patient can read at home. Combined with the EHR portal, this satisfies after-visit-summary requirements without extra clinician typing.

Example prompt: After /digest completes, call the patient-instructions endpoint and email the resulting summary to the patient.

### AI Agent Inside the Clinician's Workflow

Embed a Jentic-powered AI agent in the clinician's app that can run 'transcribe this visit', 'add a dot phrase', or 'fix my dictionary' on demand without raw API calls. Through Jentic the per-user JWT stays in the encrypted vault and the agent picks the right operation across 24 endpoints via intent search. Saves clinicians from learning a separate keyboard shortcut surface for each operation.

Example prompt: Search Jentic for 'add a Nabla dot phrase', execute POST /dot-phrases with the clinician's text, and confirm the new entry in the chat.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /listen | Submit encounter audio for ambient transcription |
| POST | /digest | Generate a structured clinical digest of an encounter |
| POST | /generate_normalized_data | Produce normalized clinical data such as ICD codes |
| POST | /dot-phrases | Create a clinician dot phrase |
| GET | /dot-phrases | List a clinician's dot phrases |
| POST | /custom-dictionary-expressions | Add a custom dictionary expression for the clinician |
| POST | /jwt/refresh | Refresh the clinician's JWT |
| POST | /jwt/logout | Revoke the current session |

## Key resources

- **Authentication** — Refresh and revoke per-clinician JWTs via /jwt/refresh and /jwt/logout
- **Listen** — Submit encounter audio for ambient transcription
- **Digest** — Generate structured clinical digests of encounters
- **Normalize** — Produce normalized clinical data such as ICD codes
- **Patient Instructions** — Generate after-visit plain-language patient instructions
- **Dot Phrases** — Create, list, update, and delete a clinician's text shortcuts
- **Custom Dictionary Expressions** — Manage per-clinician dictionary entries to improve transcription accuracy
- **Report** — Submit usage reports tied to the clinician's session

## Why Jentic

- **Setup:** Wiring the Nabla Core User API by hand means holding the per-clinician JWT, refreshing it, and choosing the right regional host under {region}.api.nabla.com yourself. Through Jentic you install once, import the Nabla Core User API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Nabla addresses these clinician resources through request bodies rather than a resource id in the URL path, so scope the agent to the operations it needs, such as adding a dot phrase or a custom dictionary expression, and leave session-ending ones like JWT logout out of the allowed set unless you include them.
- **Credential handling:** Your per-clinician Nabla JWT is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'add a Nabla dot phrase' or 'fix the transcription dictionary', and Jentic returns the matching Nabla operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **DrChrono API** — EHR destination for Nabla-generated notes and patient instructions
- **athenahealth API** — Enterprise EHR destination for normalized clinical data and notes
- **Deepgram Speech-to-Text API** — General-purpose transcription rather than clinical-specific dot phrases and dictionary tuning
- **Nabla Core Server API** — Server-side companion for OAuth, user provisioning, and JWT minting

## FAQ

### Why is there no official OpenAPI spec for Nabla Core User API?

Nabla does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Nabla Core User API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Nabla Core User API use?

The User API uses HTTP bearer authentication with per-clinician JWTs. Tokens are minted by the Server API's /jwt/authenticate/{user_id} endpoint and refreshed via POST /jwt/refresh on the User API. Through Jentic the JWT lives in the encrypted vault and is injected at execution time, so the raw token never enters agent context.

### Can I manage a clinician's dot phrases through the API?

Yes. POST /dot-phrases creates a phrase, GET /dot-phrases lists them, GET /dot-phrases/{id} returns one, PATCH /dot-phrases/{id} updates it, and DELETE /dot-phrases/{id} removes it. The Nabla client UI surfaces these as in-line shortcuts inside the note editor.

### How do I improve transcription accuracy for unusual drug or term names?

Add per-clinician dictionary entries via POST /custom-dictionary-expressions. PATCH lets you correct an entry and DELETE removes it. The clinician's transcription pipeline then prefers these expressions when it encounters near-matches in audio.

### What rate limits apply to the Nabla Core User API?

Rate limits are not declared in the OpenAPI spec. Treat the API as moderately rate-limited per clinician session, implement exponential backoff on HTTP 429, and contact Nabla for committed throughput if you plan to run extensive batch backfills against /listen and /digest.

### How do I run a Nabla User API operation from an AI agent through Jentic?

Install the Jentic SDK with pip install jentic. Use SearchRequest with a query like 'transcribe a clinical encounter' to find POST /listen, LoadRequest for its schema, and ExecutionRequest to call it. Get an agent API key through Jentic One, the self-hosted execution layer.

### Can I limit what my agent is allowed to do with the Nabla Core User API?

Yes. Because you run Jentic One yourself, your own rules decide which Nabla operations and credentials the agent may use. Nabla addresses these clinician resources through request bodies rather than a resource ID in the URL path, so you allow only the operations the agent needs, such as POST /dot-phrases to add a dot phrase or POST /custom-dictionary-expressions to fix the transcription dictionary. You can keep session-ending operations like POST /jwt/logout out of the allowed set, and the per-clinician JWT stays under your control rather than in the agent's prompt.
