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
Android
Kotlin. Min SDK 28.
Swift
Swift. iOS 17+.
C++
C++17. macOS, Linux, and Windows.
Node.js / Electron
Node.js 20+. Electron 28+.
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-smartspectraSee 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.
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.
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.
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.
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.
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.