Reference

API v1

Base path /api/public/v1. Versioned from the start — a future v2 will live alongside v1 rather than replacing it.

Live endpoints

Served today. Each requires the listed scope unless marked public.

EndpointScopeDescription
GET /healthpublicService status and API version.
GET /clinical/encountersclinical.readList encounters created by the calling application.
POST /clinical/encountersclinical.writeCreate an encounter using opaque partner-side references only.
GET /clinical/notesclinical.readList SOAP notes for the application's own encounters.
GET /clinical/notes/{id}clinical.readRetrieve one SOAP note by encounter id.
GET /clinical/notes/{id}/fhirclinical.readExport a clinician-approved note as a FHIR R4 collection Bundle.
GET /clinical/notes/{id}/hl7clinical.readExport a clinician-approved note as an HL7 v2.5.1 ORU R01 message.
POST /transcriptiontranscription.createSubmit encounter audio for transcription and SOAP drafting.
POST /soaptranscription.createOne-call SOAP intake: submit a transcript or encounter audio and receive the note, ICD-10 candidates, WHO/IMCI triage and NHIS billing items.
GET /academy/coursesacademy.readPublic Academy course catalogue.
GET /academy/courses/{slug}academy.readOne Academy course with its module outline.
GET /global-health/signalsglobal_health.readAggregated, de-identified syndromic signal counts.
GET /global-health/surveillancesurveillance.readAggregated surveillance series.
GET /early-warning/signalsearly_warning.readAggregated early-warning status and trends.
GET /academy/certificates/{certificateId}academy.readVerify an Academy credential.
GET /billing/subscriptionbilling.readThe calling organisation's subscription state.
POST /stream/sessionstranscription.streamOpen a live transcription session for an encounter.
POST /stream/sessions/{sessionId}/chunkstranscription.streamSend one numbered audio chunk; returns its text and the running transcript.
GET /stream/sessions/{sessionId}transcription.streamRunning transcript and any missing chunk numbers.
POST /stream/sessions/{sessionId}/finalizetranscription.streamClose the session and queue note drafting.
GET /codes/icd10codes.readSearch ICD-10-CM codes by description.
GET /specialtiesconsultations:readList specialty documentation engines (behavioral health, refugee health, PT/OT and core specialties).

Planned endpoints

Documented contracts with no data source yet. They authenticate and check scopes, then return 501 with status: planned. Do not build against their response bodies.

EndpointScopeWhy it is not live

Examples

GET /clinical/encounters
{
  "data": [
    {
      "id": "b0f1…",
      "external_encounter_id": "clinic-4821",
      "status": "note_ready",
      "encounter_type": "consultation",
      "created_at": "2026-09-21T09:14:22Z"
    }
  ],
  "pagination": { "limit": 25, "offset": 0, "count": 1, "total": 1, "has_more": false }
}
POST /clinical/encounters
curl -X POST https://gelypticmd.com/api/public/v1/clinical/encounters \
  -H "Authorization: Bearer $GELYPTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"external_encounter_id":"clinic-4821","encounter_type":"consultation"}'
FHIR R4 approved-note export
curl https://gelypticmd.com/api/public/v1/clinical/notes/{id}/fhir \
  -H "Authorization: Bearer $GELYPTIC_API_KEY" \
  -H "Accept: application/fhir+json"
HL7 v2.5.1 approved-note export
curl https://gelypticmd.com/api/public/v1/clinical/notes/{id}/hl7 \
  -H "Authorization: Bearer $GELYPTIC_API_KEY" \
  -H "Accept: application/hl7-v2" \
  --output note.hl7

Creating an encounter is idempotent on external_encounter_id — retrying a failed request returns the existing record instead of duplicating it.

Interoperability exports are available only after clinician approval and contain opaque partner identifiers. The API generates standards-based payloads; it does not write directly to a hospital system or HL7 listener.

Scopes

clinical.read
Read encounters and SOAP notes the application itself created.
clinical.write
Create and update encounters owned by the application.
transcription.create
Submit audio for transcription and SOAP drafting.
transcription.stream
Open live transcription sessions and send audio chunks while the visit runs.
codes.read
Search the ICD-10-CM reference list.
global_health.read
Read aggregated, de-identified global health indicators. Never clinical records.
surveillance.read
Read aggregated syndromic surveillance summaries.
early_warning.read
Read aggregated early-warning status and trends.
academy.read
Read the public Academy course catalogue.
billing.read
Read the calling organisation's own subscription state.
consultations:create
Create consultation records owned by the application.
consultations:read
Read consultation metadata owned by the application.
consultations:update
Update consultation records owned by the application.
audio:upload
Upload consultation audio for transcription.
transcripts:read
Read transcripts for the application's own consultations.
soap_notes:read
Read SOAP drafts and approved notes for the application's own consultations.
clinical_summaries:read
Read generated clinical summaries for the application's own consultations.
quality_reviews:read
Read automated quality-review results.
patient_summaries:read
Read de-identified patient-facing summaries the application generated.
coding_suggestions:read
Read suggested billing codes for the application's own consultations.
webhooks:manage
Register and remove webhook endpoints for the application.

Machine-readable contract

OpenAPI 3.1
/api/public/v1/openapi.json

Generated from the same endpoint catalogue this page renders, so the specification cannot describe an endpoint that does not exist.