Skip to main content

API

Developer Platform

Contactless Vital Signs in Your App

The Circadify API brings rPPG-powered vitals to any application. Build with the Web SDK (including its prebuilt React components), native mobile SDKs, embed widget, or REST endpoints to return heart rate, respiratory rate, HRV, and configured optional outputs from a guided camera scan.

Our SDKs

SDK Examples, One API

Integrate contactless vital sign readings with Web (including prebuilt React components), iOS, Android, embed widget, or REST workflows. These examples show the same SDK-guided scan pattern across web and native iOS.

Web SDK

@circadify/web-sdk

Browser-based vital signs for JavaScript and TypeScript apps. The SDK handles camera access, quality checks, local measurement payload preparation, secure upload, and result polling.

app.ts
import { CircadifySDK } from '@circadify/web-sdk';

const circadify = new CircadifySDK({
  apiKey: 'ck_live_your_key_here',
  onQualityWarning: (warning) => showHint(warning.message),
});

const result = await circadify.measureVitals({
  videoElement: document.getElementById('preview-video'),
});
Installnpm install @circadify/web-sdk
Chrome 80+Firefox 75+Safari 14+Edge 80+
Apple

iOS SDK

CircadifySDK

Native Swift package for iOS apps. The SDK supports camera permission handling, measurement options, progress callbacks, quality warnings, and result retrieval.

ContentView.swift
import CircadifySDK

let circadify = try CircadifySDK(apiKey: "ck_live_your_key_here")

let vitals = try await circadify.measureVitals()
print(vitals.heartRate) // 72 BPM
InstallSwift Package Manager
iOS 15+Swift 5.7+Xcode 14+Physical Device

SDK outputs

Configurable Metrics

Heart RateHeart Rate VariabilityRespiratory RateBlood Oxygen SignalBlood Pressure TrendsStress / Recovery Indicator
30sScan Duration
BAAAvailable
PrivatePackages
SDK + RESTOptions
SDKs & API

Pick the Integration That Matches Your Stack

Circadify supports packaged SDKs for product teams and REST endpoints for approved server-side workflows. SDKs handle camera permissions, quality checks, measurement payload preparation, upload, polling, and cleanup.

Web SDK

@circadify/web-sdk

Headless JavaScript/TypeScript SDK for vanilla JS, Vue, Svelte, or any browser app — bundled with prebuilt React components (provider, hooks, a styled CircadifyScan) to speed up implementation.

iOS SDK

CircadifySDK

Native Swift package for iOS 15+ and Swift 5.7+ with camera permissions, callbacks, and result retrieval.

Android SDK

com.circadify:circadify-android-sdk

Native Kotlin SDK for Android API 24+ using CameraX, quality callbacks, cancellation, and result polling.

Embed Widget

cdn.circadify.com/widget.js

Drop-in script for floating or inline scanner experiences when you do not want a full SDK install.

REST API

https://api.circadify.com

Server-side endpoints for sessions, result retrieval, developer account operations, API keys, and usage.

Headless Mode

measureVitals({ videoElement })

Use SDK capture, callbacks, upload, and polling while rendering your own camera preview and scan UI.

Capabilities

Built for Developers

Platform

Cross-Platform

Works across browsers and React apps, native mobile apps, embedded camera workflows, and backend systems.

Guided Measurement

Run a guided camera scan and receive structured results with confidence indicators. No extra hardware required.

Simple Integration

Choose Web (including prebuilt React components), iOS, Android, embed widget, or REST API paths based on your stack.

BAA-Ready Privacy Model

Encrypted transport, limited data retention, and BAA support for qualified healthcare deployments.

On-Device Preparation

The SDK handles capture quality checks, face guidance, and measurement payload preparation locally.

Outputs

Configurable Metrics

Heart rate, respiratory rate, HRV, and optional BP, SpO2, or stress-related outputs based on configuration.

Quick Start

Get Started in Minutes

app.ts
import { CircadifySDK } from '@circadify/web-sdk';

const circadify = new CircadifySDK({
  apiKey: 'ck_live_your_key_here',
  onProgress: (event) => updateProgress(event.percent, event.phase),
  onQualityWarning: (warning) => showScanHint(warning.message),
  onQualityState: (state) => updateQualityMeters(state),
});

