How to Integrate the Dexcom API (2026)
Last verified October 17, 2026 · 5 min read
Sources checked (6) · October 17, 2026
- developer.dexcom.com/docs/ — Developer Program, Digital Health Partners, right to decline
- developer.dexcom.com/docs/dexcom/getting-started — registration, sandbox, Limited Access for up to 5 users, Full Access
- developer.dexcom.com/docs/dexcom/scopes-access — free registration, data environments, scopes, Limited and Full Access processes, Digital Health Partner criteria
- developer.dexcom.com/docs/dexcom/authentication — OAuth endpoints, one-minute code, token lifetimes, single-use refresh tokens, revocation, errors
- developer.dexcom.com/docs/dexcomv3/endpoint-overview — v3 endpoints, regional base URLs, devices, TLS 1.3, rate limit, time windows, units, data delays
- developer.dexcom.com/docs/dexcom/sandbox-data — sandbox base URL, simulated users and limitations
Dexcom's API returns continuous glucose monitor (CGM) data, such as estimated glucose values and events, to apps that Dexcom users authorize. Access is staged: anyone can register and build against simulated data, but real users' data needs Dexcom's approval, first for a handful of test users and then for a commercial launch. Everything below is from Dexcom's developer documentation as read on October 17, 2026. For other connected health devices, see the Withings API guide.
Access and approval#
Dexcom describes three levels of access:
| Level | What it allows | How you get it |
|---|---|---|
| Registered Developer | App credentials, the sandbox environment and support requests | Free registration at developer.dexcom.com, accepting the Registered Developer Agreement |
| Limited Access | Up to 5 authorized users of real data, for testing | Apply for an upgrade from the app's profile; Dexcom's Strategic Partnerships team reviews it and, if it agrees, sends a standard, non-negotiable Data Licensing Agreement |
| Full Access | A commercial app for any Dexcom user | Apply with the Full Access Questionnaire; Dexcom runs a technical and commercial review of the app |
Dexcom splits Limited Access requests by who you are. Individual developers apply from the app's profile; commercial app developers submit a request for a commercial partnership through Dexcom's partnership questionnaire; research use goes through a separate research portal. Dexcom says it values every company that applies but reserves the right to decline apps that do not meet certain commercial and technical standards. Each app is reviewed on its own, so a second app needs its own upgrade.
Once an app has Full Access and at least one active Dexcom user within 60 days of public availability, the developer can apply to become a Dexcom Digital Health Partner and appear in Dexcom's Partnerships Gallery, which Dexcom says is not an endorsement. Dexcom also reminds developers that complying with all applicable regulations is their responsibility, and points to the FDA's Digital Health site for US rules.
Auth and scopes#
Dexcom uses OAuth 2.0 with the authorization-code flow, and requires partners to keep tokens and the client secret on their servers, never on a mobile device. Send the user to Dexcom's login:
GET https://api.dexcom.com/v3/oauth2/login
?client_id=YOUR_CLIENT_ID
&redirect_uri=https://yourapp.example.com/callback
&response_type=code
&scope=offline_access
&state=RANDOM_ANTI_CSRF_STRING
code is the only response type and offline_access the only scope you can request. Behind that scope, the HIPAA authorization the user signs lists four kinds of data: estimated blood glucose levels, calibration data, events entry data and device details. Neither you nor the user can pick a subset.
The user logs in with their Dexcom account, signs the HIPAA authorization, and comes back with a code that is single-use and expires after one minute. Exchange it at https://api.dexcom.com/v3/oauth2/token:
curl -s -X POST "https://api.dexcom.com/v3/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d grant_type=authorization_code \
-d code=AUTHORIZATION_CODE \
-d redirect_uri=https://yourapp.example.com/callback \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET
Dexcom's example response has an access token with expires_in of 7200 seconds and a refresh token. Each refresh token works once: exchanging it issues a new one and invalidates the old, and a refresh token is valid for at most one year. A 401 on a data call means refresh; a 400 on a refresh means the token is dead, for example because the user revoked access or reset their Dexcom password, and the user must authorize again. Users revoke apps from Permissions in their Dexcom account, and Dexcom says data already provided to your app is not affected by the revocation.
Data: the v3 endpoints#
| Endpoint | Returns |
|---|---|
GET /v3/users/self/egvs | Estimated glucose values |
GET /v3/users/self/events | User-entered events |
GET /v3/users/self/calibrations | Calibration entries |
GET /v3/users/self/alerts | Alerts |
GET /v3/users/self/devices | Device information |
GET /v3/users/self/dataRange | The time range the user has data for |
curl -s "https://api.dexcom.com/v3/users/self/egvs?startDate=2026-10-01T00:00:00&endDate=2026-10-02T00:00:00" \
-H "Authorization: Bearer ACCESS_TOKEN"
The base URL depends on the user's region: https://api.dexcom.com in the US, https://api.dexcom.eu for the EU and outside the US, and https://api.dexcom.jp for Japan. The v3 API covers data from Dexcom G6, G7, G7 15-day, Dexcom ONE and Dexcom ONE+ devices; Dexcom ONE and ONE+ are not sold in the United States.
Four data rules shape every query:
- A 30-day window. Every endpoint except
/dataRangeneedsstartDateandendDate, and a window over 30 days returns 400. The window includesstartDateand excludesendDate, and it is matched againstsystemTime. - Two clocks. Records carry
systemTime, the device's UTC time, anddisplayTime, what the user sees; Dexcom notes thatsystemTimeis not true UTC because of drift and user changes. - mg/dL only. Glucose values come in mg/dL and trend rates in mg/dL/min; converting to mmol/L is your job.
- Delayed data. Data uploaded from Dexcom's mobile apps reaches the API with a one-hour delay in the United States and three hours elsewhere, including Japan. Uploads from a receiver through Dexcom's uploader are available immediately.
Sandbox#
Every Registered Developer can call https://sandbox-api.dexcom.com with simulated users, named for the G6, G7, Dexcom ONE and G7 15-day apps, through the same OAuth flow, choosing the user from a drop-down instead of entering a password. Dexcom warns that sandbox data is not guaranteed to match production or to be permanent, and should not be used for formal testing, validation or training algorithms.
Rate limits and transport#
Dexcom limits requests to 60,000 calls per app per hour and returns 429 above that. The API requires TLS 1.3.
What changed recently#
Dexcom's developer documentation publishes no dated changelog. The current documentation describes the v3 API, with support for the G7 15-day sensor alongside G6, G7, Dexcom ONE and Dexcom ONE+.
Gotchas and production notes#
- The one-minute code. Exchange the authorization code immediately.
- All or nothing. The HIPAA authorization covers all four data scopes; there is no way to ask for less.
- Server-side only. Dexcom requires tokens on your servers, not in the mobile app.
- Mind the delay. A one-hour or three-hour delay is normal for app uploads, so do not treat a gap as missing data.
- Region-specific hosts. Send each user's calls to the right regional base URL.
- Limited Access is for testing. Five real users is the ceiling until Full Access.
The rest of the cluster is at how to integrate a fitness or health API.
Frequently asked questions
- Is the Dexcom API free?
- Registration is: Dexcom calls it simple and free, and it gives you app credentials and sandbox data. Real users' data needs approval, and Dexcom sends approved Limited Access applicants a standard, non-negotiable Data Licensing Agreement. Dexcom's public documentation does not state fees, so read that agreement before you plan costs.
- What are Limited Access and Full Access?
- Limited Access lets an app authenticate up to 5 Dexcom users for testing with real data, after Dexcom's Strategic Partnerships team reviews your request. Full Access is for a commercial launch: you complete a Full Access Questionnaire and Dexcom runs a technical and commercial review of the app. Each app is reviewed separately.
- How does Dexcom OAuth work?
- Send the user to https://api.dexcom.com/v3/oauth2/login with response_type=code and scope=offline_access, the only values accepted. After login and a HIPAA authorization, exchange the single-use code within one minute at /v3/oauth2/token. Access tokens last 7,200 seconds and each refresh token works once, for up to a year.
- Why is Dexcom data delayed?
- Dexcom says data uploaded from its mobile apps reaches the API with a one-hour delay in the United States and a three-hour delay elsewhere, including Japan. Data uploaded from a receiver through Dexcom's uploader is available immediately. Build your product around the delay rather than treating it as missing data.
- What are the Dexcom API rate limits?
- Dexcom limits requests to 60,000 calls per app per hour and returns 429 when you exceed it. Each data query is also capped at a 30-day window between startDate and endDate; a longer window returns 400. The API requires TLS 1.3.
Keep reading
Elsewhere on the site
Pages that share this one’s concepts and sources, from other sections.
Next steps
Was this page useful?
Independent comparison, last reviewed October 17, 2026. Pricing, rate limits, and feature availability change often — confirm current details in each provider’s official documentation before you commit. Product and company names are trademarks of their respective owners; AIFitnessAPI is not affiliated with, endorsed by, or sponsored by any product listed here.
← All integration guides · by AIFitnessAPI