Each summary object is uniquely identified by its id.

If multiple events are received at the same id, the last event received replaces all its previous versions.

Properties

event_typerequired
const string

Constant: daily.data.workout_stream.created

datarequired
ClientFacingShallowWorkoutStream
user_idrequired
string

User id returned by vital create user request. This id should be stored in your database against the user and used for all interactions with the vital api.

workout_idrequired
string
provider_idrequired
string
message
string | null
sourcerequired
ClientFacingSource

Source the data has come from.

providerrequired
string

Provider slug. e.g., oura, fitbit, garmin.

type
string | null

The type of the data source (app or device) by which the summary or the timeseries data were recorded. This defaults to unknown when Vital cannot extract or infer that information

app_id
string | null

The identifier of the app which recorded this summary. This is only applicable to multi-source providers like Apple Health and Android Health Connect.

namerequired
string

[⚠️ Deprecated] Deprecated.

slugrequired
string

[⚠️ Deprecated] Deprecated.

logorequired
string

[⚠️ Deprecated] Deprecated.

sport
ClientFacingSport | null

Sport’s name

idrequired
integer
namerequired
string

Sport’s name

slugrequired
string

Slug for designated sport

Examples

{
  "event_type": "daily.data.workout_stream.created",
  "data": {
    "workout_id": "0083638c-35f8-4edc-8eee-af0e87305e8f",
    "provider_id": "123dashd9",
    "message": "Due to payload size limits, to access the workout stream, please use the /v2/timeseries/workouts/{workout_id}/stream endpoint.",
    "source": {
      "name": "Oura",
      "slug": "oura",
      "logo": "https://logo_url.com"
    },
    "sport": {
      "id": 1,
      "name": "Running",
      "slug": "running"
    }
  }
}