Skip to content

Data API (1.0)

The Tidepool API is an HTTP REST API used by Tidepool clients use to communicate with the Tidepool Platform.

For more information, see the Getting Started section.

Download OpenAPI description
Languages
Servers
Mock server

https://tidepool.redocly.app/_mock/reference/data.v1/

integration

https://external.integration.tidepool.org/

production

https://api.tidepool.org/

dev1

https://dev1.dev.tidepool.org/

qa1

https://qa1.development.tidepool.org/

qa2

https://qa2.development.tidepool.org/

Internal

APIs intended for internal use by Tidepool.

Operations

Data

Manages diabetes data in user's Tidepool account.

Operations

Physical Activity

An abstract base data type for all Tidepool diabetes data objects.

annotationsArray of Annotation (object) or Blood Glucose Out of Range (object)(Annotation Array)[ 0 .. 100 ] itemsunique

An array of annotations.

archivedTimestring(date-time)(Date/Time)read-only

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
archivedDatasetIdstring(Data Set ID)[ 17 .. 37 ] characters^(upid_[0-9a-f]{12}|upid_[0-9a-f]{32}|[0-9a-f...
Example: "ce8cc5f7595575945f91fc6710db6fef"
associationsArray of Association (blob) (object) or Association (datum) (object) or Association (image) (object) or Association (url) (object)(Association Array)

An array of associations for the resource.

clockDriftOffsetinteger(int64)(Clock Drift Offset)[ -86400000 .. 86400000 ]

Clock drift offset, expressed as milliseconds.

Example: 0
conversionOffsetinteger(int64)(Conversion Offset)

Conversion offset, expressed as milliseconds.

Example: 0
createdTimestring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
createdUserIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-only

String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4

deduplicatorobject(Deduplicator Descriptor)
deletedTimestring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
deletedUserIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-only

String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4

deviceIdstring(Device ID)non-empty

Globally unique to device and repeatable with each upload, e.g. device make and model with serial number

Example: "MMT-1711:12345678"
deviceTimestring(Date/Time without Timezone)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$

RFC 3339 / ISO 8601 timestamp without timezone information

Example: "2017-02-06T02:37:46"
historyArray of objects(Event History [Proposed])

Revision history of the event

idstring(Data Set ID)[ 17 .. 37 ] characters^(upid_[0-9a-f]{12}|upid_[0-9a-f]{32}|[0-9a-f...required
Example: "ce8cc5f7595575945f91fc6710db6fef"
locationobject(Location)

Location information associated with the resource. One or both of name and gps must be specified.

modifiedTimestring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
modifiedUserIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-only

String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4

notesArray of strings(Note Array)[ 1 .. 100 ] items

An array of 1 to 100 notes.

originobject(Origin)

External origin information for the source of the resource.

payloadobject(Payload)

Grab bag field for data that isn't yet part of the data model. The maximum size is 4K bytes.

sourcestring
Value"carelink"
tagsArray of strings(Tag Array)

An array of tags.

timestring(date-time)(Date/Time)required

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
timezonestring(Time Zone)

A string timezone name from the IANA timezone database

Example: "Europe/London"
timezoneOffsetinteger(int32)(Time Zone offset)[ -10080 .. 10080 ]

Time zone offset, expressed as positive or negative number of minutes from UTC.

Example: -420
typestring(Tidepool Data Type)required

Data type

Enum"physicalActivity""alert""basal""bloodKetone""bolus""cbg""cgmSettings""controllerSettings""controllerStatus""deviceEvent"
Example: "upload"
uploadIdstring(Upload ID)[ 17 .. 32 ] characters^([0-9a-f]{32}|upid_[0-9a-f]{12})$

An upload identifier; this field should be the uploadId of the corresponding upload record

Example: "0d92d5c1c22117a18f3620b9e24d3c06"
activityTypestring(Physical Activity Type)required
Enum"americanFootball""archery""australianFootball""badminton""barre""baseball""basketball""bowling""boxing""climbing"
Example: "curling"
activityTypeOtherstring(Other Activity Type)[ 1 .. 100 ] characters

This is only applicable if the activityType is other

Example: "skydiving"
namestring(Activity Name)[ 1 .. 100 ] charactersrequired
Example: "Hiking the John Muir Trail"
reportedIntensitystring(Reported Intensity)required
Enum"high""low""medium"
Example: "medium"
aggregateboolean(Aggregate)

Set to true if this is an aggregate activity.

Example: false
distanceDistance (meters) (object) or Distance (kilometers) (object) or Distance (feet) (object) or Distance (yards) (object) or Distance (miles) (object)(Distance)

Distance, expressed as meters, kilometers, feet, yards, or miles.

One of:

Distance, expressed as meters, kilometers, feet, yards, or miles.

durationDuration (hours) (object) or Duration (minutes) (object) or Duration (seconds) (object)(Duration)

Duration, expressed as hours, minutes or seconds.

One of:

Duration, expressed as hours, minutes or seconds.

elevationChangeDistance (feet) (object) or Distance (meters) (object)
One of:
energyEnergy (calories) (object) or Energy (kilocalories) (object) or Energy (joules) (object) or Energy (kilojoules) (object)(Energy)
One of:
flightobject(Flights)
lapobject(Laps)
stepobject(Steps)
guidstringDeprecated

A string ID. Added to each event during data processing in the Tidepool Uploader or upon ingestion by the platform data ingestion service.

{ "annotations": [ {} ], "archivedTime": "2017-02-06T02:37:46Z", "archivedDatasetId": "ce8cc5f7595575945f91fc6710db6fef", "associations": [ {} ], "clockDriftOffset": 0, "conversionOffset": 0, "createdTime": "2017-02-06T02:37:46Z", "createdUserId": "string", "deduplicator": { "hash": "string", "version": "2.36.1", "name": "org.tidepool.uploader" }, "deletedTime": "2017-02-06T02:37:46Z", "deletedUserId": "string", "deviceId": "MMT-1711:12345678", "deviceTime": "2017-02-06T02:37:46", "guid": "string", "history": [ {} ], "id": "ce8cc5f7595575945f91fc6710db6fef", "location": { "name": "string", "gps": {} }, "modifiedTime": "2017-02-06T02:37:46Z", "modifiedUserId": "string", "notes": [ "string" ], "origin": { "id": "string", "name": "string", "payload": {}, "time": "2017-02-06T02:37:46Z", "type": "device", "version": "string" }, "payload": {}, "source": "carelink", "tags": [ "string" ], "time": "2017-02-06T02:37:46Z", "timezone": "Europe/London", "timezoneOffset": -420, "type": "physicalActivity", "uploadId": "0d92d5c1c22117a18f3620b9e24d3c06", "activityType": "curling", "activityTypeOther": "skydiving", "name": "Hiking the John Muir Trail", "reportedIntensity": "medium", "aggregate": false, "distance": { "units": "meters", "value": 42 }, "duration": { "units": "hours", "value": 42 }, "elevationChange": { "units": "feet", "value": 42 }, "energy": { "units": "calories", "value": 10000000 }, "flight": { "count": 42 }, "lap": { "count": 5, "distance": {} }, "step": { "count": 42 } }

Pump Settings Override Preset

An insulin pump settings override preset.

abbreviationstring[ 1 .. 100 ] characters
Example: "🏃‍♀️"
durationnumber(float)[ 0 .. 604800000 ]
Example: 7200
bgTargetBlood Glucose Target Value (mg/dL) (object) or Blood Glucose Target Value (mmol/L) (object)(Blood Glucose Target)
One of:

Blood glucose target values, in mg/dL

basalRateScaleFactornumber(float)[ 0.1 .. 10 ]
Example: 0.8
carbRatioScaleFactornumber(float)[ 0.1 .. 10 ]
Example: 1.25
insulinSensitivityScaleFactornumber(float)[ 0.1 .. 10 ]
Example: 1.25
{ "abbreviation": "🏃‍♀️", "duration": 7200, "bgTarget": { "high": 180, "low": 80 }, "basalRateScaleFactor": 0.8, "carbRatioScaleFactor": 1.25, "insulinSensitivityScaleFactor": 1.25 }

Pump Settings

Insulin pump settings

TODO: Find a way for the following to be either/or and add properties of all of the above (for now, set to type: object):

  • basalSchedule/basalSchedules
  • bgTarget/bgTargets
  • carbRatio/carbRatios
  • insulinSensitivity/insulinSensitivities
  • add properties of all of the above
annotationsArray of Annotation (object) or Blood Glucose Out of Range (object)(Annotation Array)[ 0 .. 100 ] itemsunique

An array of annotations.

archivedTimestring(date-time)(Date/Time)read-only

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
archivedDatasetIdstring(Data Set ID)[ 17 .. 37 ] characters^(upid_[0-9a-f]{12}|upid_[0-9a-f]{32}|[0-9a-f...
Example: "ce8cc5f7595575945f91fc6710db6fef"
associationsArray of Association (blob) (object) or Association (datum) (object) or Association (image) (object) or Association (url) (object)(Association Array)

An array of associations for the resource.

clockDriftOffsetinteger(int64)(Clock Drift Offset)[ -86400000 .. 86400000 ]

Clock drift offset, expressed as milliseconds.

Example: 0
conversionOffsetinteger(int64)(Conversion Offset)

Conversion offset, expressed as milliseconds.

Example: 0
createdTimestring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
createdUserIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-only

String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4

deduplicatorobject(Deduplicator Descriptor)
deletedTimestring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
deletedUserIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-only

String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4

deviceIdstring(Device ID)non-empty

Globally unique to device and repeatable with each upload, e.g. device make and model with serial number

Example: "MMT-1711:12345678"
deviceTimestring(Date/Time without Timezone)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$

RFC 3339 / ISO 8601 timestamp without timezone information

Example: "2017-02-06T02:37:46"
historyArray of objects(Event History [Proposed])

Revision history of the event

idstring(Data Set ID)[ 17 .. 37 ] characters^(upid_[0-9a-f]{12}|upid_[0-9a-f]{32}|[0-9a-f...required
Example: "ce8cc5f7595575945f91fc6710db6fef"
locationobject(Location)

Location information associated with the resource. One or both of name and gps must be specified.

modifiedTimestring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
modifiedUserIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-only

String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit UUID v4

notesArray of strings(Note Array)[ 1 .. 100 ] items

An array of 1 to 100 notes.

originobject(Origin)

External origin information for the source of the resource.

payloadobject(Payload)

Grab bag field for data that isn't yet part of the data model. The maximum size is 4K bytes.

sourcestring
Value"carelink"
tagsArray of strings(Tag Array)

An array of tags.

timestring(date-time)(Date/Time)required

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
timezonestring(Time Zone)

A string timezone name from the IANA timezone database

Example: "Europe/London"
timezoneOffsetinteger(int32)(Time Zone offset)[ -10080 .. 10080 ]

Time zone offset, expressed as positive or negative number of minutes from UTC.

Example: -420
typestring(Tidepool Data Type)required

Data type

Enum"pumpSettings""alert""basal""bloodKetone""bolus""cbg""cgmSettings""controllerSettings""controllerStatus""deviceEvent"
Example: "upload"
uploadIdstring(Upload ID)[ 17 .. 32 ] characters^([0-9a-f]{32}|upid_[0-9a-f]{12})$

An upload identifier; this field should be the uploadId of the corresponding upload record

Example: "0d92d5c1c22117a18f3620b9e24d3c06"
activeSchedulestring

A string value encoding the name of the PWD's active basal schedule.

basalScheduleobject
basalSchedulesobject

A set of key-value pairs encoding the PWD's programmed basal schedules, where each key is a basal schedule name and each value is an array of basal schedule segment objects.

bgTargetBlood Glucose Target Value (mg/dL) (object) or Blood Glucose Target Value (mmol/L) (object)(Blood Glucose Target)
One of:

Blood glucose target values, in mg/dL

bgTargetsobject
bolusobject
carbRationumber(double)[ 0 .. 250 ]

An integer encoding the grams of carbohydrate "covered" by one unit of insulin for the PWD.

carbRatiosobject

A set of key-value pairs encoding the PWD's programmed carb ratio schedules, where each key is a schedule name and each value is an array of carb ratio segment objects.

displayobject
firmwareVersionstring[ 1 .. 100 ] characters
Example: "1.2"
hardwareVersionstring[ 1 .. 100 ] characters
Example: "2.3r45"
insulinFormulationInsulin Formulation (object)(Insulin Formulation)
One of:
insulinSensitivityobject
insulinSensitivitiesobject
manufacturersArray of strings[ 0 .. 10 ] itemsunique
Example: ["Acme"]
modelstring[ 1 .. 100 ] characters
Example: "Pump A Lot"
namestring[ 1 .. 100 ] characters

The name of the pump, if known.

Example: "My Pump"
serialNumberstring[ 1 .. 100 ] characters

The serial number of the pump, if known.

sleepSchedulesArray of objects[ 0 .. 10 ] items
softwareVersionstring[ 1 .. 100 ] characters

The software version of the pump, if known.

Example: "3.4.5"
unitsobject
dosingEnabledboolean
bgTargetPreMealTargetobject
bgSafetyLimitnumber(double)[ 0 .. 1000 ]
Example: 75
insulinModelobject
overridePresetsobject
guidstringDeprecated

A string ID. Added to each event during data processing in the Tidepool Uploader or upon ingestion by the platform data ingestion service.

{ "annotations": [ {} ], "archivedTime": "2017-02-06T02:37:46Z", "archivedDatasetId": "ce8cc5f7595575945f91fc6710db6fef", "associations": [ {} ], "clockDriftOffset": 0, "conversionOffset": 0, "createdTime": "2017-02-06T02:37:46Z", "createdUserId": "string", "deduplicator": { "hash": "string", "version": "2.36.1", "name": "org.tidepool.uploader" }, "deletedTime": "2017-02-06T02:37:46Z", "deletedUserId": "string", "deviceId": "MMT-1711:12345678", "deviceTime": "2017-02-06T02:37:46", "guid": "string", "history": [ {} ], "id": "ce8cc5f7595575945f91fc6710db6fef", "location": { "name": "string", "gps": {} }, "modifiedTime": "2017-02-06T02:37:46Z", "modifiedUserId": "string", "notes": [ "string" ], "origin": { "id": "string", "name": "string", "payload": {}, "time": "2017-02-06T02:37:46Z", "type": "device", "version": "string" }, "payload": {}, "source": "carelink", "tags": [ "string" ], "time": "2017-02-06T02:37:46Z", "timezone": "Europe/London", "timezoneOffset": -420, "type": "pumpSettings", "uploadId": "0d92d5c1c22117a18f3620b9e24d3c06", "activeSchedule": "string", "basalSchedule": {}, "basalSchedules": {}, "bgTarget": { "high": 180, "low": 80 }, "bgTargets": {}, "bolus": { "amountMaximum": {}, "calculator": {}, "extended": {} }, "carbRatio": 250, "carbRatios": {}, "display": { "bloodGlucose": {} }, "firmwareVersion": "1.2", "hardwareVersion": "2.3r45", "insulinFormulation": { "compounds": [], "name": "string" }, "insulinSensitivity": {}, "insulinSensitivities": {}, "manufacturers": [ "Acme" ], "model": "Pump A Lot", "name": "My Pump", "serialNumber": "string", "sleepSchedules": [ {} ], "softwareVersion": "3.4.5", "units": { "bg": "mmol/L", "carb": "exchanges" }, "dosingEnabled": true, "bgTargetPreMealTarget": { "low": 1000, "high": 1000 }, "bgSafetyLimit": 75, "insulinModel": { "modelType": "rapidAdult", "modelTypeOther": "string", "actionDelay": 86400, "actionDuration": 86400, "actionPeakOffset": 86400 }, "overridePresets": { "property1": {}, "property2": {} } }