API Reference

Complete API surface for the Lab Forms module — config, presets, CRUD, runtime data capture, history, consent, MIS export, and print endpoints

👤 Ritu Kataria📅 Updated: Mar 13, 2026🏷️ feature

API Reference

All endpoints are prefixed with api-v3/account/.


Form Config (Admin Setup)

Base path: api-v3/account/lab/form/<form_type>/

MethodPathViewDescription
GETconfigsFetchLabFormConfigViewList all configs for lab & form type
GET<config_id>FetchLabFormConfigViewGet single config with subprocesses, questions, attributes
DELETEconfigsFetchLabFormConfigViewInvalidate config cache
POSTconfig/newLabFormConfigViewCreate new form config (process + subprocesses + questions)
PUTconfig/<config_id>/updateLabFormConfigViewUpdate form config
PATCHconfig/<config_id>/enableEnableDisableLabFormConfigEnable config
PATCHconfig/<config_id>/disableEnableDisableLabFormConfigDisable config
POSTlinked-instances/bulkProcessLinkedInstancesViewBulk link processes to instances

Presets (Global Templates)

Base path: api-v3/account/lab/form/<form_type>/

MethodPathViewDescription
GETpresetsLabFormPresetViewList all presets
GETpreset/<config_id>LabFormPresetViewGet single preset
POSTpreset/newLabFormPresetViewCreate preset (restricted to allowed emails)
PUTpreset/<config_id>/updateLabFormPresetViewUpdate preset
PATCHpreset/<config_id>/enableLabFormPresetViewEnable preset
PATCHpreset/<config_id>/disableLabFormPresetViewDisable preset
DELETEpresetsLabFormPresetViewInvalidate preset cache

Granular CRUD (Process / SubProcess / Question)

Base path: api-v3/account/<form_type>/

MethodPathDescription
GET/POSTprocesses / processes/bulkFetch / Bulk create processes
GET/POSTsubprocesses / subprocesses/bulkFetch / Bulk create subprocesses
GET/POSTquestions / questions/bulkFetch / Bulk create questions
POST/PUTprocess/new / process/<id>/updateCreate / Update single process
PATCHprocess/<id>/enable / process/<id>/disableEnable / Disable process
POSTprocess/subprocess/bulk-linkBulk link subprocesses to process
PUTprocess/<id>/subprocess/link / process/<id>/subprocess/unlinkLink / Unlink subprocess
POST/PUTquestion/new / question/<id>/updateCreate / Update single question
PATCHquestion/<id>/enable / question/<id>/disableEnable / Disable question
POST/PUTsubprocess/new / subprocess/<id>/updateCreate / Update single subprocess

Question Values (Runtime Data Capture)

Base path: api-v3/account/<form_type>/

MethodPathDescription
POSTquestions/values/bulkBulk create question values (main sync endpoint)
POSTquestions/values/bulk/guestGuest (unauthenticated) bulk create
PUT<bill_id>/questions/values/bulk/updateBulk update question values (aoe only)
POSTquestions/values/sync/failureLog failed sync values to Elasticsearch
GET<lab_id>/<bill_id>/question/valuesFetch question values for a bill

Renderer Config

Base path: api-v3/account/<form_type>/

MethodPathDescription
GETrenderer/configFetch form renderer configuration for the UI
GETpreset/renderer/configFetch preset renderer configuration
GETrenderer/values/defaultFetch default/prefilled values

Lab Form History & Details

Base path: api-v3/account/lab/form/<form_type>/

MethodPathDescription
GEThistory/List lab forms within date range
GEThistory/<lab_form_id>Get lab form details with question values
GEThistory/attachments/<lab_form_id>Get attachments with download URLs
GETbill/<bill_id>/responsesGet form responses for a specific bill

Base path: api-v3/account/patient-consent/

MethodPathDescription
GET<bill_id>Get consent for a bill
POST<bill_id>/newCreate new patient consent
PUT<form_id>/link-processLink additional consent processes
PUT<form_id>/unlink-processUnlink consent processes
POST<form_id>/attachmentAdd attachments
POST<action>/notification/<form_id>Send email notification
POST<lab_form_id>/revokeRevoke consent
POST<bill_id>/add-testAdd consent for newly added tests

MIS (Data Export)

Base path: api-v3/account/lab/form/<form_type>/

MethodPathDescription
GETvaluesExport question values for a date range (max 1 month)

Base path: api-v3/account/

MethodPathDescription
GETpatient-consent/<form_id>/printRender consent as HTML
GETpatient-consent/<form_id>/print/pdfRender consent as PDF

Additional Patient Info (Patient-Facing)

Base path: api-v3/patient/additional-patient-info/

MethodPathViewDescription
GET<patient_id>FetchAdditionalPatientInfoViewFetch raw question values as {process_id: {question_id: value}}
POST<patient_id>/bulk-createBulkCreateUdateAdditionalPatientInfoViewBulk create answers for a patient
PUT<patient_id>/bulk-updateBulkCreateUdateAdditionalPatientInfoViewBulk update (or create new) answers
GET<lab_id>/<patient_id>FetchAdditionalPatientInfoDetailsViewFetch detailed info with form structure, question attributes, pre-signed URLs (CSRF exempt)

Additional Patient Info Settings (Admin)

Base path: api-v3/account/additional-patient-info/

MethodPathViewDescription
GETsettingsFetchAdditionalPatientInfoSettingsViewFetch all settings for the lab (grouped by page)
GET<page>/settingsFetchAdditionalPatientInfoSettingsViewFetch settings for a specific page
POSTsettings/bulk-createBulkCreateAdditionalPatientInfoSettingsViewBulk create settings for multiple pages
POST<page>/settings/bulk-createBulkCreateAdditionalPatientInfoSettingsViewBulk create settings for a specific page
PATCH<page>/settings/<process_id>/enableUpdateAdditionalPatientInfoSettingsViewEnable a setting
PATCH<page>/settings/<process_id>/disableUpdateAdditionalPatientInfoSettingsViewDisable a setting
PATCH<page>/settings/<process_id>/set-defaultUpdateAdditionalPatientInfoSettingsViewSet a process as default for a page

On this page