Data Import & Export
mojo provides comprehensive backup, restore, and data import features to ensure your data is never lost.
Backup
Go to Settings → Data Management → Backup & Restore to export all your data as a JSON backup file.
Data included in backup:
- Personal info (height, date of birth, gender, goal weight, weight loss rate, activity level)
- User settings (unit preferences, currency, reminder times, hydration settings)
- Injection records (medication, dose, site, time)
- Side effect records
- Body measurements (manually entered)
- Menstrual cycle records (manually entered)
- Medication inventory
- Streak settings and records
- Nutrition logs (manually entered)
- Visceral fat and waist circumference records
- Water intake records (manually entered)
- Favorite foods
mojo backups are designed for restoring, not as a full data export: data synced from Apple Health / Health Connect is not included in the backup, as it will re-sync after re-authorizing on restore. Note: Apple Health typically re-syncs full history, while Health Connect may only provide recent data depending on app permissions and data retention policies.
Backup file name format: mojo_backup_YYYY-MM-DD.json
Want to keep a copy of your Apple Health data too?
Your Apple Health data is managed by iOS itself, and the built-in export takes the whole set with you — no need to go through mojo:
- Open the Health app, tap Summary, then tap your profile picture at the top right
- Scroll to the bottom and tap “Export All Health Data”
- Wait for packaging to finish (a few minutes if you have years of data), then choose how to save or share it (for example Save to Files, or AirDrop)
The exported zip contains export.xml (every record — weight, nutrition, sleep, steps, and more) plus workout routes. Keep in mind this file is an archive: Apple offers no way to import it back into the Health app. For Health data to follow you to a new device, rely on iCloud Health sync (Settings > your name > iCloud) or an encrypted computer backup.
Restore
After selecting a backup file, mojo will:
- Validate the integrity of the backup contents
- Show a confirmation prompt (restore will overwrite existing data)
- Complete all data replacement in a single transaction to ensure data consistency
- Display an import summary (number of records imported for each category)
After restore, medication reminders will be automatically rescheduled and the Streak cache will be updated.
Cross-Platform Compatibility
The manual JSON backup uses the same format on iOS and Android, so the two platforms can restore each other’s backups:
- iOS backups can be restored on Android, and vice versa
- Newer app versions can restore older backups (missing fields are automatically filled with default values)
- Older app versions can restore newer backups when the newer version only added data fields — unrecognized fields are safely ignored
Two backup formats: The manual export described above is a plaintext JSON file, and the compatibility notes above apply to it. Newer app versions can also read a separate encrypted backup format; an older app safely declines an encrypted backup without data loss — just update the app to restore it.
iCloud Auto Backup (iOS only)
Besides exporting a file by hand, the iOS app can save backups automatically to your own iCloud. The data is encrypted before it is uploaded, and mojo’s servers never handle it. It’s free, and needs a mojo account and iCloud Drive. The Android app works differently; see “Google Device Backup” below.
Turning it on: Settings → Data Management → Backup & Restore, then switch on “iCloud auto backup” in the “Cloud backup” section (it starts off). The first time, mojo explains that your data is encrypted and where it goes; backups start only after you agree.
Once it’s on:
- mojo backs up when you open the app, at most once a day; if you’ve added new records, it also makes a best-effort backup after you leave the app
- You can back up at any time with “Back up now”
- Older files get cleaned up after a successful backup, so each device usually keeps its own 7 most recent; sometimes files are kept anyway (after a failed backup, for instance), so seeing more than 7 is normal
- The backup page shows the last backup time, and marks a failed backup — tap “Back up now” to retry it
Restoring from an iCloud backup
A restore always has to be started by you; mojo never overwrites your data on its own. There are two ways in:
- From the backup page: Settings → Data Management → Backup & Restore → “View and restore backups”, which lists the backups available, each marked as “This device” or another device.
- On a new phone, or after reinstalling: once you sign in to your mojo account, the “Welcome Back!” screen looks for your iCloud backups. If it finds one, you can tap “Restore from this backup” right there.
For a cloud backup to turn up at all, three things have to be true at once:
- The old phone completed at least one backup (the backup page showed a “Last backup” time)
- The new phone is signed in to the same Apple Account, with iCloud Drive on (the backups live in your own iCloud)
- The new phone is signed in to the same mojo account (backups are listed per mojo account, so a different one shows nothing)
When it’s item 2 that’s missing, the app says iCloud isn’t available rather than reporting no backups — and the backup page walks you through turning iCloud Drive on in the iOS Settings app. Items 1 and 3 are the ones that show up as “no cloud backups found”. You do not, however, have to switch auto backup on first: after a reinstall the switch starts off, and your cloud backups are still found.
A restore replaces the records inside mojo with the backup, and you’ll be asked to confirm before it runs. Nothing is deleted from the Health app itself, but mojo’s own copies are cleared first and come back with the next sync — so right after a restore some numbers may still look incomplete. If you picked the wrong backup, “Undo the last restore” appears on the backup page for 7 days afterwards and takes you back to how things were. That entry only shows up when the phone already had something on it before the restore — your basic profile counts, as does a single entry of any kind. Restore onto a brand-new phone that hasn’t even been through the profile setup and there is nothing to go back to, so that one is final.
Turning auto backup off doesn’t delete the backups you’ve already made, and neither does deleting the app or deleting your mojo account. They stay in your own iCloud; to clear them, open the Files app, go to iCloud Drive and delete them from the mojo folder.
Google Device Backup (Android only)
The Android app has no cloud backup of mojo’s own. It uses Android’s own device backup instead: the system folds the app’s data into your Google account and restores it automatically when you reinstall the app. This is a system-level feature, so it does not need a mojo account.
Turning it on: Settings → Data Management → Backup & Restore, find the “Google device backup” card and tap “Open backup settings”. mojo tries to take you straight to the system’s backup settings; if it can’t, it opens the system settings app instead, where you can search for “backup”. Once there, check that Google backup is on.
A few things worth knowing:
- The system does the backing up and the restoring. mojo only offers a way into the system settings; it cannot read the backup state and cannot show you a last backup time
- There is no “Restore from Google Cloud” button inside mojo; the system handles the restore itself
- Where the setting lives differs from phone to phone. If your system offers “Back up now” you can trigger one by hand, otherwise it runs on the system’s own schedule
- Whether your data comes back when you switch phones depends on a few conditions, covered in the FAQ under How do I restore my data on a new device?
To keep a copy of the file yourself, or to move data between iOS and Android, use the manual JSON backup above (exporting needs a subscription; importing is free).
CSV Import (Body Measurements)
iOS only · Beta (experimental): CSV import is currently available on iOS only (not yet supported on Android), and is still being refined. If you run into trouble with a particular file, please reach out to support.
If you have exported body composition data from another app or device, mojo supports importing body measurements via CSV files.
Supported formats:
- CSV / TSV files
- Auto-detect delimiter (comma, tab, semicolon)
- Supports multiple encodings: UTF-8, Big5 (Traditional Chinese), UTF-16
Smart field recognition: mojo automatically identifies date, weight, body fat, and other columns in your CSV. A preview is shown before import so you can confirm the data is correct before it’s written.
If the date column can’t be recognized automatically, you can manually pick which column is the date on the field mapping screen, so the import doesn’t get stuck.
Supported date formats:
yyyy-MM-dd, yyyy/MM/dd, MM/dd/yyyy, yyyy年MM月dd日, and more.
Muscle mass needs your confirmation
Among the body composition columns, muscle mass is the one that may need a manual step. mojo only selects it automatically when the column name shows a supported unit — kilograms or percent, as in Muscle Mass (kg) or Muscle (%). It leaves the column unselected when the name shows no unit at all (Tanita’s “Muscle Mass”) and when the unit shown isn’t supported (Muscle Mass (lb)), because guessing the unit wrong can be off by more than a factor of two.
When that happens the muscle mass column looks empty in the preview. That’s not a bug. mojo shows this message:
A muscle mass column was detected, but its unit could not be determined from the column name. Select the column manually and confirm the data is in kg or percent (other units such as lb are not supported yet).
Once you pick the muscle mass column on the field mapping screen, a “Muscle mass data is percentage” toggle appears below it: turn it on if the values are percentages, leave it off if they’re kilograms. Only kg and percent are supported for now — other units such as pounds are not yet supported.
Re-importing fixes previously imported values
The import strategy is: fills in missing data and updates fields previously imported from CSV. Manually entered data and Apple Health data are never overwritten.
So if the first import got a value wrong (for example, percentages imported as kilograms), fix the field settings and import the same file again — the values will be corrected. You don’t need to delete the old records first.
One exception: any value you have manually edited in the record list becomes “Manual”, and re-importing will no longer update it. This is per field, not per day — editing the weight for a day doesn’t protect that day’s body fat or muscle mass, which a re-import will still update. Values you edited by hand have to be corrected by hand.
Two more things:
- Data imported from CSV is not written back to Apple Health.
- When a single CSV has multiple rows for the same day (common with smart scales — for example a morning and an evening reading), the first row of that day wins for each field.
Health Data Export (Text Format)
mojo can export your health data as plain text, making it easy to share with your doctor or use in your preferred tools:
Privacy reminder: Exported data contains personal health information. Be mindful when sharing with third-party services.
- Personal info (height, gender, age)
- Baseline data (starting weight, body fat, muscle mass)
- Body measurements from the past 30 days
- Nutrition logs from the past 7 days
- Exercise and sleep from the past 14 days
- Injection history
- Side effects from the past 14 days