SmartSpectra SDK

Getting Started

Set up your API key and integrate the SmartSpectra SDK in your app.

Get an Account

Register through the Presage Developer Admin Portal Registration to get a free API key or OAuth configuration. See the Quickstart guide for your platform to set up OAuth.

Once you have an account, you can also hand this part to an AI assistant instead of clicking through the portal — connect the SmartSpectra MCP Server and the assistant can fetch your API key, register an app ID, and download its OAuth config file for you.

Install the SDK

Need to ship a Linux desktop app without asking end users to configure the Presage apt source? See the C++ SDK docs and example app for the current supported Linux redistribution path.

Build with an AI Assistant

Prefer to let an AI coding assistant do the integration? The using-smartspectra Agent Skill teaches Claude Code or OpenAI Codex how to build apps with the SDK. Install it with one command, then ask your assistant to build with SmartSpectra:

npx skills add Presage-Security/SmartSpectra --skill using-smartspectra

See Using the AI agent skill for details.

The skill teaches your assistant how to build with the SDK; the SmartSpectra MCP Server gives it authorized access to your developer account. Connect both and "set up a new mobile app and wire in my credentials" works end to end — the assistant registers the app, downloads the OAuth config file, and writes the integration code.

Get a Good Measurement

Video-based vitals are sensitive to lighting, framing, and motion. Before you ship, read Getting a Good Measurement for camera setup guidance, examples of good vs. bad conditions, and how to surface the SDK's live validation feedback to your users.

SDK metric capabilities

Important: SDK metrics are offered for general wellness and informational purposes only. SDK metrics have not been cleared by the FDA and may not be used for medical diagnosis or treatment.

The SDK exposes one language-agnostic metrics payload across platforms. When platform pages lag the underlying SDK, this overview uses the highest currently documented capability and calls out validation gaps directly. See the payload schema for field names and wire types.

Relative Arterial Pressure Waveform

Waveform of relative arterial pressure (amplitude in arbitrary units vs. time). Represents waveform shape only (e.g., heartbeat timing, shape and relative changes). Not a blood pressure measurement and cannot be used to estimate systolic or diastolic pressure.

See model card for confidence to error mapping.

Range
Valid when pulse rate is 40-110 BPM.
Works when
  • Subject is stationary.
  • Camera is relatively stable; handheld is acceptable.
  • Face and upper chest are visible, unobstructed, and well illuminated.
Does not work when

These conditions may produce inaccurate measurements with high confidence and should be avoided.

  • Large head, body, or camera motion.
  • Chewing gum.
  • Flickering illumination, such as TV screens.
Model card

Heart Rate Variability

60-second beat-to-beat (NN interval) statistics with confidence. Confidence is 0 until the full 60-second window is reached.

See model card for confidence to error mapping.

Metrics

  • Mean NN: Average NN interval in milliseconds.
  • RMSSD: Root mean square of successive NN differences in milliseconds.
  • SDNN: Standard deviation of NN intervals in milliseconds.
  • Baevsky Stress Index: Measure of autonomic balance in arbitrary units.
Range
Valid when pulse rate is 40-110 BPM.
Works when
  • Subject is stationary.
  • Camera is relatively stable; handheld is acceptable.
  • Face and upper chest are visible, unobstructed, and well illuminated.
Does not work when

These conditions may produce inaccurate measurements with high confidence and should be avoided.

  • Large head, body, or camera motion.
  • Chewing gum.
  • Flickering illumination, such as TV screens.
Model card

Pulse Rate

12-second average pulse rate in beats per minute (BPM) with confidence.

See model card for confidence to error mapping.

Range
40-110 BPM.
Works when
  • Subject is stationary.
  • Camera is relatively stable; handheld is acceptable.
  • Face and upper chest are visible, unobstructed, and well illuminated.
Does not work when

These conditions may produce inaccurate measurements with high confidence and should be avoided.

  • Large head, body, or camera motion.
  • Chewing gum.
  • Flickering illumination, such as TV screens.
Model card

Face Analysis

Includes:

  • 478 facial landmark coordinates as x/y pixel locations.
  • Eye blink detection (binary).
  • Talking detection (binary).
  • Facial expression classification with probabilities across anger, contempt, disgust, fear, happiness, sadness, surprise, and neutral.
Works when
  • Face is visible, unobstructed, and well illuminated.
Does not work when
  • Face is significantly rotated and not approximately orthogonal to the camera.
Face landmark numbering reference

Breathing Rate

30-second average breathing rate in breaths per minute with confidence. Confidence is 0 until the full 30-second window is reached.

See model card for confidence to error mapping.

Range
5-40 breaths per minute.
Works when
  • Subject is stationary.
  • Camera is stable and not handheld.
  • Face and chest are visible and well illuminated.
Does not work when
  • Talking.
  • Large body motion.
  • Unstable camera, including handheld capture.
  • Dark clothing.
  • Tightly striped patterns on clothing causing image aliasing.
Model card

Upper and Lower Breathing Waveforms

Upper chest and lower abdominal breathing waveforms (amplitude in arbitrary units vs. time) with confidence. Confidence is derived from breathing rate confidence and remains 0 until 30 seconds is reached.

See model card for confidence to error mapping.

Range
Valid for breathing rates of 5-40 breaths per minute.
Works when
  • Subject is stationary.
  • Camera is stable.
  • Face and chest are visible and well illuminated.
  • Lower abdominal waveform requires waistline visibility.
Does not work when
  • Talking.
  • Large body motion.
  • Unstable camera, including handheld capture.
  • Dark clothing.
  • Tightly striped patterns on clothing causing image aliasing.
Model card

On this page