const result = await circadify.measureVitals({
  videoElement: document.getElementById('preview-video'),
  demographics: { age: 35, sex: 'M', fitzpatrick: 3 },
});

console.log(result);
// {
//   heartRate: 72,
//   hrv: 45.2,
//   respiratoryRate: 16,
//   confidence: 0.87,
//   sessionId: 'abc-123',
//   timestamp: 1716573674200,
//   // Optional when enabled: spo2, systolicBp, diastolicBp
// }

Web SDK Surface

ASYNC
measureVitals(options?)Run camera capture, measurement payload preparation, secure upload, and result delivery
ASYNC
checkCameraAccess()Check if a camera is available and permissions are granted
SYNC
getDeviceCapabilities()Returns camera and secure-context capability information
SYNC
cancel()Cancel an in-progress measurement and reject the measurement promise
SYNC
destroy()Clean up SDK runtime resources and active camera streams
EVENT
onProgress(event)Real-time progress updates with phase and percentage
EVENT
onQualityState(state)Per-frame lighting, motion, pose, readiness, and scan guidance state
EVENT
onQualityWarning(warning)Alerts when lighting, motion, face position, or occlusion may affect results
EVENT
onLandmarks(landmarks)Normalized face landmarks for custom overlays
EVENT
onCameraReady(info)Access the SDK-owned stream or video when rendering custom UI
REST API

Session Endpoints for Approved Direct Integrations

SDK integrations manage this flow automatically. Direct REST integrations use API-key authenticated session endpoints and the secure upload URL returned by the API.

POSTX-API-Key
/sdk/session/start

Create a measurement session and receive a secure upload URL.

PUTSigned URL
upload_url

Upload the SDK-prepared binary measurement payload. This is not raw video or a public media file.

POSTX-API-Key
/sdk/session/upload-complete

Notify Circadify that upload is complete and start processing.

GETX-API-Key
/sdk/session/{sessionId}/result

Retrieve completed results with confidence and optional configured fields.

What Users Say

Real Feedback From Real Users

Would Recommend to a Friend or Family Member

I told my family about the app, and they were amazed at how the technology works and how quick the scan was.

— Winnie, 24, Mother

Found the Scan Easy to Complete

I just looked at my phone for a few seconds and it gave me my vitals. The people around me wanted to try it as well.

— George, 28, Businessman

Believe It Could Improve Community Health Access

Where I'm from, getting to a medical center for basic stuff requires a long wait. Something like this could change that.

— Akunda, 26, Accountant

Support

API Frequently Asked Questions

The Circadify rPPG API is a RESTful interface that lets developers add camera-based vitals to their applications. Using SDK-prepared camera signals, the API returns heart rate, respiratory rate, HRV, and configuration-dependent BP or SpO2 outputs.

Circadify supports Web (including prebuilt React components), iOS, Android, embed widget, and REST integrations. Use @circadify/web-sdk for JavaScript/TypeScript and React, CircadifySDK for Swift apps, com.circadify:circadify-android-sdk for Kotlin Android apps, or the REST API from any server-side language.

SDK session endpoints use an X-API-Key header with your ck_live_* key. Developer account endpoints use a bearer token in the Authorization header.

Rate and scan limits are plan-specific. Enterprise customers can request dedicated throughput, deployment support, and workflow-specific scaling for approved production use cases.

Circadify supports HIPAA-eligible deployments with encrypted transport, limited data retention, and Business Associate Agreements (BAA) for qualified healthcare organizations. The SDK prepares measurement payloads locally so raw video frames are not uploaded in the standard flow.

Yes. Native SDKs are available for iOS and Android, and the Web SDK can run in supported mobile browsers over HTTPS. The SDKs handle camera access, scan quality checks, measurement payload preparation, secure upload, and result polling.

Circadify is designed for standard smartphone and laptop cameras. Camera access requires HTTPS outside localhost, and the SDK uses readiness checks, quality warnings, and confidence scores to help your app respond to lighting, motion, pose, or device limitations.

Performance depends on the metric, device, lighting, motion, population, and deployment configuration. Circadify returns confidence indicators and provides validation materials for pilot and enterprise customers so teams can evaluate fit for their intended use.

Get Started

Get API Access

Request your API key and start building with contactless vital signs today.

Request A Demo

See how contactless vitals can transform your healthcare delivery.

Learn More

From the Blog