website logo
Spren
Spren API
Spren Vision
Navigate through spaces
Spren
Spren API
Spren Vision
⌘K
Spren API
Docs powered by archbee 

Spren API

Summary

Spren API is RESTful and partially async. It communicates with JSON request and response bodies. Authorization is in the header.

Environments

  • https://test.api.spren.com
  • https://prod.api.spren.com

Headers/Authorization

Header

Notes

Example

X-API-KEY

Your API key for authorization

X-API-KEY: <API key>

Content-Type

JSON, if request body present

Content-Type: application/json

Endpoints

HR/HRV

  • POST /submit/sdkData

  • POST /submit/deviceData
  • GET /results/{guid}
  • GET /populationComparison
  • POST /submit/userData

Body Composition

  • POST /submit/bodyComp
  • POST /results/bodyComp/{guid}



Biomarkers/Insights

readiness and ansBalance require 2 readings on 2 separate days within 10 days or value will be null This will occur for a user's first reading OR after their first reading if they have not performed a reading in the last 10 days, and when this occurs an errorDescription of "baseline not set" is returned. See GET /results/{guid} below for more details.

JSON Key

Description

Type

JSON Data Type

Return Values

hr

Heart rate

Biomarker

number

Floating point, unrestricted range

hrvScore

HRV score

Biomarker

number

Floating point, 0-100

rmssd

Root mean square of successive differences between normal heartbeats

Biomarker

number

Floating point, unrestricted range

breathingRate

Breathing/respiration rate

Biomarker

number

Floating point, unrestricted range

readiness*

Morning readiness

Insight

number

Int, 0-10

ansBalance*

ANS balance

Insight

number

Int, 1-5

signalQuality

Signal quality

Other

number

Int, 1-3

bodyFat

Body fat percentage

Biomarker

number

Floating point, unrestricted range

leanMass

Lean mass (kg)

Biomarker

number

Floating point, unrestricted range

fatMass

Fat mass (kg)

Biomarker

number

Floating point, unrestricted range

androidFat

Android fat (kg)

Biomarker

number

Floating point, unrestricted range

gynoidFat

Gynoid fat (kg)

Biomarker

number

Floating point, unrestricted range

androidByGynoid

Android : gynoid fat ratio

Biomarker

number

Floating point, unrestricted range

*require 2 readings on 2 separate days within 10 days or value will be null



Endpoints - Async

POST /submit/sdkData

Get a cake by its ID
GET
Params
Body Parameters
id
required
String
ID of the cake to get
Request Body Example
Request Body Schema
Curl
|
RESPONSES
200
400
401
|

POST /submit/deviceData

While we accept interbeat intervals (IBIs) from any device, the following devices have been tested

  • Apple Watch
  • Polar H7, H9, and H10
  • Garmin HRM Dual and HRM Pro
  • Suunto Smart Belt
  • 4iiii Viiiiva
  • Zephyr HxM
  • Cardiosport TP3
  • Ambiotex smart shirt with cardio-monitor
  • BlueLeza HRM Blue
Get a cake by its ID
GET
Params
Body Parameters
id
required
String
ID of the cake to get
Request Body Example
Request Body Schema
Apple Watch Example
Curl
|
RESPONSES
200
400
401
|

GET /results/{guid}

For certain insights, a minimum number of readings are required. See the Biomarkers/Insights section.

Status/Value

For each biomarker or insight, a status/value JSON object is returned

Status/Value
|

State Permutations

status

Description

value (for calculated Biomarker/Insight)

errorDescription

pending

Calculation is in progress

null

null

complete

Calculation is complete

number, see Biomarkers/Insights section below for precision and range

null

error

Calculation has errored

null

string, error encountered

Get a cake by its ID
GET
Params
Body Parameters
id
required
String
ID of the cake to get
Response Body Example
Response Body Schema
Curl
|
RESPONSES
200
400
401
|



Endpoints - Sync

GET /populationComparison

Types in Response

Gender

  • male
  • female
  • other

Age Range

  • age-18-25
  • age-26-35
  • age-36-45
  • age-46-55
  • age-56-65
  • age-66-1000

Mean/Range Object, Result Object

Mean/Range
Result
|
Get a cake by its ID
GET
Params
Body Parameters
id
required
String
ID of the cake to get
Response Body Example
Response Body Schema
Curl
|
RESPONSES
200
400
401
|

POST /submit/userData

Get a cake by its ID
GET
Params
Body Parameters
id
required
String
ID of the cake to get
Request Body Example
Request Body Schema
Curl
|
RESPONSES
200
400
401
|

Body Composition

POST /submit/bodyComp

Important Parameters Explained

Parameter JSON Key

Required

Description

age

yes

User age in years

gender

yes

Gender assigned at birth, "male" or "female"

vigorousDays

yes

The number of days in the last 7 days that a user has exercised vigorously

pushUps

no, improves accuracy

The maximum number of pushups a user can perform * For women, use a modified position where knees rest on the ground

Get a cake by its ID
GET
Params
Body Parameters
id
required
String
ID of the cake to get
Request Body Example
Request Body Schema
Curl
|
RESPONSES
200
400
401
|



GET /results/bodyComp/{guid}

Status/Value

For each biomarker, a status/value JSON object is returned

Status/Value
|

State Permutations

status

Description

value (for calculated Biomarker)

errorDescription

pending

Calculation is in progress

null

null

complete

Calculation is complete

number, see Biomarkers/Insights section for precision and range

null

error

Calculation has errored

null

string, error encountered



Get a cake by its ID
GET
Params
Body Parameters
id
required
String
ID of the cake to get
Response Body Example
Response Body Schema
Curl
|
RESPONSES
200
400
401
|
Docs powered by archbee 
Submit data
TABLE OF CONTENTS
Summary
Environments
Headers/Authorization
Endpoints
HR/HRV
Body Composition
Biomarkers/Insights
Endpoints - Async
POST /submit/sdkData
POST
Submit data
POST /submit/deviceData
POST
Submit data
GET /results/{guid}
Status/Value
GET
Get biomarkers and insights
Endpoints - Sync
GET /populationComparison
Types in Response
GET
Get population comparison data
POST /submit/userData
POST
Submit user data
Body Composition
POST /submit/bodyComp
Important Parameters Explained
POST
Submit an image
GET /results/bodyComp/{guid}
Status/Value
GET
Get body composition estimation