Developer platform 路 API v1

Build with the FastClinic API.

Explore the live synthetic demo through a typed, versioned API with public reads and token-gated operations.

Public preview access. Synthetic clinical and aggregate GET endpoints require no authentication. Operational reads and all writes require FASTSME_API_TOKEN; they return 503 when it is not configured. Enabled clients send Authorization: Bearer <token>.

Complete API surface

Clinical records

Patients, parties, guardians and payers, consultations, diagnoses, treatments, and validated note editing.

GETPOSTPATCHDELETE
/api/v1/patientsPatient CRUD; DELETE archivesPublic read 路 token write
GETPOSTPATCHDELETE
/api/v1/partiesParty CRUD; linked parties cannot be deletedPublic read 路 token write
GETPOSTPATCHDELETE
/api/v1/relationshipsGuardian, self, payer, family, and emergency rolesPublic read 路 token write
GET
/api/v1/consultations 路 /diagnoses 路 /treatmentsImported clinical activityPublic synthetic read
GETPOSTPATCHDELETE
/api/v1/notesValidated note lifecycle; DELETE archivesPublic read 路 token write

Scheduling

Availability, clinicians, conflict-safe booking, rescheduling, status transitions, and cancellation.

GET
/api/v1/clinicians 路 /availabilityBookable clinician schedulesPublic read
GETPOSTPATCHDELETE
/api/v1/appointmentsConflict-safe appointment lifecyclePublic read 路 token write
GETPOST
/api/v1/external/*FastBooking availability and idempotent reservationsFastBooking token

Mobile patient app

MedBackend OAuth/PKCE identity, own-record bootstrap, conversational booking, and appointment lifecycle.

GET
/api/v1/mobile/me 路 /bootstrapAuthenticated profile and app startup dataMedBackend OAuth token
GET
/api/v1/mobile/availabilityPatient-safe live availabilityMedBackend OAuth token
GETPOST
/api/v1/mobile/appointmentsOwn appointments and deterministic bookingMedBackend OAuth token
POST
/api/v1/mobile/booking/chatLangGraph booking conversationMedBackend OAuth token
GET
/api/v1/mobile/recordsOwn FHIR R4 records in JSON or XMLMedBackend OAuth token

Activation & communications

Consent-filtered recall lists, persistent reminders, immutable delivery logs, and outcome attribution.

GET
/api/v1/activation/due 路 /lapsed 路 /followupConsent-filtered activation cohortsToken required
GETPOSTPATCHDELETE
/api/v1/remindersReminder lifecycle; DELETE cancelsToken required
GETPOST
/api/v1/communicationsConsent-gated SMS/email and immutable logsToken required
GETPATCH
/api/v1/parties/{id}/marketing-consentMarketing opt-out stateToken required

Billing & ledger

Idempotent invoicing, payments and refunds, voids through reversing journals, and balanced-ledger reporting.

GETPOSTPATCHDELETE
/api/v1/invoicesInvoice lifecycle; DELETE posts a void reversalToken required
GETPOSTDELETE
/api/v1/paymentsIdempotent receipts; DELETE posts a refundToken required
GET
/api/v1/ledger 路 /trial-balanceImmutable journal and balancesToken required

Analytics & audit

The same operational views used by the dashboards, plus an append-only API mutation trail.

GET
/api/v1/analytics/*Overview, revenue, specialties, procedures, demographics, and cliniciansPublic synthetic read
GET
/api/v1/auditAppend-only API mutation recordsToken required
GET
/api/v1/healthVersion and write-readiness statusPublic read

FHIR R4 & country adapters

Vanilla R4 plus fail-closed UK, Lithuanian and Estonian national adapter sandboxes.

GET
/api/v1/fhir/metadataCapabilityStatementPublic read
GET
/api/v1/fhir/{type}/{id}Single resource readPublic clinical 路 token for ops
GET
/api/v1/fhir/Patient/{id}/$everythingSubject bundlePublic clinical 路 token adds ops
POST
/api/v1/fhir/$validateStructural validationPublic
POST
/api/v1/fhir/$importMap a resource onto the coreToken required
GETPOST
/api/v1/adapters/GB/*NHS Number, UK Core export, STU3, remindersPublic map 路 token for ops
GETPOST
/api/v1/adapters/LT/*ESPBI, IPR and eLab R5 synthetic sandboxPublic fixture 路 token submit
GETPOST
/api/v1/adapters/EE/*TIS CDA, MPI R5 and X-Road synthetic sandboxPublic fixture 路 token submit

Clinical workspace

Writable encounters, SOAP notes, diagnostic/medication orders, tasks, coverage, and in-app messages.

GETPOST
/api/v1/chart/encountersOpen a chart encounterToken required
POST
/api/v1/chart/encounters/{id}/finishFinish an encounterToken required
GETPOST
/api/v1/chart/notesSOAP notesToken required
GETPOSTPATCH
/api/v1/ordersLab, imaging, referral, medication ordersToken required
GETPOSTPATCH
/api/v1/care-tasksCare-coordination tasksToken required
GETPOST
/api/v1/coverageInsurance / payor coverageToken required
GETPOST
/api/v1/messagesIn-clinic message threadsToken required

Clinical read resources

Patients

Synthetic patient demographic and registration records. DELETE archives rather than erases a clinical subject.

GET /api/v1/patientsGET /api/v1/patients/{id}

Parties

Contactable or billable parties, separated from subjects of care for guardianship, consent, and payer attribution.

GET /api/v1/partiesGET /api/v1/parties/{id}

Consultations

Synthetic consultation activity and revenue. Derived/imported records are read-only.

GET /api/v1/consultationsGET /api/v1/consultations/{id}

Treatments

Billable treatment lines classified by category and specialty. Derived/imported records are read-only.

GET /api/v1/treatmentsGET /api/v1/treatments/{id}

Diagnoses

Synthetic diagnosis records linked to consultations. Imported clinical facts are read-only.

GET /api/v1/diagnosesGET /api/v1/diagnoses/{id}

Clinical notes

Synthetic clinical notes. Writes use dedicated validation and archive rather than hard delete.

GET /api/v1/notesGET /api/v1/notes/{id}

Quick start

# Public synthetic read
curl "https://fastclinic.dev/api/v1/patients?limit=20"

# Token-authenticated, idempotent payment
curl -X POST "https://fastclinic.dev/api/v1/payments" \
  -H "Authorization: Bearer $FASTSME_API_TOKEN" \
  -H "Idempotency-Key: payment-your-stable-id" \
  -H "Content-Type: application/json" \
  -d '{"invoice_id": 7001, "amount": 25.00, "method": "card"}'

DELETE is domain-aware: patients and notes are archived, appointments and reminders are cancelled, invoices are voided with reversing journals, and payments are refunded. Communication and ledger records remain immutable.

Runtime OpenAPI: /api/openapi.json 路 Stable compatibility schema: /swagger.json 路 Interactive docs: /api/docs