
iPhone / iPhone Duo Live
Last night before you are out of bed. Apple Health vitals, Face ID.
Download on the App StoreFree on every plan: unlimited imports, the full dashboard and your last 30 nights.
Compatibility checkerWill my machine work?Type your model. You get a straight answer: supported, partial, waitlist, or why not.Check my machine If it writes an SD card, we probably read it. ResMed AirMini has no card, so no app can read it.
Sleep Check-up
3 of 6 checks done
Six short screeners, one picture of how you sleep. Earn a milestone for each, save results and get retake reminders.
Latest milestone: Sleepiness check done
NEWTrack your 90-day compliance windowOpen the calculator 13 free tools. No account needed — sign in to save results and fill answers from your own CPAP data.

Last night before you are out of bed. Apple Health vitals, Face ID.
Download on the App Store


One account on every screen. Apple Watch vitals sync through Apple Health.
Your CPAP machine knows what your airway did. An overnight oximeter knows what your blood oxygen did. Put them on the same timeline and you can see whether the events that remain are costing you anything. This guide shows how to import oximeter data into Apnealytics from the three common sources: a Wellue O2Ring, a Contec CMS50-family finger oximeter, and a ResMed SAD.edf file written to the machine's own SD card. Oximetry overlay is a Pro feature ($8.99/month or $99.99/year).

SpO₂ and pulse rate overlaid on the night, aligned to airflow, pressure, leak and event strips.
ODI₃ and ODI₄: desaturations of 3 or 4 points per hour.
T90: minutes spent below 90 percent.
A crosshair you can drag across an event to see the desaturation that followed it, and zoom.

Wear the oximeter for the whole night, and only the night. Put it on just before you start the machine and take it off just after. A recording that includes an hour of reading in bed before therapy will still import, but the extra time makes alignment less tidy.
Set the oximeter's clock. Both devices stamp their data with their own clock. If the oximeter is an hour off, the overlay will be an hour off. Most oximeter apps sync the clock from the phone when you connect.
Know your file. Apnealytics accepts EDF and CSV. The three sources below each produce one of those.
The O2Ring stores nights on the ring and syncs to the ViHealth app. The export is a CSV per night.
Open the Wellue app and connect the ring.
Find the night in the history list and open it.
Tap Share or Export and choose CSV.
Save the file somewhere you can reach from a browser: Files on iPhone, Downloads on Android, or send it to yourself.
Sign in at my.apnealytics.com, open the night in Nights, and choose Add oximetry.
Upload the CSV. Apnealytics reads the timestamps and aligns the trace to the therapy session.
Check the alignment. The pulse trace usually shows a clear rise when you wake; it should line up with the end of the airflow trace.
The O2Ring also records its own motion data. Apnealytics uses SpO₂ and pulse and ignores the rest.
These finger oximeters store the night internally and export through the manufacturer's desktop software (SpO2 Assistant or SpO2 Review, depending on model) or a third-party app.

