Skip to content

Confirmation 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/confirm.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.

Confirmations

Manage confirmations for account creation, sharing invites, etc.

Operations

Request

Sends account signup confirmation email.

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

Bodyapplication/json
curl -i -X POST \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/send/signup/{userId}' \
  -H 'Content-Type: application/json' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE' \
  -d '{}'

Responses

Success

Response
No content

Resend account signup confirmation email

Request

If a user didn't receive the confirmation email and logs in, they're directed to the confirmation-required page which can offer to resend the confirmation email.

Path
emailstring(email)(Email Address)>= 6 charactersrequired

Confirmation Email

Example: example@tidepool.org
curl -i -X POST \
  https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/resend/signup/example@tidepool.org

Responses

Success

Response
No content

Request

Marks the account as having been verified. This would be PUT by the web page at the link in the signup email.

Path
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired

Confirmation Key

Example: Sds2PHMALZrmt++JyD5mIjLkZruJldiM
Bodyapplication/json
passwordstring(password)(Password)[ 8 .. 72 ] characters^\S{8,72}$required

Password

Example: "correctbatteryhorsestaple"
birthdaystring(date)(Birthday)required
Example: "2012-08-30"
curl -i -X PUT \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/accept/signup/Sds2PHMALZrmt++JyD5mIjLkZruJldiM' \
  -H 'Content-Type: application/json' \
  -d '{
    "password": "correctbatteryhorsestaple",
    "birthday": "2012-08-30"
  }'

Responses

Success

Response
No content

Request

In the event that someone uses the wrong email address, the receiver could explicitly dismiss a signup

Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

Bodyapplication/json
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
curl -i -X PUT \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/dismiss/signup/{userId}' \
  -H 'Content-Type: application/json' \
  -d '{
    "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
  }'

Responses

Success

Response
No content

Request

Fetch latest account signup confirmation for the provided userId

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

curl -i -X GET \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/signup/{userId}' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE'

Responses

Single confirmation

Bodyapplication/json
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
typestring(Confirmation Type)required
Enum"password_reset""careteam_invitation""clinician_invitation""signup_confirmation""no_account"
statusstring(Confirmation Status)required
Enum"pending""completed""canceled""declined"
emailstring(email)(Email Address)>= 6 charactersrequired

An email address, as specified by RFC 5322.

Example: "example@tidepool.org"
creatorIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

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

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

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
modifiedstring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
creatorobject(Creator)
contextstring
restrictionsobject(Acceptance restrictions)
expiresAtstring(date-time)(Expiration Time)

If specified, the invitation will expire at the given date and time.

Example: "2024-01-30T08:11:00Z"
Response
application/json
{ "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM", "type": "password_reset", "status": "pending", "email": "example@tidepool.org", "creatorId": "string", "created": "2017-02-06T02:37:46Z", "modified": "2017-02-06T02:37:46Z", "creator": { "userid": "string", "profile": { … } }, "context": "string", "restrictions": { "canAccept": true, "requiredIdp": "string" }, "expiresAt": "2024-01-30T08:11:00Z" }

Upsert Account Signup Confirmation

Request

Add or refresh an account signup confirmation for the provided userId

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

Bodyapplication/json
curl -i -X POST \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/signup/{userId}' \
  -H 'Content-Type: application/json' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE' \
  -d '{}'

Responses

Single confirmation

Bodyapplication/json
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
typestring(Confirmation Type)required
Enum"password_reset""careteam_invitation""clinician_invitation""signup_confirmation""no_account"
statusstring(Confirmation Status)required
Enum"pending""completed""canceled""declined"
emailstring(email)(Email Address)>= 6 charactersrequired

An email address, as specified by RFC 5322.

Example: "example@tidepool.org"
creatorIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

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

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

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
modifiedstring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
creatorobject(Creator)
contextstring
restrictionsobject(Acceptance restrictions)
expiresAtstring(date-time)(Expiration Time)

If specified, the invitation will expire at the given date and time.

