Clinical data,
stored right.
Enterprise-grade FHIR R4 storage with automatic encryption, tenant isolation, and immutable audit trails. You write the app — we handle the infrastructure, compliance, and scale.
// Store clinical data — encrypted, isolated, compliant
const { data: lab } = await clinik.labs.create({
patient: 'pt_7821',
code: '58410-2',
display: 'CBC Panel',
status: 'final',
conclusion: 'All values within normal range'
});
// Query with automatic tenant scoping
const { data: results, meta } =
await clinik.labs.search({
patient: 'pt_7821',
dateFrom: '2025-01-01'
});
Uptime SLA
Median latency
FHIR R4 resources
Encryption standard
Encryption at Every Layer
AES-256 encryption at rest, TLS 1.3 in transit. Every field of every resource is encrypted before it touches disk. Key rotation is automatic and transparent.
Tenant Isolation
Every resource is tagged with your organization ID at the storage layer. Queries are automatically scoped — no data leaks between tenants, ever. Enterprise plans get dedicated data stores.
Immutable Audit Trail
Every read, write, and delete is logged with resource context, timestamps, and API key metadata. Audit logs are immutable and accessible from your dashboard in real time.
FHIR R4 Native
Data is stored as native FHIR R4 resources with full referential integrity. You send simplified JSON — our engine transforms, validates, and stores it as spec-compliant FHIR automatically.
Rich Query Engine
Search by patient, status, date range, code, and more. Cursor-based pagination for large result sets. Include linked resources in a single request with _revinclude.
Zero Ops
No databases to provision, no schemas to migrate, no backups to schedule. We handle replication, failover, scaling, and patching. You focus on your application.
From your app to compliant storage
Every request flows through validation, transformation, encryption, and tenant isolation before reaching the data store.
Your App
Send simplified JSON via the SDK or REST API. No FHIR knowledge needed.
Validation
Zod schemas enforce field types, string lengths, and required fields. Invalid data is rejected instantly.
FHIR Transform
Our engine converts your payload to a spec-compliant FHIR R4 resource with tenant tags and references.
Encrypted Store
AES-256 encrypted, tenant-isolated, with automatic backups and an immutable audit log entry.
Import and export at scale
Migrate millions of records with NDJSON bulk import. Export entire data sets for analytics, reporting, or compliance audits. Track job progress in real time from the dashboard.
- NDJSON format for streaming large data sets
- Async job tracking with status polling
- Automatic validation and error reporting per record
- Secure cloud storage for large exports
// Import 10,000 patients from NDJSON
const job = await clinik.bulk.import({
resourceType: 'Patient',
data: ndjsonStream
});
// Poll for completion
const status = await clinik.bulk.status(job.id);
// { status: 'completed', imported: 10000, errors: 0 }
Test and live, fully separated
Test keys route to an isolated sandbox. Live keys route to production. Enterprise plans get dedicated, single-tenant data stores. No configuration needed.
Shared sandbox with clk_test_* keys. Full API parity with production. Reset data anytime.
Multi-tenant production store with clk_live_* keys. Tenant-isolated at the data layer. Free and Pro plans.
Single-tenant data store for Enterprise plans. Your own infrastructure, your own encryption keys, your own compliance boundary.
Ready To Transform Healthcare?
Join 500+ developers building the future of clinical workflows on ClinikAPI. Get your production keys in seconds.
$ npm install @clinikapi/sdk
import { Clinik } from '@clinikapi/sdk'
const clinik = new Clinik('clk_live_...')
const { data: patient } = await clinik.patients.create({
firstName: 'Jane',
lastName: 'Doe',
email: '[email protected]'
})
// Stored in HIPAA vault