Connect the oximeter to your computer by USB, or by Bluetooth on models that have it.
Open the Contec software and download the stored recording.
Export as CSV. If the software offers only its own format, look for a "Save as" or "Export data" option that lists CSV.
Open the night in Apnealytics and choose Add oximetry.
Upload the CSV. Apnealytics expects columns for time, SpO₂ and pulse; the header names vary by model and the importer looks for the common ones. If it cannot find them, it shows you the first rows and asks you to point to the right columns.
Check alignment as above.
Note the model name in the Gear section so the oximeter appears in your accessories list and the import defaults to the right column mapping next time.
Some ResMed machines accept a compatible oximeter through an adapter and write the SpO₂ and pulse traces to the SD card as SAD.edf inside the night's DATALOG folder. If yours does, there is no separate import.
Upload your SD card as usual on the Import page.
Apnealytics detects SAD.edf for each night that has one and overlays it automatically.
Open the night and the SpO₂ lane is already there.
This is the easiest path when it is available, because the machine and oximeter share a clock, so alignment is exact.
If your device is not one of the above but can export EDF or CSV, upload it the same way as Option B. EDF files carry their own channel labels and timestamps and usually import without mapping. CSV files may need the column-mapping step.
Three things to look at the first time:
Drag the crosshair across a cluster of hypopneas. A dip of 3 or 4 points a few seconds later is the expected pattern. Events with no desaturation are less concerning; desaturations with no events are worth a note.
If they are close, the machine's event count is a fair proxy for what reached your blood. If ODI is well above AHI, discuss it with your clinician.
Near zero is the aim. Minutes below 90 percent, especially in one stretch, is worth showing to your clinician alongside the therapy chart.
Also check for artifact. A finger oximeter that slips shows as a sudden drop to an implausible number with pulse dropping out at the same moment. Apnealytics marks stretches with missing pulse as low confidence; ODI and T90 exclude them.
Nightly if you are investigating something. Otherwise one week a quarter is enough for most people to confirm nothing has shifted. Apple Health / Health Connect SpO₂ averages (free) fill the gaps in between at a daily-summary level, without the per-event detail.
On Pro: the Wellue O2Ring, Contec CMS50-family finger oximeters via CSV export, ResMed SAD.edf written to the machine's SD card, and any oximeter that exports EDF or CSV. Apnealytics overlays SpO₂ and pulse on the night and calculates ODI₃, ODI₄ and T90.
No. The oximeter records to its own file with its own timestamps, and Apnealytics aligns the two by time. The one case where brand matters is ResMed's SAD.edf, where the machine itself records a connected oximeter and no separate import is needed.
The oximeter's clock is probably off. Both devices stamp their own data, so a one-hour clock difference becomes a one-hour offset. Sync the oximeter's clock from your phone before the next night. For the current night, Apnealytics lets you nudge the trace by a fixed offset after import.
ODI tracks AHI fairly closely in most people on effective therapy, so an ODI₃ under 5 is in the same territory as a good AHI. There is no single normal; the useful comparison is your ODI against your AHI and your T90 against zero. Discuss persistent gaps with your clinician.
Per-night oximetry overlay with ODI and T90 is a Pro feature. The free plan shows daily SpO₂ averages and lows from Apple Health or Health Connect in the Vitals tiles, which is useful for trend but does not line up individual desaturations with events.
The web app is live today. iPhone and iPad are on the App Store. Android is on Google Play. Your first 30 nights are free, forever.

DashboardSleep Score, AHI band, leak and pressure
Trends & historyA year down to a night
Breath-by-breath viewerAirflow, pressure, leak tracesPro
SpO₂ overlayOximeter data on the same nightPro
Pressure insightsP95, set range, EPR and ramp
SD card importDrop the card folder, only new nights added
Mask fit & gearWhich mask actually seals
Ask your dataPlain-English questions, your own AI keyBYOK
Year in SleepYour therapy year in one storyNew
Compliance reportFinds the qualifying window for youPro
Share with your doctorRead-only, revocable links
Companion appiPhone, iPad and Android
Privacy & securityYour data, locked to you
ResMed AirSense 10 & 11Supported
ResMed AirCurve 10 & 11 VAutoSupported
ResMed S9 / LumisSupported
Philips DreamStation 1 & 2Supported
Fisher & Paykel SleepStyleSupported
Löwenstein / DeVilbissPartial
React Health Luna G3Waitlist
Transcend MicroWaitlist
Full face masksFit, leak signature, Mask Analytics
Nasal masksOver-nose and cradle styles
Nasal pillowsMinimal-contact fit tips
Wellue O2RingSupported
Contec CMS50 familySupported
Apple Health / Health ConnectResting HR, HRV, SpO₂, sleepSupported
What is AHI?The apnea-hypopnea index, explained
What is a good AHI on CPAP?
CPAP leak rate explained
Pressure settings explained
Reading CPAP waveformsAll 14 explainers
Apnealytics vs SleepHQ
Apnealytics vs OSCAR
Apnealytics vs myAir
Apnealytics vs DreamMapper
SleepHQ vs OSCARBest CPAP apps in 2026
How to read CPAP dataStart here: six numbers, in order
Read your CPAP SD card
Share data with your doctor
Choosing a CPAP mask
Travel with CPAPAll guides
Mask finderSeven questions, a ranked mask typeYour data
Machine finderA two-machine shortlist for your prescription
iPhone / iPhone DuoLast night before you are out of bed. Apple Health vitals, Face ID.Live
iPadSame universal app, side-by-side panes and full-width waveforms.Live
AndroidPhones, tablets and foldables, with Health Connect built in.Live
Web portalWhere your SD card goes. Every chart, report and setting.Live