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

  • POST /submit/sdkData

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



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.

name

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

readiness*

Morning readiness

Insight

number

Int, 0-10

ansBalance*

ANS balance

Insight

number

Int, 1-5

signalQuality

Signal quality

Other

number

Int, 1-3

*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
Code examples
Params
Request Body Example
Request Body Schema
Curl
|
200
400
401
|

POST /submit/deviceData

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

  • 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
Code examples
Params
Request Body Example
Request Body Schema
Curl
|
200
400
401
|

GET /results/{guid}

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

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
Code examples
Params
Response Body Example
Response Body Schema
Curl
|
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
Code examples
Params
Response Body Example
Response Body Schema
Curl
|
200
400
401
|

POST /submit/userData

Get a cake by its ID
GET
Code examples
Params
Request Body Example
Request Body Schema
Curl
|
200
400
401
|