Skip to content

How VitalLens Works

The VitalLens API is a stateless inference engine designed with privacy as a core constraint.

The Data Pipeline

1. Client-Side Preprocessing

If you are using our official libraries (e.g., vitallens-python), preprocessing happens locally on your device before data leaves your network:

  • Audio Removal: Audio tracks are stripped to reduce payload size and ensure privacy.
  • Downsampling: Video is cropped and spatially downsampled (typically 40x40px) to minimize bandwidth usage and improve privacy.
  • Standardization: Frame rates and formats are standardized.

2. Inference

The preprocessed frames are transmitted via encrypted connection to the VitalLens API. Our deep learning models analyze:

  • rPPG Signals: Subtle skin color variations caused by blood volume changes (for Heart Rate and HRV).
  • Motion Cues: Micro-movements of the head and upper torso (for Respiratory Rate).

3. Immediate Disposal

The VitalLens API is stateless.

  • Video Data: As soon as the inference is complete, the video frames are permanently deleted from server memory. We do not write input video to disk.
  • Vital Estimates: The estimated vital signs are returned to you in the API response and are immediately discarded from our memory. We do not store your users' health data.

4. Logging & Metadata

While we do not store the video or the vital sign results, we do retain technical metadata for billing, security, and performance monitoring. This includes:

  • API Key and request timestamps.
  • Technical quality metrics (e.g., Confidence Scores).
  • Error logs.

Billing & Frame Credits

Each frame you send uses one frame credit. On paid plans, requests that we classify as unusable or low quality do not use frame credits and do not count towards overage charges. The Free plan counts all processed frames. How the quality of a request is determined is described in Processing Status & Quality.

Technical Constraints

  • Resolution: The model operates on low-resolution inputs. High-definition video is not required and increases latency.
  • Duration: The File API accepts a maximum of 900 frames (approx 30s at 30fps) per request.
  • Region of Interest: The video must depict a single person. If multiple faces are detected, the client will usually crop to the dominant face.