Submitting Health Data to Inform Connect

Prior to submitting data to Validic for an End User, the user must be successfully connected to Validic and you must have a valid access_token which is generated as part of the connection process. See Connecting Users to Inform Connect steps 1 - 4 for more details.


Post End-User Data to Validic Inform Connect API Gateway

Data Source Partners use the following endpoints to POST health data records for End Users to Inform. See the following linked pages for more details on each endpoint.

Resource TypeRequest URLDescriptionExample Data Types
Daily SummariesPOST /connect/provider/data/summariesAggregated Daily Activity (always 1 per source per day)Steps, Calories Burned, Active Duration, etc
Workouts EventsPOST /connect/provider/data/workoutsWorkouts and Fitness EventsSteps, Distance, Duration, etc
Daily NutritionPOST /connect/provider/data/nutritionMeals and Foods ConsumedCalories Consumed, Carbs, Fiber, etc
MeasurementsPOST /connect/provider/data/measurementsVital Signs and MeasuresBlood Pressure, Body Weight, etc
Sleep EventsPOST /connect/provider/data/sleepSleep EventsREM, Light, Awake, Total Sleep, etc


Required Request Headers

Content-Type: application/json  
Authorization: Bearer access_token

NOTE: The authorization token here is the user’s access_token which you received in Step 2 when Connecting Users to Inform Connect.

Request Format

Data posted to the Inform Connect API must be in the following format and meet the following requirements. Data records are submitted one at a time.

  • log_id: The unique identifier for the record provided by the Data Source.
  • start_time: The start time of the event represented in UTC. For point-in-time measurements this will be the same as end_time
    ** Example: 2025-01-01T16:37:00Z
  • end_time: The end time of the event represented in UTC. For point-in-time measurements this will be the same as start_time
    ** Example: 2025-01-01T16:37:00Z
  • utc_offset: Validic reports all times in UTC. The utc_offset is the local offset in seconds from UTC in order to calculate a local time for the end-user.
    ** Example: -14400
  • offset_origin: This value provides Inform with information about how your app or device established the UTC Offset for the end user’s record. See Time section below. Accepted values are:
    ** source: The offset was provided or calculated based on data record provided by the record source ** profile: The offset was provided by a user profile at the data source
  • metrics: Array. Each metric represents a value generated from your data source and related contextual information. See the Metrics section below. Each metric must include:
    **type: The type of metric being reported. See the Metrics section below. ** origin: The method by which the data was recorded. See the Metrics section below. **unit: The metric unit of measure the value is being reported in. See the Metrics section below. ** value: The value received from the data source/device.
    ** Example:
{
	"type": "blood_glucose",
	"origin": "device",
	"unit": "mg/dL",
	"value": 198.0
}
  • source: The “type” is the name of your source and will be supplied to you by Validic. The “device” is optional and can be specified by you to identify the name of your device. NOTE: When providing “device”, its “id” must always be null as this is a Validic-generated identifier for specific device types.
    ** Example:
"source": {
  "type": "validic_connect_test",
  "device": {
    "id": null,
    "model": "Validic Watch",
    "manufacturer": "Validic Inc."
    }
}
  • type: Identifies the record type. Must be one of the following:
    **measurement ** summary
    ** workout ** sleep
    ** nutrition
  • user_notes: Note left by the end-user regarding the event. More information can be found here: https://helpdocs.validic.com/docs/user-notes
  • version: Always 1.0

Example Request Body

{
    "log_id": "validic-test-record-1",
    "start_time": "2025-02-24T12:30:09Z",
    "end_time": "2025-02-24T12:30:09Z",
    "utc_offset": -72000,
    "offset_origin": "source",
    "metrics": [
        {
            "type": "blood_glucose",
            "origin": "device",
            "unit": "mg/dL",
            "value": 199.0
        }
    ],
    "source": {
        "type": "validic_connect_test",
        "device": {
            "id": null,
            "model": "Validic Watch One",
            "manufacturer": "Validic Inc."
        }
    },
    "type": "measurement",
    "version": "1.0"
}
📘

Important Note

POSTing with a record multiple times with the same log_id will update the existing record in Inform.


Response Format

A 200 Success and the Inform record will be returned when a POST call successfully creates or updates a record in Inform.

Possible errors are documented here: https://helpdocs.validic.com/reference#errors

NOTE: A 401 Unauthorized and the token will be returned when a POST call is made for an End User that no longer has an active connection to the data source. When this response is received, it is an indication that the user connection can be removed on your end.


Important Considerations

Time

Time representations in the Inform Connect API are presented as complete UTC timestamps with adherence to the ISO8601 standard. In addition, for determining the user local time of the event, a utc_offset is provided as a whole integer representing the seconds offset from UTC. The offset_origin provides additional context on how the UTC offset was calculated.

Offset Origins

  • source: UTC offset received from the original record, or the timezone information was directly provided by the original source of data when it was retrieved.
  • profile: UTC offset received from the user profile information at the Data Source. This is the user's timezone information set by the user in his or her Data Source app or device.

Example Time Fields

...
    "start_time": "2025-02-24T12:30:09Z",
    "end_time": "2025-02-24T12:30:09Z",
    "utc_offset": -72000,
    "offset_origin": "source",
...

Metrics

Acceptable Metrics

Review the list of metrics that can be provided to Inform. If you need to add new metrics, please discuss this with your Inform Connect contact.

❗️

The naming conventions, endpoints and units of measure are not flexible.

You must specify metric type and unit as supported by Inform. See the Inform metric list for details.

If you have questions on how to send your data using currently supported metrics your Inform Connect contact can help with this as well. Simply provide the metrics and we will send you additional sample request bodies for those metrics.


Fields

Within a record, the data specific to the End User event is returned in a list of Metrics. Every record must include at least one metric. Each metric is broken into four attributes, detailed below. If a metric is not reported by a data source, the metric will not appear in the resulting Validic data record. Although Validic will not send NULL for metrics, NULL values are possible for other record attributes.

📘

Every record must include at least one metric.

Attribute

Definition

Value

type

The type of metric being reported, like steps, active_duration, or avg_heart_rate. Use the "Type" indicated in the Inform metric list.

string

unit

The metric unit of measure the value is being reported in. Use the "Standard Unit" indicated in the Inform metric list.

string

value

The presentation of the measurement, which represents the value received from the data source. For instance, 100 steps from a smartwatch. Ensure your value is in the "Data Type" indicated in the Inform metric list .

string, float, or integer*

origin

The method by which the measurement was recorded. This value is used to determine where the data was generated. For instance, "manual" meaning the end-user added the event using the application and not their device. See full list: https://helpdocs.validic.com/docs/data-origin-validated-data

string


Sample Metrics Block

"metrics": [
                {
                    "type": "active_duration",
                    "unit": "s",
                    "value": 125,
                    "origin": "device"
                },
                {
                    "type": "basal_energy_burned",
                    "unit": "kcal",
                    "value": 2371.96079206,
                    "origin": "unknown"
                },
                {
                    "type": "distance",
                    "unit": "m",
                    "value": 1244.01981306,
                    "origin": "device"
                },
                {
                    "type": "active_energy_burned",
                    "unit": "kcal",
                    "value": 219.896335174,
                    "origin": "device"
                },
                {
                    "type": "steps",
                    "unit": "count",
                    "value": 1546,
                    "origin": "device"
                },
                {
                    "type": "energy_burned",
                    "unit": "kcal",
                    "value": 2591.857127234,
                    "origin": "device"
                }
            ]

See the endpoint-specific pages for additional Code Samples to use as a reference.