Upload Watch Data (binary)
curl --request POST \
--url https://api.stealthera.in/4g/pb/upload \
--header 'Content-Type: application/octet-stream' \
--header 'X-API-Key: <api-key>' \
--data '"<string>"'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/octet-stream'},
body: JSON.stringify('<string>')
};
fetch('https://api.stealthera.in/4g/pb/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/octet-stream'},
body: JSON.stringify('<string>')
};
fetch('https://api.stealthera.in/4g/pb/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.stealthera.in/4g/pb/upload"
payload = "<string>"
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/octet-stream"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)"<string>"Watch Upload
Upload Watch Data (binary)
Receives a binary protobuf payload from an Stealthera Device smartwatch and persists it to the Stealthera Cloud.
Collections written:
live_devices(keyed bydevice_id) — latest snapshothealthData— append-only log withreceivedAttimestamp
Response: A single raw 0x00 byte (application/octet-stream). The Stealthera Device test tool validates exactly this byte — do not change the response format.
Expected parsed payload fields (decoded.data):
| Field | Type | Description |
|---|---|---|
device_id | string | Device IMEI |
heart_rate_bpm | number | Beats per minute |
spo2_percent | number | Blood oxygen % |
body_temperature_c | number | Body temp in °C |
steps | number | Step count |
phone_number | string | Associated phone number |
POST
/
4g
/
pb
/
upload
Upload Watch Data (binary)
curl --request POST \
--url https://api.stealthera.in/4g/pb/upload \
--header 'Content-Type: application/octet-stream' \
--header 'X-API-Key: <api-key>' \
--data '"<string>"'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/octet-stream'},
body: JSON.stringify('<string>')
};
fetch('https://api.stealthera.in/4g/pb/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/octet-stream'},
body: JSON.stringify('<string>')
};
fetch('https://api.stealthera.in/4g/pb/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.stealthera.in/4g/pb/upload"
payload = "<string>"
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/octet-stream"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)"<string>"Authorizations
Per-client API key issued by Stealthera.
Headers
Must be octet-stream — the watch firmware sends a raw binary payload
Body
application/octet-stream
The body is of type file.
Response
200 - application/octet-stream
ACK byte (0x00)
The response is of type file.