Each time a summary object is created or updated, Vital emits a data event for the occurrence.
The object is made available directly at the top-level data field (JSON path: $.data), alongside the standard fields listed above.
Each summary is uniquely identified by its ID ($.id).
Given the same ID, the latest version of a summary you received replaces all its previous versions.
Each time a batch of timeseries samples has been created or updated, Vital emits a data event for the batch of samples.
The samples are made available under an inner data field under the top-level data field (JSON path: $.data.data).
Each timeseries sample is uniquely identified by a compound key of:
Given the same compound key, the latest value of a sample you received replaces all the previous values.
While most timeseries data are immutable, there have been exceptions of some sources aggregating some data types using time bucketing,
and some may even send updates ASAP on time buckets that have incomplete data. For example, activity timeseries data from Apple HealthKit
(integration in production) and Garmin (integration planned) do exhibit such behaviour.
These exceptions are the rationale behind the recommended deduplication semantic as stated above.
While Workout Streams are classified as a timeseries type, it contains a huge amount of timeseries data
which cannot be delivered by our webhook message transport.
So events for Webhook Streams are shallow, with only some minimal metadata about the workout. Successful
reception of the event indicates that the data are available to be read via our REST API,
e.g., the Workout Stream endpointGET /v2/timeseries/workouts/{workout_id}/stream.
Workout Stream created
Copy
Ask AI
{ "data": { "message": "Due to payload size limits, to access the workout stream, please use the /workouts/edc80dd0-8cc8-4ec8-8b80-931fd9a3309a/stream endpoint.", "provider_id": "51278201336", "sport": { "id": 57, "name": "Other", "slug": "other" }, "workout_id": "fdc70dd0-8cc8-4ec8-8b80-121fd9a3302a" # Common wearable data event fields "source": { "logo": "https://storage.googleapis.com/vital-assets/fitbit.png", "name": "Fitbit", "slug": "fitbit" }, "user_id": "bf6222fb-3b81-4201-9630-118bfee01e03", }, "event_type": "daily.data.workout_stream.created", "user_id": "4a29dbc7-6db3-4c83-bfac-70a20a4be1b2", "client_user_id": "01HW3FSNVCHC3B2QB5N0ZAAAVG", "team_id": "6b74423d-0504-4470-9afb-477252ccf67a"}