Skip to content

Clinics API (1.0)

Web service that stores information about clinics, clinicians and their patients

Download OpenAPI description
Languages
Servers
Mock server

https://tidepool.redocly.app/_mock/reference/clinic.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/

Clinics

Manage clinics, clinians and patients.

Operations

Confirmations

Manage confirmations for account creation, sharing invites, etc.

Operations

Internal

APIs intended for internal use by Tidepool.

Operations

Request

Returns list of all clinician/clinic relationships in the system. Internal endpoint used for reporting purposes.

Security
sessionToken
Query
offsetinteger>= 0
limitinteger>= 1
Default 10
createdTimeStartstring(date-time)

Return records created after the given date (inclusive)

createdTimeEndstring(date-time)

Return records created before the given date (exclusive)

curl -i -X GET \
  'https://tidepool.redocly.app/_mock/reference/clinic.v1/v1/clinicians?offset=0&limit=10&createdTimeStart=2019-08-24T14%3A15%3A22Z&createdTimeEnd=2019-08-24T14%3A15%3A22Z' \
  -H 'x-tidepool-session-token: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
clinicianobject(Clinician)required

The id may be empty if the clinician invite has not been accepted.

clinician.​idstring(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

clinician.​inviteIdstring

The id of the invite if it hasn't been accepted

clinician.​emailstring(email)required
clinician.​namestringnon-empty

The name of the clinician

clinician.​rolesArray of strings(Clinician Permissions)non-emptyuniquerequired
Items Enum"CLINIC_ADMIN""CLINIC_MEMBER""PRESCRIBER"
clinician.​createdTimestring(date-time)read-onlyrequired
clinician.​updatedTimestring(date-time)read-onlyrequired
clinicobject(Clinic)required

Clinic

clinic.​idstring(Clinic ID)= 24 characters^[a-f0-9]{24}$read-onlyrequired

Clinic identifier.

Example: "2fe2488217ee43e1b2e83c2f"
clinic.​addressstring(Street Address)non-empty

Street address.

clinic.​citystring(City)non-empty

City name.

Example: "Palo Alto"
clinic.​postalCodestring(Postal Code)non-empty

Postal code. In the U.S., typically the zip code such as 94301 or 94301-1704.

Example: "94301"
clinic.​statestring(State)non-empty

State or province. In the U.S., typically something like CA or California.

Example: "CA"
clinic.​countrystring(Country)non-empty

Country name.

Example: "USA"
clinic.​patientTagsArray of objects(Patient Tag)
clinic.​sitesArray of objects(Site)
clinic.​lastDeletedPatientTagobject(Patient Tag)
clinic.​phoneNumbersArray of objects(Phone phoneNumbers)non-emptyunique

An array of phone numbers.

Example: [{"type":"main","number":"+1 (555) 555-1212"}]
clinic.​clinicTypestringnon-empty
Enum"provider_practice""healthcare_system""veterinary_clinic""other""researcher"
clinic.​clinicSizestring
Enum"0-249""250-499""500-999""1000+"
clinic.​namestring(Clinic Name)non-emptyrequired

Name of the clinic.

clinic.​shareCodestring(Clinic Share Code)^[ABCDEFGHJKLMNPQRSTUVWXYZ23456789]{4}-[ABCDE...read-onlyrequired

Globally unique share code for a clinic. The share code is 3 groups of 4 uppercase alphanumeric characters in each group. Ambiguous characters such as I and 1, or O and 0 are excluded.

clinic.​canMigratebooleanread-onlyrequired
clinic.​websitestring(uri)
clinic.​createdTimestring(date-time)read-onlyrequired
clinic.​updatedTimestring(date-time)read-onlyrequired
clinic.​tierDescriptionstringnon-emptyread-onlyrequired
Example: "Free"
clinic.​tierstringnon-emptyread-onlyrequired
Example: "tier0100"
clinic.​preferredBgUnitsstringrequired
Enum"mg/dL""mmol/L"
clinic.​suppressedNotificationsobject(Suppressed Notifications)
clinic.​timezonestring(Clinic Timezone)
Enum"Africa/Abidjan""Africa/Accra""Africa/Addis_Ababa""Africa/Algiers""Africa/Asmara""Africa/Asmera""Africa/Bamako""Africa/Bangui""Africa/Banjul""Africa/Bissau"
]
Response
application/json
[ { "clinician": { … }, "clinic": { … } } ]

Request

Internal endpoint which updates the summary in all patient records which match the user id.

Security
sessionToken
Path
patientIdstring^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...required
Bodyapplication/json
cgmStatsobject(cgmstats.v1)

A summary of a users recent CGM glucose values

bgmStatsobject(bgmstats.v1)

A summary of a users recent BGM glucose values

curl -i -X POST \
  'https://tidepool.redocly.app/_mock/reference/clinic.v1/v1/patients/{patientId}/summary' \
  -H 'Content-Type: application/json' \
  -H 'x-tidepool-session-token: YOUR_API_KEY_HERE' \
  -d '{
    "cgmStats": {
      "id": "2fe2488217ee43e1b2e83c2f",
      "config": {
        "schemaVersion": 0,
        "highGlucoseThreshold": 0,
        "veryHighGlucoseThreshold": 0,
        "lowGlucoseThreshold": 0,
        "veryLowGlucoseThreshold": 0
      },
      "dates": {
        "lastUpdatedDate": "2019-08-24T14:15:22Z",
        "lastUpdatedReason": [
          "string"
        ],
        "hasFirstData": true,
        "firstData": "2019-08-24T14:15:22Z",
        "hasLastData": true,
        "lastData": "2019-08-24T14:15:22Z",
        "hasLastUploadDate": true,
        "lastUploadDate": "2019-08-24T14:15:22Z",
        "hasOutdatedSince": true,
        "outdatedSince": "2019-08-24T14:15:22Z",
        "outdatedSinceLimit": "2019-08-24T14:15:22Z",
        "outdatedReason": [
          "string"
        ]
      },
      "periods": {
        "property1": {
          "min": 3,
          "minDelta": 3,
          "max": 8,
          "maxDelta": 8,
          "hasAverageGlucoseMmol": true,
          "averageGlucoseMmol": 5.5,
          "averageGlucoseMmolDelta": 2.5,
          "hasGlucoseManagementIndicator": true,
          "glucoseManagementIndicator": 7.5,
          "glucoseManagementIndicatorDelta": 7.5,
          "hasTimeInTargetPercent": true,
          "timeInTargetPercent": 0.35,
          "timeInTargetPercentDelta": 0.2,
          "hasTimeInTargetMinutes": true,
          "timeInTargetMinutes": 200,
          "timeInTargetMinutesDelta": 20,
          "hasTimeInTargetRecords": true,
          "timeInTargetRecords": 10,
          "timeInTargetRecordsDelta": 5,
          "hasTimeInHighPercent": true,
          "timeInHighPercent": 0.35,
          "timeInHighPercentDelta": 0.2,
          "hasTimeInHighMinutes": true,
          "timeInHighMinutes": 200,
          "timeInHighMinutesDelta": 20,
          "hasTimeInHighRecords": true,
          "timeInHighRecords": 10,
          "timeInHighRecordsDelta": 5,
          "hasTimeInVeryHighPercent": true,
          "timeInVeryHighPercent": 0.35,
          "timeInVeryHighPercentDelta": 0.2,
          "hasTimeInVeryHighMinutes": true,
          "timeInVeryHighMinutes": 200,
          "timeInVeryHighMinutesDelta": 5,
          "hasTimeInVeryHighRecords": true,
          "timeInVeryHighRecords": 10,
          "timeInVeryHighRecordsDelta": 5,
          "hasTimeInExtremeHighPercent": true,
          "timeInExtremeHighPercent": 0.35,
          "timeInExtremeHighPercentDelta": 0.2,
          "hasTimeInExtremeHighMinutes": true,
          "timeInExtremeHighMinutes": 200,
          "timeInExtremeHighMinutesDelta": 5,
          "hasTimeInExtremeHighRecords": true,
          "timeInExtremeHighRecords": 10,
          "timeInExtremeHighRecordsDelta": 5,
          "hasTimeInAnyHighPercent": true,
          "timeInAnyHighPercent": 0.35,
          "timeInAnyHighPercentDelta": 0.2,
          "hasTimeInAnyHighMinutes": true,
          "timeInAnyHighMinutes": 200,
          "timeInAnyHighMinutesDelta": 5,
          "hasTimeInAnyHighRecords": true,
          "timeInAnyHighRecords": 10,
          "timeInAnyHighRecordsDelta": 5,
          "hasTimeInLowPercent": true,
          "timeInLowPercent": 0.35,
          "timeInLowPercentDelta": 0.2,
          "hasTimeInLowMinutes": true,
          "timeInLowMinutes": 200,
          "timeInLowMinutesDelta": 5,
          "hasTimeInLowRecords": true,
          "timeInLowRecords": 10,
          "timeInLowRecordsDelta": 5,
          "hasTimeInVeryLowPercent": true,
          "timeInVeryLowPercent": 0.35,
          "timeInVeryLowPercentDelta": 0.2,
          "hasTimeInVeryLowMinutes": true,
          "timeInVeryLowMinutes": 200,
          "timeInVeryLowMinutesDelta": 5,
          "hasTimeInVeryLowRecords": true,
          "timeInVeryLowRecords": 10,
          "timeInVeryLowRecordsDelta": 5,
          "hasTimeInAnyLowPercent": true,
          "timeInAnyLowPercent": 0.35,
          "timeInAnyLowPercentDelta": 0.2,
          "hasTimeInAnyLowMinutes": true,
          "timeInAnyLowMinutes": 200,
          "timeInAnyLowMinutesDelta": 5,
          "hasTimeInAnyLowRecords": true,
          "timeInAnyLowRecords": 10,
          "timeInAnyLowRecordsDelta": 5,
          "hasTimeCGMUsePercent": true,
          "timeCGMUsePercent": 0.35,
          "timeCGMUsePercentDelta": 0.2,
          "hasTimeCGMUseMinutes": true,
          "timeCGMUseMinutes": 200,
          "timeCGMUseMinutesDelta": 5,
          "hasTimeCGMUseRecords": true,
          "timeCGMUseRecords": 10,
          "timeCGMUseRecordsDelta": 5,
          "hasTotalRecords": true,
          "totalRecords": 10,
          "totalRecordsDelta": 10,
          "hasAverageDailyRecords": true,
          "averageDailyRecords": 3.5,
          "averageDailyRecordsDelta": 2.5,
          "standardDeviation": 2.5,
          "standardDeviationDelta": 2.5,
          "coefficientOfVariation": 2.5,
          "coefficientOfVariationDelta": 2.5,
          "hoursWithData": 2,
          "hoursWithDataDelta": 2,
          "daysWithData": 2,
          "daysWithDataDelta": 2
        },
        "property2": {
          "min": 3,
          "minDelta": 3,
          "max": 8,
          "maxDelta": 8,
          "hasAverageGlucoseMmol": true,
          "averageGlucoseMmol": 5.5,
          "averageGlucoseMmolDelta": 2.5,
          "hasGlucoseManagementIndicator": true,
          "glucoseManagementIndicator": 7.5,
          "glucoseManagementIndicatorDelta": 7.5,
          "hasTimeInTargetPercent": true,
          "timeInTargetPercent": 0.35,
          "timeInTargetPercentDelta": 0.2,
          "hasTimeInTargetMinutes": true,
          "timeInTargetMinutes": 200,
          "timeInTargetMinutesDelta": 20,
          "hasTimeInTargetRecords": true,
          "timeInTargetRecords": 10,
          "timeInTargetRecordsDelta": 5,
          "hasTimeInHighPercent": true,
          "timeInHighPercent": 0.35,
          "timeInHighPercentDelta": 0.2,
          "hasTimeInHighMinutes": true,
          "timeInHighMinutes": 200,
          "timeInHighMinutesDelta": 20,
          "hasTimeInHighRecords": true,
          "timeInHighRecords": 10,
          "timeInHighRecordsDelta": 5,
          "hasTimeInVeryHighPercent": true,
          "timeInVeryHighPercent": 0.35,
          "timeInVeryHighPercentDelta": 0.2,
          "hasTimeInVeryHighMinutes": true,
          "timeInVeryHighMinutes": 200,
          "timeInVeryHighMinutesDelta": 5,
          "hasTimeInVeryHighRecords": true,
          "timeInVeryHighRecords": 10,
          "timeInVeryHighRecordsDelta": 5,
          "hasTimeInExtremeHighPercent": true,
          "timeInExtremeHighPercent": 0.35,
          "timeInExtremeHighPercentDelta": 0.2,
          "hasTimeInExtremeHighMinutes": true,
          "timeInExtremeHighMinutes": 200,
          "timeInExtremeHighMinutesDelta": 5,
          "hasTimeInExtremeHighRecords": true,
          "timeInExtremeHighRecords": 10,
          "timeInExtremeHighRecordsDelta": 5,
          "hasTimeInAnyHighPercent": true,
          "timeInAnyHighPercent": 0.35,
          "timeInAnyHighPercentDelta": 0.2,
          "hasTimeInAnyHighMinutes": true,
          "timeInAnyHighMinutes": 200,
          "timeInAnyHighMinutesDelta": 5,
          "hasTimeInAnyHighRecords": true,
          "timeInAnyHighRecords": 10,
          "timeInAnyHighRecordsDelta": 5,
          "hasTimeInLowPercent": true,
          "timeInLowPercent": 0.35,
          "timeInLowPercentDelta": 0.2,
          "hasTimeInLowMinutes": true,
          "timeInLowMinutes": 200,
          "timeInLowMinutesDelta": 5,
          "hasTimeInLowRecords": true,
          "timeInLowRecords": 10,
          "timeInLowRecordsDelta": 5,
          "hasTimeInVeryLowPercent": true,
          "timeInVeryLowPercent": 0.35,
          "timeInVeryLowPercentDelta": 0.2,
          "hasTimeInVeryLowMinutes": true,
          "timeInVeryLowMinutes": 200,
          "timeInVeryLowMinutesDelta": 5,
          "hasTimeInVeryLowRecords": true,
          "timeInVeryLowRecords": 10,
          "timeInVeryLowRecordsDelta": 5,
          "hasTimeInAnyLowPercent": true,
          "timeInAnyLowPercent": 0.35,
          "timeInAnyLowPercentDelta": 0.2,
          "hasTimeInAnyLowMinutes": true,
          "timeInAnyLowMinutes": 200,
          "timeInAnyLowMinutesDelta": 5,
          "hasTimeInAnyLowRecords": true,
          "timeInAnyLowRecords": 10,
          "timeInAnyLowRecordsDelta": 5,
          "hasTimeCGMUsePercent": true,
          "timeCGMUsePercent": 0.35,
          "timeCGMUsePercentDelta": 0.2,
          "hasTimeCGMUseMinutes": true,
          "timeCGMUseMinutes": 200,
          "timeCGMUseMinutesDelta": 5,
          "hasTimeCGMUseRecords": true,
          "timeCGMUseRecords": 10,
          "timeCGMUseRecordsDelta": 5,
          "hasTotalRecords": true,
          "totalRecords": 10,
          "totalRecordsDelta": 10,
          "hasAverageDailyRecords": true,
          "averageDailyRecords": 3.5,
          "averageDailyRecordsDelta": 2.5,
          "standardDeviation": 2.5,
          "standardDeviationDelta": 2.5,
          "coefficientOfVariation": 2.5,
          "coefficientOfVariationDelta": 2.5,
          "hoursWithData": 2,
          "hoursWithDataDelta": 2,
          "daysWithData": 2,
          "daysWithDataDelta": 2
        }
      }
    },
    "bgmStats": {
      "id": "2fe2488217ee43e1b2e83c2f",
      "config": {
        "schemaVersion": 0,
        "highGlucoseThreshold": 0,
        "veryHighGlucoseThreshold": 0,
        "lowGlucoseThreshold": 0,
        "veryLowGlucoseThreshold": 0
      },
      "dates": {
        "lastUpdatedDate": "2019-08-24T14:15:22Z",
        "lastUpdatedReason": [
          "string"
        ],
        "hasFirstData": true,
        "firstData": "2019-08-24T14:15:22Z",
        "hasLastData": true,
        "lastData": "2019-08-24T14:15:22Z",
        "hasLastUploadDate": true,
        "lastUploadDate": "2019-08-24T14:15:22Z",
        "hasOutdatedSince": true,
        "outdatedSince": "2019-08-24T14:15:22Z",
        "outdatedSinceLimit": "2019-08-24T14:15:22Z",
        "outdatedReason": [
          "string"
        ]
      },
      "periods": {
        "property1": {
          "min": 3,
          "minDelta": 3,
          "max": 8,
          "maxDelta": 8,
          "hasAverageGlucoseMmol": true,
          "averageGlucoseMmol": 5.5,
          "averageGlucoseMmolDelta": 2.5,
          "hasTimeInTargetPercent": true,
          "timeInTargetPercent": 0.35,
          "timeInTargetPercentDelta": 0.2,
          "hasTimeInTargetRecords": true,
          "timeInTargetRecords": 10,
          "timeInTargetRecordsDelta": 5,
          "hasTimeInHighPercent": true,
          "timeInHighPercent": 0.35,
          "timeInHighPercentDelta": 0.2,
          "hasTimeInHighRecords": true,
          "timeInHighRecords": 10,
          "timeInHighRecordsDelta": 5,
          "hasTimeInVeryHighPercent": true,
          "timeInVeryHighPercent": 0.35,
          "timeInVeryHighPercentDelta": 0.2,
          "hasTimeInVeryHighRecords": true,
          "timeInVeryHighRecords": 10,
          "timeInVeryHighRecordsDelta": 5,
          "hasTimeInExtremeHighPercent": true,
          "timeInExtremeHighPercent": 0.35,
          "timeInExtremeHighPercentDelta": 0.2,
          "hasTimeInExtremeHighRecords": true,
          "timeInExtremeHighRecords": 10,
          "timeInExtremeHighRecordsDelta": 5,
          "hasTimeInAnyHighPercent": true,
          "timeInAnyHighPercent": 0.35,
          "timeInAnyHighPercentDelta": 0.2,
          "hasTimeInAnyHighRecords": true,
          "timeInAnyHighRecords": 10,
          "timeInAnyHighRecordsDelta": 5,
          "hasTimeInLowPercent": true,
          "timeInLowPercent": 0.35,
          "timeInLowPercentDelta": 0.2,
          "hasTimeInLowRecords": true,
          "timeInLowRecords": 10,
          "timeInLowRecordsDelta": 5,
          "hasTimeInVeryLowPercent": true,
          "timeInVeryLowPercent": 0.35,
          "timeInVeryLowPercentDelta": 0.2,
          "hasTimeInVeryLowRecords": true,
          "timeInVeryLowRecords": 10,
          "timeInVeryLowRecordsDelta": 5,
          "hasTimeInAnyLowPercent": true,
          "timeInAnyLowPercent": 0.35,
          "timeInAnyLowPercentDelta": 0.2,
          "hasTimeInAnyLowRecords": true,
          "timeInAnyLowRecords": 10,
          "timeInAnyLowRecordsDelta": 5,
          "hasTotalRecords": true,
          "totalRecords": 10,
          "totalRecordsDelta": 10,
          "hasAverageDailyRecords": true,
          "averageDailyRecords": 3.5,
          "averageDailyRecordsDelta": 2.5,
          "standardDeviation": 2.5,
          "standardDeviationDelta": 2.5,
          "coefficientOfVariation": 2.5,
          "coefficientOfVariationDelta": 2.5,
          "daysWithData": 2,
          "daysWithDataDelta": 2
        },
        "property2": {
          "min": 3,
          "minDelta": 3,
          "max": 8,
          "maxDelta": 8,
          "hasAverageGlucoseMmol": true,
          "averageGlucoseMmol": 5.5,
          "averageGlucoseMmolDelta": 2.5,
          "hasTimeInTargetPercent": true,
          "timeInTargetPercent": 0.35,
          "timeInTargetPercentDelta": 0.2,
          "hasTimeInTargetRecords": true,
          "timeInTargetRecords": 10,
          "timeInTargetRecordsDelta": 5,
          "hasTimeInHighPercent": true,
          "timeInHighPercent": 0.35,
          "timeInHighPercentDelta": 0.2,
          "hasTimeInHighRecords": true,
          "timeInHighRecords": 10,
          "timeInHighRecordsDelta": 5,
          "hasTimeInVeryHighPercent": true,
          "timeInVeryHighPercent": 0.35,
          "timeInVeryHighPercentDelta": 0.2,
          "hasTimeInVeryHighRecords": true,
          "timeInVeryHighRecords": 10,
          "timeInVeryHighRecordsDelta": 5,
          "hasTimeInExtremeHighPercent": true,
          "timeInExtremeHighPercent": 0.35,
          "timeInExtremeHighPercentDelta": 0.2,
          "hasTimeInExtremeHighRecords": true,
          "timeInExtremeHighRecords": 10,
          "timeInExtremeHighRecordsDelta": 5,
          "hasTimeInAnyHighPercent": true,
          "timeInAnyHighPercent": 0.35,
          "timeInAnyHighPercentDelta": 0.2,
          "hasTimeInAnyHighRecords": true,
          "timeInAnyHighRecords": 10,
          "timeInAnyHighRecordsDelta": 5,
          "hasTimeInLowPercent": true,
          "timeInLowPercent": 0.35,
          "timeInLowPercentDelta": 0.2,
          "hasTimeInLowRecords": true,
          "timeInLowRecords": 10,
          "timeInLowRecordsDelta": 5,
          "hasTimeInVeryLowPercent": true,
          "timeInVeryLowPercent": 0.35,
          "timeInVeryLowPercentDelta": 0.2,
          "hasTimeInVeryLowRecords": true,
          "timeInVeryLowRecords": 10,
          "timeInVeryLowRecordsDelta": 5,
          "hasTimeInAnyLowPercent": true,
          "timeInAnyLowPercent": 0.35,
          "timeInAnyLowPercentDelta": 0.2,
          "hasTimeInAnyLowRecords": true,
          "timeInAnyLowRecords": 10,
          "timeInAnyLowRecordsDelta": 5,
          "hasTotalRecords": true,
          "totalRecords": 10,
          "totalRecordsDelta": 10,
          "hasAverageDailyRecords": true,
          "averageDailyRecords": 3.5,
          "averageDailyRecordsDelta": 2.5,
          "standardDeviation": 2.5,
          "standardDeviationDelta": 2.5,
          "coefficientOfVariation": 2.5,
          "coefficientOfVariationDelta": 2.5,
          "daysWithData": 2,
          "daysWithDataDelta": 2
        }
      }
    }
  }'

Responses

OK

Request

Internal endpoint which deletes the summary in all patient records which match the summary id.

Security
sessionToken
Path
summaryIdstring(Summary ID)[ 0 .. 24 ] characters^[a-f0-9]{0,24}$required

Summary Unique Identifier

Example: 2fe2488217ee43e1b2e83c2f
curl -i -X DELETE \
  https://tidepool.redocly.app/_mock/reference/clinic.v1/v1/summaries/2fe2488217ee43e1b2e83c2f/clinics \
  -H 'x-tidepool-session-token: YOUR_API_KEY_HERE'

Responses

OK

Redox

Public endpoints invoked by Redox.

Operations