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.