Data push

Thryve can directly send new and updated end user data to your system through webhooks so that you don't have to do any API calls to receive the newest data.

The data will be sent as POST requests to a designated HTTPS URL (Port 443). The webhook content is compressed using zstd to reduce payload sizes and improve network time.

Please ensure your endpoint accepts requests with "CONTENT-TYPE": "application/json" and "CONTENT-ENCODING": "zstd" . Data integrity and authenticity can be ensured by configuring an HMAC secret.

Respond to the request with a 200 or 204 within 2 seconds. Failed deliveries will be retried up to 3 times. Recurring failed deliveries within a certain timeframe will lead to the automatic disabling of webhooks.

circle-exclamation

Configuration

Data push webhooks can be enabled or disabled for each data dimension (epoch/daily/measurement). To enable webhooks, you need a functioning public Webhook URL. You can also add custom authentication to secure your webhook endpoint using web authentication

In Thryve Dashboards, perform all configurations and trigger test webhook sending to your endpoint.

Content configuration

Webhooks can be sent using unix timestamps or timestamps following ISO 8601 depending on your preference. Optional parameters like dataSourceName and additional details can be enabled/disabled to optimize payload size for your needs and to only return the information you actually are interested in.

In Thryve Dashboards, perform all configurations and trigger test webhook sending to your endpoint.

Epoch data push webhook

When enabled, this webhook will trigger whenever new data is stored for a data source or existing data is updated.

{
  "endUserId": "123accessToken",
  "endUserAlias": "YourEndUserAlias",
  "timestampType": "ISO",
  "type": "event.data.epoch.create", // or "event.data.epoch.update"
  "data": {
    "dataSourceId": 5,
    "dataSourceName": "Apple",
    "epochData": [
      {
        "startTimestamp": "2022-09-07T19:39:32Z",
        "endTimestamp": "2022-09-07T19:45:02Z",
        "timezoneOffset": 0,
        "dataTypeId": 1000,
        "value": "53.0",
        "additionalDetails": {
          "creationTimestamp": "2022-09-07T19:45:05Z",
          "dataTypeName": "Steps",
          "valueType": "DOUBLE",
          "thirdPartyDataSourceId": 1,
          "thirdPartyDataSourceName": "UNKNOWN",
          "measurementReference": 9007163812253719,
          "generationType": "MANUAL_ENTRY",
          "trustworthiness": "doubt_from_device_source",
          "medicalGrade": false,
          "chronologicalExactness": 15
        }
      }
    ]
  }
}

Epoch data push schema

Webhook object

Parameter
Description

endUserId

String containing the unique identifier of a user in Thryve's system. Auto-generated upon user creation. Formerly known as accessToken.

endUserAlias

Optional. String containing the optional alias set by you when creating a user. Formerly known as partnerUserId. Only returned if configured and not null.

timestampType

String specifying the timestamps to expect in the data object. iso or unix.

type

String specifying the payload structure to expect in the data object. event.data.epoch.create for new data event.data.epoch.update for updated data.

data

Object containing content according to type.

Data source object

Parameter
Description

dataSourceId

Integer specifying the data source new data has been stored for.

dataSourceName

Optional. String containing the name of the data source.

epochData

Array containing list of new or updated epoch data.

Epoch object

Parameter
Description

startTimestamp

String when ISO formatted timestamp, Integer when unix timestamp in milliseconds

endTimestamp

String when ISO formatted timestamp, Integer when unix timestamp in milliseconds. Not returned if null.

timezoneOffset

Integer describing the offset to UTC in minutes. Not returned if null.

dataTypeId

Integer specifying the data type.

value

String containing the value of the data point.

additionalDetails

Object containing optional additional information if configured.

Additional details object

Parameter
Description

creationTimestamp

Timestamp when data was received by Thryve. String when ISO formatted timestamp, Integer when unix timestamp in milliseconds

dataTypeName

String containing the name of the data type.

valueType

String containing what value to expect.

thirdPartyDataSourceId

Integer specifying the third party that recorded the data. Not returned if null

thirdPartyDataSourceName

String containing the name of the third party data source. Not returned if null.

measurementReference

Integer containing the reference of the measurement object this data point belongs to. Not returned if null

generationType

String containing information how data was recorded if available. Not returned if null

trustworthiness

String containing information on data quality if available. Not returned if null

medicalGrade

Boolean indicating if data was recorded by a medical grade sensor, e.g. an FDA-approved medical device. Not returned if null.

chronologicalExactness

Integer indicating potential deviations from timestamps, measured in minutes. Not returned if null.

Daily data push webhook

When enabled, this webhook will trigger whenever new data is stored for a data source or existing data is updated.

Daily data push schema

Webhook object

Parameter
Description

endUserId

String containing the unique identifier of a user in Thryve's system. Auto-generated upon user creation. Formerly known as accessToken.

endUserAlias

Optional. String containing the optional alias set by you when creating a user. Formerly known as partnerUserId. Only returned if configured and not null.

timestampType

String specifying the timestamps to expect in the data object. iso or unix.

type

String specifying the payload structure to expect in the data object. event.data.daily.create for new data event.data.daily.update for updated data.

data

Object containing content according to type.

Data source object

Parameter
Description

dataSourceId

Integer specifying the data source new data has been stored for.

dataSourceName

Optional. String containing the name of the data source.

dailyData

Array containing list of new or updated daily data.

Daily object

Parameter
Description

day

String when ISO formatted timestamp, Integer when unix timestamp in milliseconds for midnight (day start) in UTC.

timezoneOffset

Integer describing the offset to UTC in minutes. Not returned if null.

dataTypeId

Integer specifying the data type.

value

String containing the value of the data point.

additionalDetails

Object containing optional additional information if configured.

Additional details object

Parameter
Description

creationTimestamp

Timestamp when data was received by Thryve. String when ISO formatted timestamp, Integer when unix timestamp in milliseconds

dataTypeName

String containing the name of the data type.

valueType

String containing what value to expect.

generationType

String containing information how data was recorded if available. Not returned if null

trustworthiness

String containing information on data quality if available. Not returned if null

chronologicalExactness

Integer indicating potential deviations from timestamps, measured in minutes. Not returned if null.

Last updated