{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "/api/v1"
    }
  ],
  "info": {
    "title": "Nightscout API",
    "description": "Own your DData with the Nightscout API",
    "version": "14.2.3",
    "license": {
      "name": "AGPL 3",
      "url": "https://www.gnu.org/licenses/agpl.txt"
    }
  },
  "security": [
    {
      "api_secret": [],
      "token_in_url": [],
      "jwtoken": []
    }
  ],
  "paths": {
    "/entries/{spec}": {
      "get": {
        "summary": "All Entries matching query",
        "description": "The Entries endpoint returns information about the\nNightscout entries.\n",
        "parameters": [
          {
            "name": "spec",
            "in": "path",
            "description": "entry id, such as `55cf81bc436037528ec75fa5` or a type filter such\nas `sgv`, `mbg`, etc.\n",
            "required": true,
            "schema": {
              "type": "string",
              "default": "sgv"
            }
          },
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for\nexample `find[dateString][$gte]=2015-08-27`.  All find parameters\nare interpreted as strings.\n",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Entries"
        ],
        "responses": {
          "200": {
            "description": "An array of entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entries"
                }
              }
            }
          },
          "default": {
            "description": "Entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entries"
                }
              }
            }
          }
        }
      }
    },
    "/slice/{storage}/{field}/{type}/{prefix}/{regex}": {
      "get": {
        "summary": "All Entries matching query",
        "description": "The Entries endpoint returns information about the Nightscout entries.",
        "parameters": [
          {
            "name": "storage",
            "in": "path",
            "description": "Prefix to use in constructing a prefix-based regex, default is `entries`.",
            "required": true,
            "schema": {
              "type": "string",
              "default": "entries"
            }
          },
          {
            "name": "field",
            "in": "path",
            "description": "Name of the field to use Regex against in query object, default is `dateString`.",
            "required": true,
            "schema": {
              "type": "string",
              "default": "dateString"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The type field to search against, default is sgv.",
            "required": true,
            "schema": {
              "type": "string",
              "default": "sgv"
            }
          },
          {
            "name": "prefix",
            "in": "path",
            "description": "Prefix to use in constructing a prefix-based regex.",
            "required": true,
            "schema": {
              "type": "string",
              "default": "2015"
            }
          },
          {
            "name": "regex",
            "in": "path",
            "description": "Tail part of regexp to use in expanding/construccting a query object.\nRegexp also has bash-style brace and glob expansion applied to it,\ncreating ways to search for modal times of day, perhaps using\nsomething like this syntax: `T{15..17}:.*`, this would search for\nall records from 3pm to 5pm.\n",
            "required": true,
            "schema": {
              "type": "string",
              "default": ".*"
            }
          },
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for\nexample `find[dateString][$gte]=2015-08-27`.  All find parameters\nare interpreted as strings.\n",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Entries"
        ],
        "responses": {
          "200": {
            "description": "An array of entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entries"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/echo/{storage}/{spec}": {
      "get": {
        "summary": "View generated Mongo Query object",
        "description": "Information about the mongo query object created by the query.\n",
        "parameters": [
          {
            "name": "storage",
            "in": "path",
            "description": "`entries`, or `treatments` to select the storage layer.\n",
            "required": true,
            "schema": {
              "type": "string",
              "default": "sgv"
            }
          },
          {
            "name": "spec",
            "in": "path",
            "description": "entry id, such as `55cf81bc436037528ec75fa5` or a type filter such\nas `sgv`, `mbg`, etc.\nThis parameter is optional.\n",
            "required": true,
            "schema": {
              "type": "string",
              "default": "sgv"
            }
          },
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for\nexample `find[dateString][$gte]=2015-08-27`.  All find parameters\nare interpreted as strings.\n",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Entries",
          "Debug"
        ],
        "responses": {
          "200": {
            "description": "An array of entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MongoQuery"
                }
              }
            }
          }
        }
      }
    },
    "/times/echo/{prefix}/{regex}": {
      "get": {
        "summary": "Echo the query object to be used.",
        "description": "Echo debug information about the query object constructed.",
        "parameters": [
          {
            "name": "prefix",
            "in": "path",
            "description": "Prefix to use in constructing a prefix-based regex.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regex",
            "in": "path",
            "description": "Tail part of regexp to use in expanding/construccting a query object.\nRegexp also has bash-style brace and glob expansion applied to it,\ncreating ways to search for modal times of day, perhaps using\nsomething like this syntax: `T{15..17}:.*`, this would search for\nall records from 3pm to 5pm.\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for example `find[dateString][$gte]=2015-08-27`.  All find parameters are interpreted as strings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Entries",
          "Debug"
        ],
        "responses": {
          "200": {
            "description": "An array of entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MongoQuery"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/times/{prefix}/{regex}": {
      "get": {
        "summary": "All Entries matching query",
        "description": "The Entries endpoint returns information about the Nightscout entries.",
        "parameters": [
          {
            "name": "prefix",
            "in": "path",
            "description": "Prefix to use in constructing a prefix-based regex.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regex",
            "in": "path",
            "description": "Tail part of regexp to use in expanding/construccting a query object.\nRegexp also has bash-style brace and glob expansion applied to it,\ncreating ways to search for modal times of day, perhaps using\nsomething like this syntax: `T{15..17}:.*`, this would search for\nall records from 3pm to 5pm.\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for example `find[dateString][$gte]=2015-08-27`.  All find parameters are interpreted as strings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Entries"
        ],
        "responses": {
          "200": {
            "description": "An array of entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entries"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/entries": {
      "get": {
        "summary": "All Entries matching query",
        "description": "The Entries endpoint returns information about the Nightscout entries.",
        "parameters": [
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for example `find[dateString][$gte]=2015-08-27`.  All find parameters are interpreted as strings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Entries"
        ],
        "responses": {
          "200": {
            "description": "An array of entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entries"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Entries"
        ],
        "summary": "Add new entries.",
        "description": "",
        "operationId": "addEntries",
        "responses": {
          "200": {
            "description": "Rejected list of entries.  Empty list is success."
          },
          "405": {
            "description": "Invalid input"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Entries"
              }
            },
            "text/plain": {
              "schema": {
                "$ref": "#/components/schemas/Entries"
              }
            }
          },
          "description": "Entries to be uploaded.",
          "required": true
        }
      },
      "delete": {
        "tags": [
          "Entries"
        ],
        "summary": "Delete entries matching query.",
        "description": "Remove entries, same search syntax as GET.",
        "operationId": "remove",
        "parameters": [
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for example `find[dateString][$gte]=2015-08-27`.  All find parameters are interpreted as strings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Empty list is success."
          }
        }
      }
    },
    "/treatments": {
      "get": {
        "summary": "Treatments",
        "description": "The Treatments endpoint returns information about the Nightscout treatments.",
        "tags": [
          "Treatments"
        ],
        "parameters": [
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, supports nested query syntax.  Examples `find[insulin][$gte]=3` `find[carb][$gte]=100` `find[eventType]=Correction+Bolus` All find parameters are interpreted as strings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An array of treatments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Treatments"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Treatments"
        ],
        "summary": "Add new treatments.",
        "description": "",
        "operationId": "addTreatments",
        "responses": {
          "200": {
            "description": "Rejected list of treatments.  Empty list is success."
          },
          "405": {
            "description": "Invalid input"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Treatments"
              }
            }
          },
          "description": "Treatments to be uploaded.",
          "required": true
        }
      },
      "delete": {
        "tags": [
          "Treatments"
        ],
        "summary": "Delete treatments matching query.",
        "description": "Remove treatments, same search syntax as GET.",
        "operationId": "remove",
        "parameters": [
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find treatments to delete, support nested query syntax, for example `find[insulin][$gte]=3`. All find parameters are interpreted as strings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of entries to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Empty list is success."
          }
        }
      }
    },
    "/treatments/{spec}": {
      "delete": {
        "summary": "Delete treatments record with id provided in spec",
        "description": "The Treatments endpoint returns information about the\nNightscout devicestatus records.\n",
        "parameters": [
          {
            "name": "spec",
            "in": "path",
            "description": "treatment id, such as `55cf81bc436037528ec75fa5`\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Treatments"
        ],
        "responses": {
          "200": {
            "description": "A status record of the delete.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteStatus"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/profile": {
      "get": {
        "summary": "Profile",
        "description": "The Profile endpoint returns information about the Nightscout Treatment Profiles.",
        "tags": [
          "Profile"
        ],
        "responses": {
          "200": {
            "description": "An array of treatments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Profile"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/status": {
      "get": {
        "summary": "Status",
        "description": "Server side status, default settings and capabilities.",
        "tags": [
          "Status"
        ],
        "responses": {
          "200": {
            "description": "Server capabilities and status.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/devicestatus/": {
      "get": {
        "summary": "All Devicestatuses matching query",
        "description": "The Devicestatus endpoint returns information about the Nightscout devicestatus records.",
        "parameters": [
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for example `find[dateString][$gte]=2015-08-27`.  All find parameters are interpreted as strings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Number of devicestatus records to return.",
            "required": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Devicestatus"
        ],
        "responses": {
          "200": {
            "description": "An array of devicestatus entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Devicestatuses"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Devicestatus"
        ],
        "summary": "Add new devicestatus records.",
        "description": "",
        "operationId": "addDevicestatuses",
        "responses": {
          "200": {
            "description": "Rejected list of device statuses.  Empty list is success."
          },
          "405": {
            "description": "Invalid input"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Devicestatuses"
              }
            }
          },
          "description": "Device statuses to be uploaded.",
          "required": true
        }
      },
      "delete": {
        "summary": "Delete all Devicestatus records matching query",
        "description": "The Devicestatus endpoint returns information about the\nNightscout devicestatus records.\n",
        "parameters": [
          {
            "name": "find",
            "in": "query",
            "description": "The query used to find entries, support nested query syntax, for\nexample `find[created_at][$gte]=2015-08-27`.  All find parameters\nare interpreted as strings.\n",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Devicestatus"
        ],
        "responses": {
          "200": {
            "description": "A status record of the delete.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteStatus"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/devicestatus/{spec}": {
      "delete": {
        "summary": "Delete devicestatus record with id provided in spec",
        "description": "The Devicestatus endpoint returns information about the\nNightscout devicestatus records.\n",
        "parameters": [
          {
            "name": "spec",
            "in": "path",
            "description": "entry id, such as `55cf81bc436037528ec75fa5`\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Devicestatus"
        ],
        "responses": {
          "200": {
            "description": "A status record of the delete.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteStatus"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "api_secret": {
        "type": "apiKey",
        "name": "api-secret",
        "in": "header",
        "description": "The hash of the API_SECRET env var"
      },
      "token_in_url": {
        "type": "apiKey",
        "name": "token",
        "in": "query",
        "description": "Add token as query item in the URL. You can manage access Token in `/admin`. This uses json webtokens."
      },
      "jwtoken": {
        "type": "http",
        "scheme": "bearer",
        "description": "Use this if you know the temporary json webtoken.",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "Entry": {
        "properties": {
          "type": {
            "type": "string",
            "description": "sgv, mbg, cal, etc"
          },
          "dateString": {
            "type": "string",
            "description": "dateString, MUST be ISO `8601` format date parseable by Javascript Date()"
          },
          "date": {
            "type": "number",
            "description": "Epoch"
          },
          "sgv": {
            "type": "number",
            "description": "The glucose reading. (only available for sgv types)"
          },
          "direction": {
            "type": "string",
            "description": "Direction of glucose trend reported by CGM. (only available for sgv types)"
          },
          "noise": {
            "type": "number",
            "description": "Noise level at time of reading. (only available for sgv types)"
          },
          "filtered": {
            "type": "number",
            "description": "The raw filtered value directly from CGM transmitter. (only available for sgv types)"
          },
          "unfiltered": {
            "type": "number",
            "description": "The raw unfiltered value directly from CGM transmitter. (only available for sgv types)"
          },
          "rssi": {
            "type": "number",
            "description": "The signal strength from CGM transmitter. (only available for sgv types)"
          }
        }
      },
      "Entries": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Entry"
        }
      },
      "Devicestatus": {
        "required": [
          "device",
          "created_at"
        ],
        "properties": {
          "device": {
            "type": "string",
            "description": "Device type and hostname for example openaps://hostname"
          },
          "created_at": {
            "type": "string",
            "description": "dateString, prefer ISO `8601`"
          },
          "openaps": {
            "type": "string",
            "description": "OpenAPS devicestatus record - TODO: Fill Out Details"
          },
          "loop": {
            "type": "string",
            "description": "Loop devicestatus record - TODO: Fill Out Details"
          },
          "pump": {
            "$ref": "#/components/schemas/pump"
          },
          "uploader": {
            "$ref": "#/components/schemas/uploader"
          },
          "xdripjs": {
            "$ref": "#/components/schemas/xdripjs"
          }
        }
      },
      "Devicestatuses": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Devicestatus"
        }
      },
      "pump": {
        "properties": {
          "clock": {
            "type": "string",
            "description": "dateString, prefer ISO `8601`"
          },
          "battery": {
            "$ref": "#/components/schemas/pumpbattery"
          },
          "reservoir": {
            "type": "number",
            "description": "Amount of insulin remaining in pump reservoir"
          },
          "status": {
            "$ref": "#/components/schemas/pumpstatus"
          }
        }
      },
      "pumpbattery": {
        "properties": {
          "status": {
            "type": "string",
            "description": "Pump Battery Status String"
          },
          "voltage": {
            "type": "number",
            "description": "Pump Battery Voltage Level"
          }
        }
      },
      "pumpstatus": {
        "properties": {
          "status": {
            "type": "string",
            "description": "Pump Status String"
          },
          "bolusing": {
            "type": "boolean",
            "description": "Is Pump Bolusing"
          },
          "suspended": {
            "type": "boolean",
            "description": "Is Pump Suspended"
          },
          "timestamp": {
            "type": "string",
            "description": "dateString, prefer ISO `8601`"
          }
        }
      },
      "uploader": {
        "properties": {
          "batteryVoltage": {
            "type": "number",
            "description": "Uploader Device Battery Voltage"
          },
          "battery": {
            "type": "number",
            "description": "Uploader Device Battery Percentage Charge Remaining"
          }
        }
      },
      "xdripjs": {
        "properties": {
          "state": {
            "type": "number",
            "description": "CGM Sensor Session State Code"
          },
          "stateString": {
            "type": "string",
            "description": "CGM Sensor Session State String"
          },
          "stateStringShort": {
            "type": "string",
            "description": "CGM Sensor Session State Short String"
          },
          "txId": {
            "type": "string",
            "description": "CGM Transmitter ID"
          },
          "txStatus": {
            "type": "number",
            "description": "CGM Transmitter Status"
          },
          "txStatusString": {
            "type": "string",
            "description": "CGM Transmitter Status String"
          },
          "txStatusStringShort": {
            "type": "string",
            "description": "CGM Transmitter Status Short String"
          },
          "txActivation": {
            "type": "number",
            "description": "CGM Transmitter Activation Milliseconds After Epoch"
          },
          "mode": {
            "type": "string",
            "description": "Mode xdrip-js Application Operationg: expired, not expired, etc."
          },
          "timestamp": {
            "type": "number",
            "description": "Last Update Milliseconds After Epoch"
          },
          "rssi": {
            "type": "number",
            "description": "Receive Signal Strength of Transmitter"
          },
          "unfiltered": {
            "type": "number",
            "description": "Most Recent Raw Unfiltered Glucose"
          },
          "filtered": {
            "type": "number",
            "description": "Most Recent Raw Filtered Glucose"
          },
          "noise": {
            "type": "number",
            "description": "Calculated Noise Value - 1=Clean, 2=Light, 3=Medium, 4=Heavy"
          },
          "noiseString": {
            "type": "number",
            "description": "Noise Value String"
          },
          "slope": {
            "type": "number",
            "description": "Calibration Slope Value"
          },
          "intercept": {
            "type": "number",
            "description": "Calibration Intercept Value"
          },
          "calType": {
            "type": "string",
            "description": "Algorithm Used to Calculate Calibration Values"
          },
          "lastCalibrationDate": {
            "type": "number",
            "description": "Most Recent Calibration Milliseconds After Epoch"
          },
          "sessionStart": {
            "type": "number",
            "description": "Sensor Session Start Milliseconds After Epoch"
          },
          "batteryTimestamp": {
            "type": "number",
            "description": "Most Recent Batter Status Read Milliseconds After Epoch"
          },
          "voltagea": {
            "type": "number",
            "description": "Voltage of Battery A"
          },
          "voltageb": {
            "type": "number",
            "description": "Voltage of Battery B"
          },
          "temperature": {
            "type": "number",
            "description": "Transmitter Temperature"
          },
          "resistance": {
            "type": "number",
            "description": "Sensor Resistance"
          }
        }
      },
      "Treatment": {
        "properties": {
          "_id": {
            "type": "string",
            "description": "Internally assigned id."
          },
          "eventType": {
            "type": "string",
            "description": "The type of treatment event."
          },
          "created_at": {
            "type": "string",
            "description": "The date of the event, might be set retroactively ."
          },
          "glucose": {
            "type": "string",
            "description": "Current glucose."
          },
          "glucoseType": {
            "type": "string",
            "description": "Method used to obtain glucose, Finger or Sensor."
          },
          "carbs": {
            "type": "number",
            "description": " Amount of carbs consumed in grams."
          },
          "protein": {
            "type": "number",
            "description": " Amount of protein consumed in grams."
          },
          "fat": {
            "type": "number",
            "description": " Amount of fat consumed in grams."
          },
          "insulin": {
            "type": "number",
            "description": "Amount of insulin, if any."
          },
          "units": {
            "type": "string",
            "description": "The units for the glucose value, mg/dl or mmol."
          },
          "transmitterId": {
            "type": "string",
            "description": "The transmitter ID of the transmitter being started."
          },
          "sensorCode": {
            "type": "string",
            "description": "The code used to start a Dexcom G6 sensor."
          },
          "notes": {
            "type": "string",
            "description": "Description/notes of treatment."
          },
          "enteredBy": {
            "type": "string",
            "description": "Who entered the treatment."
          }
        }
      },
      "Treatments": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Treatment"
        }
      },
      "Profile": {
        "properties": {
          "sens": {
            "type": "integer",
            "description": "Internally assigned id"
          },
          "dia": {
            "type": "integer",
            "description": "Internally assigned id"
          },
          "carbratio": {
            "type": "integer",
            "description": "Internally assigned id"
          },
          "carbs_hr": {
            "type": "integer",
            "description": "Internally assigned id"
          },
          "_id": {
            "type": "string",
            "description": "Internally assigned id"
          }
        }
      },
      "Status": {
        "properties": {
          "apiEnabled": {
            "type": "boolean",
            "description": "Whether or not the REST API is enabled."
          },
          "careportalEnabled": {
            "type": "boolean",
            "description": "Whether or not the careportal is enabled in the API."
          },
          "head": {
            "type": "string",
            "description": "The git identifier for the running instance of the app."
          },
          "name": {
            "type": "string",
            "description": "Nightscout (static)"
          },
          "version": {
            "type": "string",
            "description": "The version label of the app."
          },
          "settings": {
            "$ref": "#/components/schemas/Settings"
          },
          "extendedSettings": {
            "$ref": "#/components/schemas/ExtendedSettings"
          }
        }
      },
      "Settings": {
        "properties": {
          "units": {
            "type": "string",
            "description": "Default units for glucose measurements across the server."
          },
          "timeFormat": {
            "type": "string",
            "description": "Default time format",
            "enum": [
              12,
              24
            ]
          },
          "customTitle": {
            "type": "string",
            "description": "Default custom title to be displayed system wide."
          },
          "nightMode": {
            "type": "boolean",
            "description": "Should Night mode be enabled by default?"
          },
          "theme": {
            "type": "string",
            "description": "Default theme to be displayed system wide, `default`, `colors`, `colorblindfriendly`."
          },
          "language": {
            "type": "string",
            "description": "Default language code to be used system wide"
          },
          "showPlugins": {
            "type": "string",
            "description": "Plugins that should be shown by default"
          },
          "showRawbg": {
            "type": "string",
            "description": "If Raw BG is enabled when should it be shown? `never`, `always`, `noise`"
          },
          "alarmTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "enum": [
              "simple",
              "predict"
            ],
            "description": "Enabled alarm types, can be multiple"
          },
          "alarmUrgentHigh": {
            "type": "boolean",
            "description": "Enable/Disable client-side Urgent High alarms by default, for use with `simple` alarms."
          },
          "alarmHigh": {
            "type": "boolean",
            "description": "Enable/Disable client-side High alarms by default, for use with `simple` alarms."
          },
          "alarmLow": {
            "type": "boolean",
            "description": "Enable/Disable client-side Low alarms by default, for use with `simple` alarms."
          },
          "alarmUrgentLow": {
            "type": "boolean",
            "description": "Enable/Disable client-side Urgent Low alarms by default, for use with `simple` alarms."
          },
          "alarmTimeagoWarn": {
            "type": "boolean",
            "description": "Enable/Disable client-side stale data alarms by default."
          },
          "alarmTimeagoWarnMins": {
            "type": "number",
            "description": "Number of minutes before a stale data warning is generated."
          },
          "alarmTimeagoUrgent": {
            "type": "boolean",
            "description": "Enable/Disable client-side urgent stale data alarms by default."
          },
          "alarmTimeagoUrgentMins": {
            "type": "number",
            "description": "Number of minutes before a stale data warning is generated."
          },
          "enable": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Enabled features"
          },
          "thresholds": {
            "$ref": "#/components/schemas/Threshold"
          }
        }
      },
      "Threshold": {
        "properties": {
          "bg_high": {
            "type": "integer",
            "description": "High BG range."
          },
          "bg_target_top": {
            "type": "integer",
            "description": "Top of target range."
          },
          "bg_target_bottom": {
            "type": "integer",
            "description": "Bottom of target range."
          },
          "bg_low": {
            "type": "integer",
            "description": "Low BG range."
          }
        }
      },
      "ExtendedSettings": {
        "description": "Extended settings of client side plugins"
      },
      "MongoQuery": {
        "description": "Mongo Query object."
      },
      "Error": {
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          },
          "fields": {
            "type": "object"
          }
        }
      },
      "DeleteStatus": {
        "properties": {
          "n": {
            "type": "integer",
            "format": "int32",
            "description": "Number of records deleted"
          },
          "optime": {
            "$ref": "#/components/schemas/optime"
          },
          "electionId": {
            "type": "string",
            "description": "Election id of operation"
          },
          "ok": {
            "type": "integer",
            "format": "int32",
            "description": "Status of whether delete was successful"
          },
          "operationTime": {
            "type": "string",
            "description": "Time delete operation was executed"
          },
          "$clusterTime": {
            "type": "string",
            "description": "Information about execution time in cluster environment"
          }
        }
      },
      "optime": {
        "properties": {
          "ts": {
            "type": "string",
            "description": "Time the operation started"
          },
          "t": {
            "type": "integer",
            "format": "int32",
            "description": "Time the operation took to complete"
          }
        }
      }
    }
  }
}