Example: "2024-01-30T08:11:00Z"
Response
application/json
{ "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM", "type": "password_reset", "status": "pending", "email": "example@tidepool.org", "creatorId": "string", "created": "2017-02-06T02:37:46Z", "modified": "2017-02-06T02:37:46Z", "creator": { "userid": "string", "profile": { … } }, "context": "string", "restrictions": { "canAccept": true, "requiredIdp": "string" }, "expiresAt": "2024-01-30T08:11:00Z" }

Request

Cancels the account signup.

Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

Bodyapplication/json
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
curl -i -X PUT \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/signup/{userId}' \
  -H 'Content-Type: application/json' \
  -d '{
    "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
  }'

Responses

Success

Response
No content

Request

If the request is correctly formed, always returns a 200, even if the email address was not found (this way it can't be used to validate email addresses). If the email address is found in the Tidepool system, this will:

  • Create a confirm record and a random key
  • Send an email with a link containing the key
Path
emailstring(email)(Email Address)>= 6 charactersrequired

Confirmation Email

Example: example@tidepool.org
curl -i -X POST \
  https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/forgot/example@tidepool.org

Responses

Success

Response
No content

Request

Accept the password change This endpoint will be invoked by the lost password screen with the key that was included in the URL of the lost password screen.

Bodyapplication/json
string(password)(Password)[ 8 .. 72 ] characters^\S{8,72}$

Password

curl -i -X PUT \
  https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/accept/forgot \
  -H 'Content-Type: application/json'

Responses

Error

Bodyapplication/json
codeinteger(int32)>= 100required
errorinteger
reasonstringrequired
Response
application/json
{ "code": 100, "error": 0, "reason": "string" }

Request

Sends an invitation to join the care team of the user identified by userId.

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

Bodyapplication/json
emailstring(email)(Email Address)>= 6 charactersrequired

An email address, as specified by RFC 5322.

Example: "example@tidepool.org"
permissionsobjectrequired
Example: {"note":{},"upload":{},"view":{}}
permissions.​noteobject
Example: {}
permissions.​uploadobject
Example: {}
permissions.​viewobject
Example: {}
nicknamestring

A user-friendly name for the recipient of the invitation.

Example: "Julia"
alertsConfigobject(alertsconfig.v1)non-empty

Configuration for alerts triggered in response to the status of a user's device and data.

curl -i -X POST \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/send/invite/{userId}' \
  -H 'Content-Type: application/json' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE' \
  -d '{
    "email": "example@tidepool.org",
    "permissions": {
      "note": {},
      "upload": {},
      "view": {}
    },
    "nickname": "Julia",
    "alertsConfig": {
      "urgentLow": {
        "enabled": false,
        "threshold": {
          "units": "mg/dL",
          "value": 105
        }
      },
      "low": {
        "enabled": false,
        "delay": 0,
        "repeat": 0,
        "threshold": {
          "units": "mg/dL",
          "value": 105
        }
      },
      "high": {
        "enabled": false,
        "delay": 0,
        "repeat": 0,
        "threshold": {
          "units": "mg/dL",
          "value": 105
        }
      },
      "noCommunication": {
        "enabled": false,
        "delay": 0
      },
      "notLooping": {
        "enabled": false,
        "delay": 0
      }
    }
  }'

Responses

Single confirmation

Bodyapplication/json
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
typestring(Confirmation Type)required
Enum"password_reset""careteam_invitation""clinician_invitation""signup_confirmation""no_account"
statusstring(Confirmation Status)required
Enum"pending""completed""canceled""declined"
emailstring(email)(Email Address)>= 6 charactersrequired

An email address, as specified by RFC 5322.

Example: "example@tidepool.org"
creatorIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

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

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

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
modifiedstring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
creatorobject(Creator)
contextstring
restrictionsobject(Acceptance restrictions)
expiresAtstring(date-time)(Expiration Time)

If specified, the invitation will expire at the given date and time.

Example: "2024-01-30T08:11:00Z"
Response
application/json
{ "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM", "type": "password_reset", "status": "pending", "email": "example@tidepool.org", "creatorId": "string", "created": "2017-02-06T02:37:46Z", "modified": "2017-02-06T02:37:46Z", "creator": { "userid": "string", "profile": { … } }, "context": "string", "restrictions": { "canAccept": true, "requiredIdp": "string" }, "expiresAt": "2024-01-30T08:11:00Z" }

