Documentation
Complete endpoint documentation for every Cari service.
PASETO v4 token authentication and standard response envelope.
Base URL: https://api.cari.care Authorization: Bearer <paseto_token> Content-Type: application/json
All endpoints require authentication unless marked as Public. Obtain a token via POST /api/auth/login and include it in the Authorization header.
// Success (single resource)
{ "success": true, "data": { ... } }
// Success (paginated list)
{ "success": true, "data": [...], "meta": { "page": 1, "limit": 20, "total": 100 } }
// Error
{ "success": false, "error": { "code": "NOT_FOUND", "message": "Resource not found" } }All paginated list endpoints accept page and limit query parameters. The response meta object includes total count for client-side pagination.
User registration, authentication, token management, and multi-factor authentication.
/api/auth/registerPublicRegister a new user
/api/auth/loginPublicAuthenticate and receive tokens
/api/auth/refreshPublicRefresh an expired access token
/api/auth/logoutInvalidate current session
/api/auth/mePublicGet current authenticated user
/api/auth/verify-emailPublicVerify email address
/api/auth/forgot-passwordPublicRequest password reset email
/api/auth/reset-passwordPublicReset password with token
/api/auth/social-loginPublicOAuth social login
/api/auth/referral/:codePublicLook up referral code info
/api/auth/mfa/enrollEnroll in TOTP-based MFA
/api/auth/mfa/verifyVerify MFA enrollment with TOTP code
/api/auth/mfa/challengeSubmit MFA challenge during login
/api/auth/mfa/disableDisable MFA for current user
/api/admin/usersList all users (Super Admin)
/api/admin/users/:id/statusUpdate user status (Super Admin)
/api/admin/healthSystem health check (Super Admin)
POST /api/auth/login
Content-Type: application/json
{
"email": "doctor@hospital.org",
"password": "SecureP@ss123"
}
// 200 OK
{
"success": true,
"data": {
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "doctor@hospital.org",
"first_name": "Sarah",
"last_name": "Chen",
"registration_role": "DOCTOR"
},
"token": "v4.public.eyJ..."
}
}Patient profiles, clinical data, lab results, immunizations, prescriptions, consent management, and GDPR compliance.
/api/patientsCreate a patient profile
/api/patients/meGet current patient's profile
/api/patients/:idGet a patient by ID
/api/patients/:idUpdate a patient profile
/api/organizations/:org_id/patientsList patients in an organization
/api/organizations/:org_id/patientsRegister a patient for an organization
/api/organizations/:org_id/patients/:patient_idGet patient detail within org context
/api/organizations/:org_id/patients/searchSearch patients by MRN
/api/patients/:id/clinical-recordsList clinical records
/api/clinical-recordsCreate a clinical record
/api/clinical-records/:idGet a clinical record
/api/clinical-records/:idUpdate a clinical record
/api/clinical-records/:idDelete a clinical record
/api/clinical-records/:id/auditGet audit trail for a record
/api/vitalsList vitals
/api/vitalsRecord a vital sign
/api/vitals/:idGet a vital record
/api/vitals/:idUpdate a vital record
/api/vitals/:idDelete a vital record
/api/patients/:id/lab-resultsList lab results for a patient
/api/lab-results/:id/reviewReview/approve a lab result
/api/lab/hl7-ingestIngest an HL7v2 lab message
/api/labsList lab orders
/api/labsCreate a lab order
/api/labs/:idGet a lab order
/api/labs/:idUpdate a lab order
/api/labs/:id/cancelCancel a lab order
/api/prescriptionsList prescriptions
/api/prescriptionsCreate a prescription
/api/prescriptions/:idGet a prescription
/api/prescriptions/:id/signSign a prescription
/api/prescriptions/:id/cancelCancel a prescription
/api/eprescriptionsCreate an e-prescription
/api/patients/:id/eprescriptionsList patient e-prescriptions
/api/eprescriptions/:id/transmitTransmit to pharmacy
/api/eprescriptions/:id/dispenseMark as dispensed
/api/eprescriptions/:id/refillRequest refill
/api/patients/:id/immunizationsGet immunization schedule
/api/patients/:id/immunizations/generateGenerate age-appropriate schedule
/api/patients/:id/immunizations/administerRecord a vaccine dose
/api/patients/:id/immunizations/missedList missed vaccinations
/api/patients/:id/immunizations/aefiReport adverse event following immunization
/api/observationsList observations (FHIR Observation-like)
/api/observationsCreate an observation
/api/observations/:idGet an observation
/api/observations/:idUpdate an observation
/api/observations/:idDelete an observation
/api/imagingList imaging orders
/api/imagingCreate an imaging order
/api/imaging/:idGet an imaging order
/api/imaging/:id/cancelCancel an imaging order
/api/patients/:id/allergiesList patient allergies
/api/patients/:id/allergiesRecord an allergy
/api/patients/:id/journeyGet patient care journey timeline
/api/patients/:id/journeyRecord a journey event
/api/consentList my consents
/api/consent/grantGrant consent
/api/consent/requestRequest consent from a patient
/api/consent/:idGet a consent record
/api/consent/:id/approveApprove a consent request
/api/consent/:id/revokeRevoke consent
/api/patients/:id/erasure-requestRequest data erasure (Art. 17)
/api/patients/:id/dsrList data subject requests
/api/patients/:id/exportExport patient data (Art. 20 portability)
POST /api/patients
Authorization: Bearer v4.public.eyJ...
Content-Type: application/json
{
"first_name": "Amara",
"last_name": "Okafor",
"date_of_birth": "1990-03-15",
"gender": "female",
"phone": "+234801234567",
"email": "amara@example.com"
}
// 201 Created
{
"success": true,
"data": {
"id": "a1b2c3d4-...",
"first_name": "Amara",
"last_name": "Okafor",
...
}
}Doctor profiles, verification workflow, clinical records management, and scheduling.
/api/doctors/searchPublicSearch doctors
/api/doctors/:idPublicGet doctor profile
/api/doctors/meGet my doctor profile
/api/doctorsCreate a doctor profile
/api/doctors/:idUpdate a doctor profile
/api/doctors/:id/availabilityPublicGet availability summary
/api/doctors/pendingList pending doctor verifications
/api/doctors/:id/verifyApprove or reject a doctor
/api/doctors/:id/organizationsJoin an organization
/api/doctors/:id/organizations/:org_idLeave an organization
/api/organizations/:org_id/doctorsList doctors in org
/api/clinical-recordsList my clinical records
/api/clinical-recordsCreate a clinical record
/api/patients/:patient_id/clinical-recordsList records for a patient
/api/service-requestsList service requests (lab/imaging orders)
/api/service-requestsCreate a service request
/api/service-requests/:id/statusUpdate status
/api/diagnostic-reportsList diagnostic reports
/api/diagnostic-reportsCreate a diagnostic report
/api/diagnostic-reports/:id/signSign/finalize a report
/api/imaging-studiesList imaging studies
/api/imaging-studiesCreate an imaging study
/api/imaging-studies/:id/statusUpdate study status
Healthcare facility management, team members, rooms, admissions, finance, and messaging.
/api/organizationsList organizations
/api/organizationsCreate an organization
/api/organizations/meGet my organizations
/api/organizations/:idGet organization details
/api/organizations/:idUpdate an organization
/api/organizations/:id/statusUpdate org status
/api/organizations/:org_id/membersList members
/api/organizations/:org_id/members/:user_id/roleUpdate member role
/api/organizations/:org_id/members/:user_idRemove member
/api/organizations/:org_id/invitationsList invitations
/api/organizations/:org_id/invitationsSend invitation
/api/organizations/:org_id/invitations/:idRevoke invitation
/api/organizations/invitations/acceptAccept an invitation
/api/organizations/:org_id/roomsList rooms
/api/organizations/:org_id/roomsCreate a room
/api/organizations/:org_id/admissionsList admissions
/api/organizations/:org_id/admissionsAdmit a patient
/api/organizations/:org_id/admissions/:id/dischargeDischarge
/api/organizations/:org_id/admissions/:id/transferTransfer
/api/organizations/:org_id/invoicesList invoices
/api/organizations/:org_id/invoicesCreate invoice
/api/organizations/:org_id/paymentsList payments
/api/organizations/:org_id/paymentsRecord payment
/api/organizations/:org_id/claimsList insurance claims
/api/organizations/:org_id/claimsSubmit claim
/api/organizations/:org_id/conversationsList conversations
/api/organizations/:org_id/conversationsCreate conversation
/api/organizations/:org_id/conversations/:id/messagesList messages
/api/organizations/:org_id/conversations/:id/messagesSend message
/api/attendance/clock-inClock in
/api/attendance/clock-outClock out
/api/attendance/todayToday's attendance
/api/leave-requestsCreate leave request
/api/organizations/:org_id/leave-requests/:id/approveApprove leave
/api/developer/keysList API keys
/api/developer/keysCreate API key
/api/developer/keys/:idRevoke API key
/api/developer/keys/:id/rotateRotate API key
Resource management, schedule configuration, appointment booking, and telemedicine.
/api/resourcesList schedulable resources (doctors, rooms, equipment)
/api/resourcesCreate a resource
/api/resources/:idGet a resource
/api/resources/:idUpdate a resource
/api/resources/:idDelete a resource
/api/resources/:resource_id/schedulesList schedules for a resource
/api/schedulesCreate a schedule
/api/schedules/:idGet a schedule
/api/schedules/:idUpdate a schedule
/api/schedules/:idDelete a schedule
/api/appointmentsList appointments
/api/appointmentsPublicBook an appointment
/api/appointments/availabilityCheck availability
/api/appointments/:idGet appointment details
/api/appointments/:id/statusUpdate appointment status
/api/appointments/:id/rescheduleReschedule
/api/appointments/:id/cancelCancel
/api/appointments/kanbanKanban board view
/api/appointment-requestsList pending requests
/api/appointment-requestsCreate a request
/api/appointment-requests/:id/approveApprove
/api/appointment-requests/:id/rejectReject
/api/appointments/:id/telemedicine/initiateStart a video session
/api/appointments/:id/telemedicine/status/:session_idGet session status
/api/appointments/:id/telemedicine/end/:session_idEnd session
/api/appointments/:id/telemedicine/:session_id/participantsList participants
POST /api/appointments
Content-Type: application/json
{
"resource_id": "doctor-resource-uuid",
"patient_name": "Amara Okafor",
"patient_email": "amara@example.com",
"patient_phone": "+234801234567",
"start_time": "2026-04-25T09:00:00Z",
"end_time": "2026-04-25T09:30:00Z",
"reason": "Annual checkup"
}
// 201 Created
{
"success": true,
"data": {
"id": "appt-uuid",
"status": "booked",
...
}
}Clinical session recordings, AI-powered transcription, structured data extraction, clinical notes, and audit trails.
/api/sessions/recordingsList my recordings
/api/sessions/recordingsStart a recording
/api/sessions/recordings/:idGet a recording
/api/sessions/recordings/:id/audioUpload audio
/api/sessions/recordings/:id/readyMark recording ready
/api/sessions/transcriptsStart AI transcription
/api/sessions/transcripts/:idSubmit transcript
/api/sessions/extractionsStart structured data extraction
/api/sessions/extractions/:idGet extraction result
/api/sessions/extractions/:id/commitCommit extraction to patient record
/api/clinical/notesCreate a clinical note
/api/clinical/notes/:idGet a clinical note
/api/clinical/notes/:idUpdate a clinical note
/api/clinical/notes/:id/signSign/finalize a note
/api/clinical/notes/patient/:patient_idList patient notes
/api/sessions/action-itemsList action items
/api/sessions/action-itemsCreate action items
/api/sessions/action-items/:idGet an action item
/api/sessions/action-items/:idUpdate an action item
/api/sessions/action-items/:idCancel an action item
/api/clinical/dictationStart dictation session
/api/clinical/dictation/:id/segmentsAdd audio segment
/api/clinical/dictation/:id/mergeMerge dictation into clinical note
/api/clinical/auditLog an audit event
/api/clinical/audit/:idGet audit event
/api/clinical/audit/resource/:resource_type/:resource_idResource audit trail
/api/clinical/audit/user/:user_idUser audit trail
/api/clinical/audit/searchSearch audit events
Drug interactions, AI-powered diagnostics, risk scoring, early warning systems, and public health reporting.
/api/cds/drug-interactions/checkCheck for drug-drug interactions
/api/cds/drug-interactionsUpsert interaction data (Admin)
/api/ai/diagnosisAI differential diagnosis
/api/ai/lab-interpretationAI lab result interpretation
/api/ai/risk-stratificationPatient risk stratification
/api/ai/cancer-detectionAI cancer detection analysis
/api/ai/cloud-inferenceGeneral AI inference
/api/cds/early-warning-scoreCalculate Early Warning Score (EWS)
/api/cds/panic-values/checkCheck for panic/critical lab values
/api/cds/adverse-eventsList adverse events
/api/cds/adverse-eventsReport an adverse event
/api/cds/patient-riskGet patient risk assessment
/cds-servicesPublicCDS Hooks service discovery
/cds-hooks/:hook_idInvoke a CDS Hook
/api/public-health/dashboardPublic health dashboard (Admin)
/api/public-health/casesReport a notifiable case
/api/public-health/dhis2-exportExport data for DHIS2
/api/public-health/dhis2-pushPush data to DHIS2
/api/surveillance/syndromesList monitored syndromes
/api/surveillance/alertsList surveillance alerts
/api/surveillance/export/dhis2Export surveillance to DHIS2
/api/ai/modelsList registered AI models
/api/ai/modelsRegister a model
/api/ai/model-infoPublicGet model metadata
/api/ai/devicesList device model deployments
/api/ai/devices/registerRegister device model
/api/ai/devices/:device_id/heartbeatDevice heartbeat
POST /api/cds/drug-interactions/check
Authorization: Bearer v4.public.eyJ...
Content-Type: application/json
{
"medications": [
{ "name": "Warfarin", "rxcui": "11289" },
{ "name": "Aspirin", "rxcui": "1191" }
]
}
// 200 OK
{
"success": true,
"data": {
"interactions": [
{
"severity": "high",
"description": "Concurrent use increases bleeding risk",
"drugs": ["Warfarin", "Aspirin"],
"recommendation": "Monitor INR closely; consider alternative antiplatelet"
}
]
}
}Patient identity matching, linking, and deduplication across organizations.
MPI access is restricted to platform administrators (SUPER:ADMIN, APP:ADMIN).
/api/mpi/matchFind matching patients by demographics
/api/mpi/patients/:id/fhirGet FHIR Patient resource for a patient
/api/mpi/links/:patient_idList linked patient records
/api/mpi/linksCreate a patient link
/api/mpi/candidatesList pending match candidates for review
/api/mpi/links/:id/reviewReview and approve/reject a match
/api/mpi/matchesList all matches
/api/mpi/matches/:idGet a specific match
/api/mpi/matches/:id/unlinkUnlink a patient match
/api/mpi/linkLink two patients
Insurance claims, invoicing, eligibility verification, pre-authorization, fraud detection, and insurance marketplace.
/api/rcm/claimsList claims
/api/rcm/claimsCreate a claim
/api/rcm/claims/:idGet claim details
/api/rcm/claims/:idUpdate a claim
/api/rcm/claims/:id/submitSubmit claim to insurer
/api/rcm/claims/:id/eligibilityCheck patient eligibility
/api/rcm/claims/:id/preauthSubmit pre-authorization
/api/rcm/claims/analytics/by-insurerClaims analytics by insurer
/api/rcm/claims/analytics/by-providerClaims analytics by provider
/api/rcm/claims/fraud-flagsList fraud flags
/api/rcm/claims/reconciliationReconciliation report
/api/rcm/invoicesList RCM invoices
/api/rcm/invoicesCreate an invoice
/api/rcm/invoices/:idGet invoice details
/api/rcm/marketplace/plansList insurance plans
/api/rcm/marketplace/enrollEnroll in a plan
/api/rcm/marketplace/policiesList active policies
Medical supply chain management: product catalog, orders, inventory, suppliers, and purchase orders.
/api/marketplace/productsList products
/api/marketplace/catalog/syncSync product catalog (Admin)
/api/marketplace/ordersCreate an order
/api/marketplace/ordersList patient orders
/api/marketplace/orders/:idGet order details
/api/marketplace/orders/:idCancel an order
/api/marketplace/orders/:id/verifyVerify order
/api/marketplace/orders/:id/transitionTransition order status
/api/marketplace/cart/checkoutCheckout cart
/api/marketplace/inventoryList inventory
/api/marketplace/inventory/syncSync inventory
/api/marketplace/inventory/low-stockLow stock alerts
/api/marketplace/inventory/adjustAdjust stock levels
/api/marketplace/suppliersList suppliers
/api/marketplace/suppliersCreate supplier
/api/marketplace/purchase-ordersList purchase orders
/api/marketplace/purchase-ordersCreate purchase order
/api/marketplace/purchase-orders/:id/approveApprove PO
/api/marketplace/emergency-routingEmergency supply routing
/api/marketplace/reorder-triggerAutomated reorder trigger
Staff rostering, shift scheduling, fairness metrics, swap management, and capacity building.
/api/workforce/membersList workforce members
/api/workforce/membersCreate a member
/api/workforce/shift-typesList shift types
/api/workforce/shift-typesCreate a shift type
/api/workforce/coverage-requirementsList coverage requirements
/api/workforce/rostersList rosters
/api/workforce/rostersCreate a roster
/api/workforce/rosters/:id/generateAuto-generate roster assignments
/api/workforce/rosters/:id/approveApprove a roster
/api/workforce/rosters/:id/publishPublish a roster
/api/workforce/rosters/:id/coverage-gapsFind coverage gaps
/api/workforce/swapsList swap requests
/api/workforce/swapsCreate a swap request
/api/workforce/swaps/:id/acceptAccept a swap
/api/workforce/fairnessOrganization fairness report
/api/workforce/fairness/giniGini coefficient for shift distribution
/api/training/coursesList training courses
/api/training/coursesCreate a course
/api/training/courses/:id/enrollEnroll in a course
/api/training/enrollmentsList enrollments
/api/training/enrollments/:id/progressUpdate progress
/api/training/cme-creditsList CME credits
/api/training/cme-creditsAward CME credit
/api/training/cme-credits/summaryCME credit summary
/api/training/assessmentsList assessments
/api/training/assessmentsCreate an assessment
Treatment protocol definitions and tracking patient treatments.
/api/treatmentsList treatment protocols
/api/treatmentsCreate a treatment protocol
/api/treatments/:idGet treatment details
/api/treatments/:idUpdate a treatment
/api/treatments/:idDelete a treatment
/api/patients/:patient_id/treatmentsList treatments for a patient
/api/patient-treatmentsAssign treatment to patient
/api/patient-treatments/:idUpdate patient treatment
Mobile money payment processing for M-Pesa, MTN MoMo, and Orange Money.
/api/payments/mobile-money/initiateInitiate a mobile money payment
/api/payments/mobile-money/status/:order_idCheck payment status
POST /api/payments/mobile-money/initiate
Authorization: Bearer v4.public.eyJ...
Content-Type: application/json
{
"provider": "mpesa",
"phone": "+254712345678",
"amount": 1500.00,
"currency": "KES",
"order_id": "order-uuid",
"description": "Consultation payment"
}Cross-border patient lookup via national Health Information Exchanges.
/api/fhir/cross-border/Patient/:national_id?country=KECross-border patient lookup via national HIE
/.well-known/smart-configurationPublicSMART on FHIR configuration discovery
/api/smart/launchSMART on FHIR app launch
Supported countries: KE (Kenya), GH (Ghana), NG (Nigeria), ZA (South Africa), TZ (Tanzania), UG (Uganda), RW (Rwanda), ET (Ethiopia).
User feedback collection for authenticated and anonymous users.
/api/feedbackSubmit feedback (authenticated)
/api/feedbackList feedback
/api/feedback/:idGet feedback
/api/feedback/:idUpdate feedback
/api/feedback/anonymousPublicSubmit anonymous feedback