Skip to main content

Clinik Client

The Clinik class is the entry point for all SDK operations. It manages authentication, retries, rate limit metadata, and request serialization.

Constructor

import { Clinik } from '@clinikapi/sdk';

const clinik = new Clinik(apiKey: string, options?: ClinikOptions);

Parameters

ParameterTypeRequiredDescription
apiKeystringYesYour secret API key (clk_live_* or clk_test_*)
optionsClinikOptionsNoConfiguration options

ClinikOptions

FieldTypeDefaultDescription
baseUrlstringhttps://api.clinikapi.comAPI base URL
timeoutnumber30000Request timeout (ms)
retriesnumber2Max retries on 5xx/429

Resource Namespaces

The client exposes 62 resource namespaces, organized by FHIR domain:
// ── Individuals ──────────────────────────────────────────
clinik.patients              // Patient
clinik.practitioners         // Practitioner
clinik.practitionerRoles     // PractitionerRole
clinik.persons               // Person
clinik.familyHistory         // FamilyMemberHistory

// ── Entities ─────────────────────────────────────────────
clinik.organizations         // Organization
clinik.locations             // Location
clinik.healthcareServices    // HealthcareService
clinik.devices               // Device

// ── Clinical — Summary ───────────────────────────────────
clinik.conditions            // Condition
clinik.allergies             // AllergyIntolerance
clinik.assessments           // ClinicalImpression

// ── Clinical — Diagnostics ───────────────────────────────
clinik.observations          // Observation
clinik.labs                  // DiagnosticReport
clinik.specimens             // Specimen
clinik.imagingStudies        // ImagingStudy
clinik.media                 // Media
clinik.riskAssessments       // RiskAssessment

// ── Clinical — Medications ───────────────────────────────
clinik.medications           // Medication
clinik.prescriptions         // MedicationRequest
clinik.medicationDispenses   // MedicationDispense
clinik.medicationStatements  // MedicationStatement
clinik.medicationKnowledge   // MedicationKnowledge
clinik.immunizations         // Immunization
clinik.immunizationEvaluations // ImmunizationEvaluation
clinik.immunizationRecommendations // ImmunizationRecommendation
clinik.nutritionOrders       // NutritionOrder
clinik.visionPrescriptions   // VisionPrescription

// ── Clinical — Care Provision ────────────────────────────
clinik.encounters            // Encounter
clinik.carePlans             // CarePlan
clinik.careTeams             // CareTeam
clinik.goals                 // Goal
clinik.serviceRequests       // ServiceRequest
clinik.deviceRequests        // DeviceRequest
clinik.deviceUseStatements   // DeviceUseStatement
clinik.consents              // Consent

// ── Clinical — Documents and Forms ───────────────────────
clinik.notes                 // DocumentReference
clinik.documents             // Composition
clinik.intakes               // QuestionnaireResponse

// ── Scheduling ───────────────────────────────────────────
clinik.appointments          // Appointment
clinik.appointmentResponses  // AppointmentResponse
clinik.schedules             // Schedule
clinik.slots                 // Slot

// ── Workflow ─────────────────────────────────────────────
clinik.tasks                 // Task
clinik.activityDefinitions   // ActivityDefinition
clinik.planDefinitions       // PlanDefinition

// ── Financial — Billing ──────────────────────────────────
clinik.accounts              // Account
clinik.chargeItems           // ChargeItem
clinik.invoices              // Invoice

// ── Financial — Claims and Reimbursement ─────────────────
clinik.claims                // Claim
clinik.claimResponses        // ClaimResponse
clinik.eobs                  // ExplanationOfBenefit
clinik.paymentNotices        // PaymentNotice
clinik.paymentReconciliations // PaymentReconciliation

// ── Financial — Insurance ────────────────────────────────
clinik.coverages             // Coverage
clinik.eligibilityRequests   // CoverageEligibilityRequest
clinik.eligibilityResponses  // CoverageEligibilityResponse
clinik.enrollmentRequests    // EnrollmentRequest
clinik.enrollmentResponses   // EnrollmentResponse

// ── Quality and Audit ────────────────────────────────────
clinik.measures              // Measure
clinik.measureReports        // MeasureReport
clinik.auditEvents           // AuditEvent
Each namespace provides:
MethodDescription
create(data)Create a new resource
read(id, options?)Read a resource by ID
update(id, data)Update a resource (JSON Patch)
delete(id)Delete a resource
search(params?)Search with pagination

FHIR Escape Hatch

For raw FHIR R4 requests:
clinik.fhir.request(method: string, path: string, body?: unknown)
See FHIR Passthrough for details.

Response Type

Every method returns ApiResponse<T>:
interface ApiResponse<T> {
  data: T;
  meta: ResponseMeta;
}

interface ResponseMeta {
  requestId: string;
  timestamp: string;
  status: number;
  rateLimitTotal?: number;
  rateLimitRemaining?: number;
  rateLimitReset?: number;
}

Security Features

The SDK includes built-in security protections:
  • Browser detection — warns if used in a browser environment
  • HTTPS enforcement — warns if baseUrl is not HTTPS
  • Path traversal protection — resource IDs are validated against [a-zA-Z0-9\-_.]
  • FHIR include injection prevention_include values are validated
  • Body size limits — requests over 1MB are rejected before sending
  • PHI sanitization — error messages never contain patient data
  • Jittered retries — prevents thundering herd on failures