Accept Invitation to Join Care Team

Request

Accepts the invitation to join a care team.

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

invitedBystring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Invited by User ID

Bodyapplication/json
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
curl -i -X PUT \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/accept/invite/{userId}/{invitedBy}' \
  -H 'Content-Type: application/json' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE' \
  -d '{
    "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
  }'

Responses

Success

Response
No content

Request

Returns the still-pending invitations for an account you own or are an admin of. These are the invitations you have sent that have not been accepted. There is no way to tell if an invitation has been ignored.

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

curl -i -X GET \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/invite/{userId}' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE'

Responses

List of confirmations

Bodyapplication/jsonArray [
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
typestring(Confirmation Type)required
Enum"password_reset""careteam_invitation""clinician_invitation""signup_confirmation""no_account"
statusstring(Confirmation Status)required
Enum"pending""completed""canceled""declined"
emailstring(email)(Email Address)>= 6 charactersrequired

An email address, as specified by RFC 5322.

Example: "example@tidepool.org"
creatorIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

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

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

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
modifiedstring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
creatorobject(Creator)
contextstring
restrictionsobject(Acceptance restrictions)
expiresAtstring(date-time)(Expiration Time)

If specified, the invitation will expire at the given date and time.

Example: "2024-01-30T08:11:00Z"
]
Response
application/json
[ { "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM", "type": "password_reset", "status": "pending", "email": "example@tidepool.org", "creatorId": "string", "created": "2017-02-06T02:37:46Z", "modified": "2017-02-06T02:37:46Z", "creator": { … }, "context": "string", "restrictions": { … }, "expiresAt": "2024-01-30T08:11:00Z" } ]

Get Received Care Team Invitations

Request

Get list of received invitations for logged in user. These are invitations that have been sent to this user but not yet acted upon.

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

curl -i -X GET \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/invitations/{userId}' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE'

Responses

List of confirmations

Bodyapplication/jsonArray [
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
typestring(Confirmation Type)required
Enum"password_reset""careteam_invitation""clinician_invitation""signup_confirmation""no_account"
statusstring(Confirmation Status)required
Enum"pending""completed""canceled""declined"
emailstring(email)(Email Address)>= 6 charactersrequired

An email address, as specified by RFC 5322.

Example: "example@tidepool.org"
creatorIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

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

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

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
modifiedstring(date-time)(Date/Time)

RFC 3339 / ISO 8601 timestamp with timezone information

Example: "2017-02-06T02:37:46Z"
creatorobject(Creator)
contextstring
restrictionsobject(Acceptance restrictions)
expiresAtstring(date-time)(Expiration Time)

If specified, the invitation will expire at the given date and time.

Example: "2024-01-30T08:11:00Z"
]
Response
application/json
[ { "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM", "type": "password_reset", "status": "pending", "email": "example@tidepool.org", "creatorId": "string", "created": "2017-02-06T02:37:46Z", "modified": "2017-02-06T02:37:46Z", "creator": { … }, "context": "string", "restrictions": { … }, "expiresAt": "2024-01-30T08:11:00Z" } ]

Request

Declines the invitation to join a care team.

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

invitedBystring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Invited by User ID

Bodyapplication/json
keystring(Confirmation key that uniquely identifies each confirmation)= 32 charactersrequired
Example: "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
curl -i -X PUT \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/dismiss/invite/{userId}/{invitedBy}' \
  -H 'Content-Type: application/json' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE' \
  -d '{
    "key": "Sds2PHMALZrmt++JyD5mIjLkZruJldiM"
  }'

Responses

Success

Response
No content

Request

Cancels an invitation that has been sent to an email address.

Security
sessionToken
Path
userIdstring(Tidepool User ID)^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-...read-onlyrequired

Tidepool User ID

invitedBystring(email)(Email Address)>= 6 charactersrequired

Invited by Email Address

Example: example@tidepool.org
curl -i -X PUT \
  'https://tidepool.redocly.app/_mock/reference/confirm.v1/confirm/{userId}/invited/example@tidepool.org' \
  -H 'X-Tidepool-Session-Token: YOUR_API_KEY_HERE'

Responses

Success

Response
No content