GET /egvs

Description

The /egvs endpoint enables retrieval of a user's estimated glucose value (EGV) data, including trend and status information. Scopes And Access

Resource

GET /v2/users/self/egvs

Authorization

OAuth 2.0 bearer token; see the Authentication section for details on this workflow.

Notes

The G6 generation of sensors and transmitters introduced the concept of retrospective data smoothing to estimated glucose values. This smoothing incorporates three consecutive EGVs to produce a clearer, more readable trace for the user. Because three consecutive EGVs are not always available—for example, at the beginning or end of a sensor session—some EGVs cannot be smoothed. In these cases, the realtimeValue will be populated with a number, but the smoothedValue will be null.

The rules for the value field are as follows:

  • If smoothedValue is not null, value is equal to smoothedValue
  • If smoothedValue is null, value is equal to realtimeValue

The recommended method for consuming the /egvs endpoint is to use the value field.

Due to how data is uploaded and processed, some records that initially have a null smoothedValue may later have this field populated, with the value field also changing per the rules above.

For EGVs generated by G4 and G5 devices, the smoothedValue field will always return null as these systems do not have retrospective data smoothing.

SecurityBearerAuth
Request
query Parameters
startDate
required
string <date-time>

Beginning of the time window; see the discussion of time in the Endpoint Overview section for more details on how they relate to device information

Example: startDate=2023-01-01T09:12:35
endDate
required
string <date-time>

End of the time window

Example: endDate=2023-01-01T09:12:35
Responses
200

Ok

Response Schema: application/json
unit
string

Unit of measurement for value

Enum: "mg/dL" "mmol/L"
rateUnit
string

Unit of measurement for trendRate

Enum: "mg/dL/min" "mmol/L/min"
Array of objects

Array of estimated glucose values

Array
systemTime
string <date-time>

Time according to the system clock at which observation was made; nominally UTC

displayTime
string <date-time>

Time displayed on the receiving device when the observation was made

value
number <float>

Estimated glucose value.

For G4 and G5 devices, equal to realtimeValue.

For G6 devices, equal to smoothedValue if present, otherwise equal to realtimeValue.

See the Notes section above for more details

39: indicates that the value was calculated and it was less than 40; the value 39 is used in calculations but is not explicitly displayed to end users

40 to 400: this is the measuring range of the Dexcom CGM

401: indicates that the value was calculated and it was greater than 400; the value 401 is used in calculations but is not explicitly displayed to end users

realtimeValue
number <float>

Estimated glucose value presented on receiving device in realtime

See the Notes section above for more details

See enumeration for value above

smoothedValue
number <float>

Estimated glucose value presented retrospectively on receiving device after smoothing; G6 devices only (nullable)

See the Notes section above for more details

See enumeration for value above

status
string

Explanation of EGV record; used when the value field is outside the measuring range (nullable)

"high": indicates a glucose value of more than 400
"low": indicates a glucose value of less than 40

Enum: "high" "low"
trend
string

General trend of EGV value movement; corresponds to trendRate field (nullable)

"doubleUp": +3 ≤ trendRate ≤ +8
"singleUp": +2 ≤ trendRate < +3
"fortyFiveUp": +1 ≤ trendRate < +2
"flat": -1 < trendRate < +1
"fortyFiveDown": -2 < trendRate ≤ -1
"singleDown": -3 < trendRate ≤ -2
"doubleDown": -8 < trendRate ≤ -3
"none": no arrow (blank)
"notComputable": the algorithm decides that it is not reasonable to compute trend arrow
"rateOutOfRange": the computed filtered rate is not within the range for assigning the arrows

Enum: "doubleUp" "singleUp" "fortyFiveUp" "flat" "fortyFiveDown" "singleDown" "doubleDown" "none" "notComputable" "rateOutOfRange"
trendRate
number <float>

Rate at which glucose value is moving up or down (nullable)

get/v2/users/self/egvs
Request samples
curl -i -X GET \
  'https://api.dexcom.com/v2/users/self/egvs?startDate=2023-01-01T09%3A12%3A35&endDate=2023-01-01T09%3A12%3A35' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'
Response samples
application/json
{
  • "unit": "mg/dL",
  • "rateUnit": "mg/dL/min",
  • "egvs": [
    • {
      • "systemTime": "2019-08-24T14:15:22Z",
      • "displayTime": "2019-08-24T14:15:22Z",
      • "value": 122,
      • "realtimeValue": 121,
      • "smoothedValue": 122,
      • "status": null,
      • "trend": "flat",
      • "trendRate": -0.5
      }
    ]
}