Partners · embed the widget
Drop OCTON Vitals into your site in 90 seconds.
A copy-paste iframe that gives your visitors a 30-second camera-vitals scan — heart rate, HRV, SpO2, and blood pressure — without any backend work on your side. Free during preview. Custom-domain + analytics available for partners.
90-second integration
One iframe tag. No SDK, no API keys, no compliance review.
Privacy-first
Video never leaves the user's device. We only receive a ~22 KB RGB aggregate.
Theme + brand it
Light / dark theme, custom accent colour, partner tag, configurable CTA.
Configure
Tune the widget to your brand.
Light renders cleanly on white sites; dark on cinematic / luxury wellness sites.
Hex code. Drives buttons, ROI ring, progress bar, and the live BPM ticker.
Fingertip is best for mobile; face for desktop / clinic kiosks.
15–60s. 30s is the sweet spot for HR + HRV reliability.
Tag for analytics + CTA attribution. e.g. 'acme-wellness'. Lowercase, no spaces.
Shown on the "Save to OCTON" button after the scan completes.
Live preview
Open in new tab Copy-paste snippet
<!-- OCTON Camera Vitals · embeddable rPPG widget -->
<iframe
src="https://octon-health.com/embed/vitals?partner=acme-wellness"
width="480"
height="720"
style="border:0; border-radius:16px; max-width:100%;"
allow="camera; microphone"
title="OCTON Camera Vitals"
loading="lazy">
</iframe>
<!-- Optional: listen for scan-completion events -->
<script>
window.addEventListener('message', (e) => {
if (e.data?.source !== 'octon-vitals') return;
if (e.data.type === 'octon-vitals.capture.done') {
// e.data.vitals → { heart_rate_bpm, hrv_rmssd_ms, spo2_percent, sbp_mmhg, dbp_mmhg }
// e.data.confidences → per-vital 0..1
// e.data.quality → 'unusable' | 'poor' | 'fair' | 'good' | 'excellent'
console.log('OCTON vitals reading:', e.data.vitals);
}
});
</script>postMessage events
React to scan lifecycle from your own site.
octon-vitals.ready
Widget mounted. Includes `partner`, `mode`, `theme`, `accent`.
octon-vitals.capture.start
User tapped Begin scan. Includes `mode`.
octon-vitals.capture.done
Scan finished. Includes `vitals`, `confidences`, `quality`.
octon-vitals.capture.error
Scan failed. Includes `error` text.
octon-vitals.cta.click
Post-scan CTA clicked. Includes `target` (`octon`|`partner`).
octon-vitals.unmount
Widget being torn down. No payload.
Need more?
Custom domains, white-labelling, analytics dashboards.
During preview, the widget is free for any site. For production deployments with vanity hostnames (vitals.yourbrand.com), white-labelled CTAs, conversion analytics, and BAA / DPA, drop us a note.