Strongest Point › Connect › myAir (ResMed CPAP)

Connected sources

myAir (ResMed CPAP)

ResMed doesn't offer a way for apps like ours to read myAir, and myAir doesn't write to Apple Health. What works is a small program on your own device: it signs in to myAir the way the website does and sends the numbers to your card. Your ResMed password stays on your device. It needs nothing installed beyond Python itself, and on an iPhone a free app provides that. About ten minutes the first time; after that it can run by itself every morning.

The sign-in is the one the myAir website uses, worked out by the community (the myair-py project). ResMed could change things and break it at any time, and it isn't for medical decisions. North American myAir accounts only for now. If you'd rather not install anything, type last night's hours from the myAir app's front screen; it takes five seconds.

What you need

What is kept where

1. Make a key in the app

Open Strongest Point, go to Account & plan, scroll to Connected sources, choose myAir and tap Make a key. Copy the key. Until it has been used once, “Copy again” stays next to it in the list on that phone, so you can come back for it after opening a-Shell. Once it has been used, nobody can read it back; if you lose it then, turn it off and make another.

2. Check what it fills

Under the key, “What it fills” lists the five CPAP numbers. Your hours-of-sleep item is picked for CPAP hours already if you have one. For the myAir score, events per hour, mask seal or mask on/off, pick “Add a new item for it”, or tap “Add items for the rest” to put all four on your card at once. Leave anything you don't want on Nothing.

3. Get Python (once)

Mac: open python.org/downloads in your browser and click the big Download button. Open the downloaded file and click Continue through the installer. When it finishes, a Finder window opens; double-click “Install Certificates.command” in it, then close everything.

Windows: open python.org/downloads and click Download. Open the file. On the first screen tick “Add python.exe to PATH” (this matters), then click Install Now. Close the installer when it says Setup was successful.

iPhone or iPad: install a-Shell from the App Store (free). It is a small terminal that includes Python. Skip to “On an iPhone” below for the rest.

Any Python from 3.8 on works; nothing else needs installing.

4. Download the script

Right-click the link at the bottom of this page and choose Save Link As (Chrome) or Download Linked File As (Safari). Save it as myair.py in your Documents folder. If your browser adds .txt to the name, rename it so it ends in .py.

5. Open a command window in Documents

Mac: open Terminal (press Command-Space, type Terminal, press Return). Type cd Documents and press Return.

Windows: open the Start menu, type PowerShell, open Windows PowerShell. Type cd Documents and press Enter.

Everything below is typed into that window, one line at a time, pressing Return or Enter after each. On Windows, type py wherever the line says python3.

6. Set it up (once)

python3 myair.py --setup

It asks for your myAir email and the key from step 1 (paste it with Command-V, or right-click in PowerShell). Then it offers to save your myAir password on this device so the morning run doesn't have to ask. Say yes if you want it to run by itself. The password isn't shown as you type.

7. First run: a year of nights

python3 myair.py --days 365

It lists each night as it reads it (date, hours, score, AHI, seal, mask on/off), then “Sent. 300 written, 0 kept as typed” or similar. myAir keeps about a year, so that is as far back as it goes; use a smaller number if you like. Open the app and look at a past day: the hours are there, marked “filled in from myAir”. Any night you had already typed by hand is left alone, which is what “kept as typed” counts.

8. Make it run every day

python3 myair.py --install-schedule --at 12:05

That's it, on a Mac or Windows PC. Pick any time with --at (24-hour clock); noon suits people who sleep in, since the machine has reported by then. It sends the last 7 nights each run, so a day the computer was off is caught up later. To stop it: --uninstall-schedule.

If you'd rather not schedule it, run --days 7 whenever you think of it; before a therapy session is a good habit.

On an iPhone or iPad

  1. Install a-Shell from the App Store (free, by Nicolas Holzschuch). Open it; you get a black screen with a prompt.
  2. Type this and press Return to download the script: curl -O https://strongestpoint.com/connect/myair/myair.py
  3. Type python3 myair.py --setup and answer the questions: your myAir email, the key from the app (copy it there, then tap and hold in a-Shell to Paste), and yes to saving the password on this phone. It is kept inside a-Shell's own folder, which other apps can't read.
  4. Type python3 myair.py --days 365 for the first run. You'll see the nights go by, then “Sent.”
  5. To make it run every day: open the Shortcuts app, Automation tab, tap +, choose Time of Day, pick a time the machine has reported by (12:05 PM if you sleep in), Daily, Run Immediately. For the action, search “a-Shell” and pick “Execute Command”, and type python3 myair.py --days 7 as the command. Done. The phone has to be on and unlocked at some point after that time; it catches up the nights it missed.

We have tested the script's sign-in against myAir, but not on an iPhone ourselves yet. If a step in a-Shell doesn't match what you see, email hello@strongestpoint.com with a screenshot and we'll fix the page.

If something goes wrong

What each number is

Each night lands on the morning you woke up, next to that day's sleep. (myAir labels a night by the evening it started; the script adds a day. Run it with --date-by-start if you would rather have the evening's date.)

The script

Download: strongestpoint.com/connect/myair/myair.py (right-click, Save Link As). It is about 300 lines and needs nothing but Python; read it if you like. It only ever talks to myAir and to your card. The commands it understands: --setup, --days N, --dry-run (show the nights, send nothing), --install-schedule, --uninstall-schedule, --date-by-start.

Connected sources send numbers from a device or service you choose to your own card. Strongest Point stores those numbers as entries and a fingerprint of your key, nothing else. Apple, Apple Health, ResMed, myAir and Oura are trademarks of their owners; Strongest Point is not affiliated with them. Nothing here is medical advice.

Updated 2026-10-27. Questions or corrections: hello@strongestpoint.com.