Any Device — Universal Integration
Nefesh is hardware-agnostic by design. The universal /v1/ingest endpoint accepts biometric signals from any source that can make an HTTP POST in real time. Chest strap, smartwatch, webcam, glucose monitor, EEG headset, custom sensor, or your own hardware stack. If it reads the body and can send HTTP, it works with Nefesh. The integrations listed in this section are popular examples, not a closed set.
The Universal Pattern
Every integration follows the same pattern: read a sensor, extract metrics, POST to Nefesh.
curl
curl -X POST https://api.nefesh.ai/v1/ingest \
-H "X-Nefesh-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"session_id": "sess_demo",
"heart_rate": 72,
"rmssd": 45,
"source_device": "my_sensor",
"timestamp": "2026-04-08T10:00:00Z"
}'
Python
import requests, datetime
resp = requests.post("https://api.nefesh.ai/v1/ingest",
headers={"X-Nefesh-Key": "YOUR_KEY"},
json={
"session_id": "sess_demo",
"heart_rate": 72,
"rmssd": 45,
"source_device": "my_sensor",
"timestamp": datetime.datetime.utcnow().isoformat() + "Z",
})
print(resp.json())
JavaScript
const resp = await fetch("https://api.nefesh.ai/v1/ingest", {
method: "POST",
headers: {
"X-Nefesh-Key": "YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
session_id: "sess_demo",
heart_rate: 72,
rmssd: 45,
source_device: "my_sensor",
timestamp: new Date().toISOString(),
}),
});
console.log(await resp.json());
Go
package main
import (
"bytes"
"encoding/json"
"net/http"
"time"
)
func main() {
payload, _ := json.Marshal(map[string]interface{}{
"session_id": "sess_demo",
"heart_rate": 72,
"rmssd": 45,
"source_device": "my_sensor",
"timestamp": time.Now().UTC().Format(time.RFC3339),
})
req, _ := http.NewRequest("POST", "https://api.nefesh.ai/v1/ingest", bytes.NewBuffer(payload))
req.Header.Set("X-Nefesh-Key", "YOUR_KEY")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
}
Supported Signal Categories
- Cardiovascular — heart rate, HRV (RMSSD, SDNN)
- Vocal — tone classification, speech rate, pitch variability
- Visual — facial expression, posture, gaze direction
- Textual — message sentiment and urgency
- Plus additional categories including metabolic, neural, electrodermal, respiratory, movement, and sleep. See the signal reference for the full list of supported fields.
Custom Hardware Patterns
Microcontrollers (Arduino, ESP32, Raspberry Pi)
If your sensor is connected to a microcontroller with WiFi, you can POST directly to Nefesh from the device. ESP32 and Raspberry Pi both support HTTPS natively. Arduino boards with WiFi shields can use the WiFiClientSecure library.
Bluetooth LE Bridge
Many medical and fitness sensors use BLE. Build a phone or gateway app that reads BLE characteristics (e.g., Heart Rate Measurement UUID 0x2A37) and forwards the extracted values to Nefesh via HTTP.
Serial/USB Sensor
Desktop applications can read sensor data from serial ports (COM/ttyUSB) and POST to Nefesh. This works well for research-grade devices like Shimmer, BITalino, or OpenBCI.
Cloud Webhook
Any device or platform that can call a webhook can call Nefesh. If your device pushes data to a cloud service (e.g., Garmin Health API, Dexcom Share), write a small relay function that forwards the data to /v1/ingest.
FAQ
What is the minimum data I need to send?
Just one signal (e.g., heart_rate) plus a session_id and timestamp. That is enough for Nefesh to return a stress score and behavioral recommendation.
Do I need to batch or stream?
Either works. Nefesh processes each POST in real time. Send one reading per request, or batch multiple signals in a single POST. Both patterns are supported.
Do I need a native SDK?
No. Any language that can make HTTP requests works. There is no proprietary SDK requirement. The API is a standard JSON REST endpoint.
My device measures something specific. Is it supported?
Email [email protected] and we will confirm within 24 hours.