Changelog & Upgrades
Updates to the Nabla Core API β including new features, fields, or endpoints β are released under a new-dated version to ensure stability and predictability. This means these changes wonβt affect your integration unless you explicitly opt into the newer version (see Targeting a specific version).
That said, some updates β like internal AI models improvements, bug fixes, or strictly non-breaking changes that donβt affect the schema or observable behavior β may be rolled out across all versions.
Below is a list of all available Core API versions, along with their associated changes.
2026-07-01β
-
New Server API endpoints for E/M (Evaluation & Management) CPT code generation:
POST /generate-em-codes-asyncβ Submit a transcript and note to generate E/M CPT codes asynchronously. The endpoint infers the visit type (if not provided) and determines the MDM level in parallel, then computes the appropriate CPT codes. The result is kept for two hours.GET /generate-em-codes-async/{id}β Poll the status and results of an in-progress or completed E/M code generation.POST /compute-em-codesβ Deterministic, fast recomputation of E/M CPT codes from structured encounter inputs (no transcript or note required). Use to recompute codes after the user changes encounter info such as modality, payer, or total encounter time.
-
New asynchronous normalized data generation endpoints on both Server API and User API:
POST /generate-normalized-data-asyncβ start an asynchronous job to extract ICD-10 and LOINC codes from a Nabla-generated clinical note in a FHIR-compliant structure.GET /generate-normalized-data-async/{id}β poll the status and retrieve the results of an asynchronous normalized data generation job.
-
Dictation WebSocket (
/dictate-ws) β the server may now emit a newASYNC_CORRECTIONitem on both the Server API and User API. This item carries asuffixandreplacementpair instructing the client to replace the trailing portion of the dictation that matchessuffixwithreplacement, allowing the server to refine or fix previously streamedDICTATED_TEXTsegments after additional processing (e.g. punctuation, formatting, model-based corrections). Clients opt in by setting the newenable_async_correctionsboolean (defaults tofalse) on the initialCONFIGframe. -
Template-level note customization β optional
note_template_custom_instructions(nullable string, same 700-character limit as sectioncustom_instruction) for note-wide guidelines on a template:- User API:
GET /note-settings/templates/{template_key}/customizationandPATCH /note-settings/templates/{template_key}/customizationfor stored settings; applied onPOST /generate-noteand async when using profile settings (API version2025-04-03+). - Server API: optional request field on
POST /generate-noteandPOST /generate-note-async.
- User API:
-
ChartSync β follow-up note generation. Replaces the free-text
draft_assessment_and_planinput with a structuredsource_notethat describes both the provenance of the seed content and the semantic role of each section. See the ChartSync guide for more details.-
structured_context.draft_assessment_and_planhas been replace bystructured_context.source_notein/generate-noteand/generate-note-asyncrequest bodies on both Server and User APIs. -
New
supported_source_note_section_kindsfield on the template detail endpoints, listing the semantic kinds the template accepts as source-note inputs. -
Migration from
draft_assessment_and_plan. The previous field accepted a single free-text string used to seed the Assessment & Plan section. To migrate, move that string into the new structure:// Before
{
"structured_context": {
"draft_assessment_and_plan": "1. Type 2 diabetes β continue metformin..."
}
}
// After
{
"structured_context": {
"source_note": {
"type": "DRAFT",
"sections": [
{
"kind": "ASSESSMENT_AND_PLAN",
"text": "1. Type 2 diabetes β continue metformin..."
}
]
}
}
}
-
2026-06-12β
- Haitian Creole transcription support. Haitian Creole (
HAITIAN_HT) can now be used as a speech locale value on the transcription endpoints (/transcribe,/transcribe-async,/transcribe-ws) of both the Server and User APIs. Support is experimental and access is limited β please reach out to get access. Haitian Creole cannot be combined with any other locale: when transcribing Haitian Creole,speech_localesmust contain exactly one entry. This change also applies to all prior versions that take aspeech_localeorspeech_localestoo β you can specifyHAITIAN_HTon most of the latest API versions. - Removed
family_historyfield from normalized data. Thefamily_historyfield has been removed from theNormalizedDataresponse object on both User and Server APIs (/generate-normalized-data). Family-related conditions are already covered through dedicated ICD-10 codes in the standard conditions field. - Custom note templates β templates and sections are now identified by a freetext key (string) instead of a fixed enum. Changes across all existing endpoints:
note_template(enum) note generation request bodies has been renamed tonote_template_key(string). This only impacts the Server API.template(enum) in note generation responses has been renamed totemplate_key(string).- Section identifiers (
key/section_key) are now freetext strings instead of a fixed enum.
- New Server API endpoints to browse available templates:
GET /generate-note/templates?locale={locale}β list all templates available to the organization.GET /generate-note/templates/{template_key}?locale={locale}β get metadata and sections for a single template.
- New User API endpoints for template customization:
GET /note-settings/templatesβ list all templates available to the authenticated user.GET /note-settings/templates/{template_key}β get metadata and sections for a single template.GET /note-settings/templates/{template_key}/customizationβ get note template customization.PATCH /note-settings/templates/{template_key}/customizationβ update note template customization.GET /note-settings/templates/{template_key}/customizationandPATCH /note-settings/templates/{template_key}/customizationreplace the now deprecatedGET/PATCH /note-settings/note-sections-customization/{template_key}.
2026-04-24β
- Introduce an optional provider
specialtyfield. This field lets you set a user's medical specialty. If set, it will for now have impact, but in the near future, this piece of information will be leveraged to improve the dictation, transcription, and note generation.- Added optional
specialtyfield to user management endpoints on the Server API (POST /users,PATCH /users/{id},GET /users/{id},GET /users). - On the other Server API, the same
specialtyfield is available on the request bodies for/transcribe,/transcribe-async,/dictate,/dictate-async,/generate-note, and/generate-note-async. - On the User API, transcription, dictation, and note generation use the authenticated user's profile specialty instead (no
specialtyfield on those request bodies).
- Added optional
- Added optional
encounter_datefield to note generation endpoints (/generate-noteand/generate-note-async) on both User and Server APIs. When provided, this date grounds relative temporal references (e.g., "last year") in the generated note. Defaults to today's date when omitted.
2026-03-16β
- Add new bulk Dot Phrase management endpoints to the User API, each supporting up to 100 items per request:
POST /dot-phrases/bulk-createβ Create multiple Dot Phrases in a single request.POST /dot-phrases/bulk-updateβ Update multiple Dot Phrases in a single request.POST /dot-phrases/bulk-deleteβ Delete multiple Dot Phrases in a single request.
- Added
created_atandupdated_attimestamp fields to the dot phrase API responses. /generate-patient-instructionsnow returns an error when no patient instructions can be generated. Previously, this endpoint would silently return a placeholder string ([Insert your patient instructions here]) when the note lacked actionable content. It now returns error code83023(NOTE_HAS_NO_PATIENT_INSTRUCTIONS_INFORMATION) with HTTP 400, allowing clients to handle this case explicitly (e.g., display their own placeholder).
2026-02-20β
-
Breaking change: JWT audience
us-central1andeu-west1are now deprecated.- If you are using the
us-central1oreu-west1regions in the URL of your JWT audiences; use the genericusandeuinstead.
- If you are using the
-
Diarization support.
- Diarization support for transcription WebSocket sessions (
/transcribe-ws). Starting with this API version, whenspeaker_type=UNSPECIFIEDis set in the configuration of an audio stream, the Nabla transcription engine will perform speaker diarization. For each transcript item, the system will infer and return eitherspeaker_type=DOCTORorspeaker_type=PATIENT. - Diarization support for transcription HTTP endpoints (
/transcribeandtranscribe-async). Starting with this API version, the returned
If there is not enough context to reliably determine whether the speaker is a healthcare provider or a patient, the speaker_type will remain
UNSPECIFIED, effectively behaving as if diarization were not enabled. - Diarization support for transcription WebSocket sessions (
-
The
localeandtemplatefields are now required properties of the note request schemas for both Server and User APIs. These fields specify the locale and template used to generate the note and must be included in note data structures. -
The
noteresponse schema for both Server and User APIs has been updated to include thelocaleandtemplatefields, indicating the locale and template used for the generated note. -
The
note_localeandnote_templatefields have been removed from the request bodies of the following endpoints:- Server/User API:
edit-note-with-instructions,generate-normalized-data,generate-patient-instructionsThese fields are replaced bylocaleandtemplatein thenotewhen making requests to these endpoints.
- Server/User API:
-
Changes to the response body of
/generate-normalized-data:- The
is_hccandis_mccfields withinconditionshave been moved into the nestedcodingobject. - A new
alternative_codingfield has been added toconditions. This field is an array of ICD-10 codes that are closely related to the primary coding and represent plausible alternative coding for the condition.
- The
2025-11-14β
- New optional fields in object
structured_contextfor all note generation endpoints:patient_demographics: Demographic information about the patient.draft_assessment_and_plan: Starting text for generating the Assessment & Plan section.
- New optional
structured_contextfield for the/edit-note-with-instructionsendpoint. - Renaming for clarity and consistency:
- Rename
patient_contexttounstructured_contextin note generation and edit-note-with-instructions endpoints. - Rename
previous_notetocurrent_notein note generation endpoints. - Rename
active_encounter_diagnoses_codingtoencounter_diagnoses_codingin:structured_contextobject in both 'generate-note' and 'edit-note-with-instructions' endpoints.- normalization (
/generate-normalized-data).
- Rename
- Patched on January 7th: Fixed an issue where the
current_notefield was not taken into account during asynchronous note generation.
2025-08-05β
- Add a new optional input field for all note generation endpoints:
structured_context: Structured context about the patient and the encounter, which will be taken into account when generating the note. Currently only includes:active_encounter_diagnoses_coding: The ICD-10 coding for the patient's active encounter diagnoses. If the template used for the note generation contains anASSESSMENT_AND_PLANsection, these diagnoses will be used for the "by problem" structuration of this section if they are discussed during the encounter.
- Added a new
active_encounter_diagnoses_codingparameter to/generate-normalized-data. If related diagnoses are found in the input note, the call will return in priority the codes passed.
2025-07-24β
- Remove
suggested_dot_phrasesfrom response of/generate-notein Server API as it has always been null (Dot Phrases are only applicable for User API). - Add new CRUD endpoints to manage Dictation Text Replacements for a user.
- Extend support for per-section customization options to note generation in French. This change applies to all prior versions too.
- Add new optional
text_field_contextproperty to dictation WS config to improve dictation quality by providing initial text context.
2025-05-21β
- Add new boolean fields
is_hccandis_mccto the FHIR condition objects returned by the/generate-normalized-dataendpoint.
2025-05-07β
- Change the dictate WebSocket protocol.
The WebSocket dictation protocol evolves to a faster and simpler model, where small units of text βsuch as individual words, short phrases, or punctuation marksβ are sent once and donβt require any further updates.
Clients are expected to append each received unit in order, without inserting spaces or applying any formatting.
This change introduces the following breaking changes.
- Evolution of configuration options in
CONFIGframe.- The
dictate_punctuationfield has been renamed topunctuation_modeand is now an enum, with currently one possible value:EXPLICIT. - The
speech_localefield has been renamed todictate_localeand is reduced to the five following locales:ENGLISH_US,ENGLISH_UK,SPANISH_ES,SPANISH_MXandFRENCH_FR. - The
enable_audio_chunk_ackoption has been removed, since audio acknowledgement is now always activated.
- The
- Simplification and renaming of
DICTATION_ITEMframe:- The
DICTATION_ITEMframe type has been renamed toDICTATED_TEXT. - It has been simplified and now contains only a string
textproperty. - Fields
id,is_final,start_offset_msandend_offset_msproperties have been removed since dictated texts are now necessarily final and are returned in chronological order.
- The
- Evolution of configuration options in
- Add new
code,nameandtrace_idfields in WebSockets error frame JSON body. Also, themessagefield formatting changed (reminder: do not rely on this formatted string but only on the numericcode).
2025-05-05β
- Add new
corresponding_note_problemin the conditions returned by/generate-normalized-dataendpoint. Use theinclude_corresponding_note_problemsflag in the input body to enable this feature.
2025-04-03β
- Enforce a limit of 700 on the length of the custom instructions per section for note generation endpoints
- Add new User API endpoints to allow users to configure and persist their note generation preferences:
GET /note-settingsβ Retrieve the userβs current locale and template. Default values:note_locale = ENGLISH_US,note_template = GENERIC_MULTIPLE_SECTIONS.PATCH /note-settingsβ Update the userβs current locale and template.GET /note-settings/note-sections-customization/:note_templateβ Retrieve the default per-section customization options for a specific template.PATCH /note-settings/note-sections-customization/:note_templateβ Update the default per-section customization options for a specific template.
- Change in User API
/generate-noteand/generate-note-asyncendpoints:- The following fields have been removed from the request body:
note_localenote_templatenote_sections_customization
- These endpoints will now automatically apply the settings stored in the userβs note settings and per-section customization.
- The following fields have been removed from the request body:
- Change in User API
/edit-note-with-instructionsendpoint:- The optional field
note_sections_customizationhas been removed. - The endpoint will now automatically apply the settings stored in the userβs per-section customization, for the locale and note template provided as endpoint parameters.
- The optional field
2025-02-25β
- Bilingual support has been added to transcription endpoints and Websocket.
- In request bodies and WS config frame,
speech_localeproperty has been removed and replaced by newspeech_localesproperty, an array that can contain one or two distinct speech locales.
- In request bodies and WS config frame,