Export file format

Every JSON export, and the export.json inside every ZIP archive, follows the layout on this page. The schemaVersion at the top of the file says which layout it uses.

Versions

Version 2 is the current layout. Every record carries its id, watches and Wishlist items carry their catalog link, and photos are listed with the file each one is stored in.

A file with no schemaVersion was exported before versions existed. Read it as version 1: its wears and service records have no ids, its watches have no catalog link, and it has no photo list.

The version changes only when a field is removed, renamed or changes meaning. New fields can appear within a version, so a script should ignore fields it doesn’t know.

What’s in the ZIP archive

Ids

Each id is unique within your export. Ids aren’t kept on restore: a restored record gets a new id in the account it’s restored into, and the links between records — a wear’s watch, a photo’s watch — follow it to the new id. The email address in the file is never applied to the account it’s restored into.

Top level

schemaVersion · number
The layout version: 2 for files described here.
exportId · text
A random id for this export. Each download gets a new one.
exportedAt · text
When the file was made, as an ISO 8601 time in UTC.
formatUrl · text
The address of this page.
account · object
Your account settings.
watches · list
Every watch you’ve added, sold ones included.
wears · list
Every wear you’ve logged.
wishlist · list
Every Wishlist item.
serviceEvents · list
Every service in your Service history.
straps · list
Every strap you’ve added.
serviceIntervals · list
The service intervals you’ve set for your watches.
accuracyReadings · list
Every reading in your Accuracy history.
photos · list
Every photo you’ve uploaded.

account

email · text
The address you sign in with. A restore never applies it to another account.
timezone · text
Your timezone, as an IANA name such as Europe/London.
dailyReminderHour · number or null
The local hour, 0 to 23, of your daily wear-log reminder. Null when it’s off.

watches

id · text
The watch’s id.
brand · text
model · text
As you entered them.
reference · text or null
The reference number, as you entered it.
nickname · text or null
year · number or null
movement · text
One of unknown, manual, automatic, quartz, spring_drive, solar, mechaquartz, kinetic or other.
status · text
One of in_rotation, stored, at_service or sold.
purchasePriceCents · number or null
soldPriceCents · number or null
In cents, the currency’s smallest unit.
purchaseCurrency · text or null
An ISO 4217 code such as GBP.
purchaseDate · text or null
soldDate · text or null
warrantyDate · text or null
YYYY-MM-DD.
serialNumber · text or null
purchasedFrom · text or null
insurancePolicy · text or null
As you entered them.
hasBox · true, false or null
hasPapers · true, false or null
sourceUrl · text or null
The listing link an import brought in.
notes · text or null
hiddenFromShare · true or false
Whether the watch is left off your shared collection page.
tags · list of text
An empty list when there are none.
caseDiameterMm · number or null
lugWidthMm · number or null
Your own measurements in millimetres, never catalog values.
dialColor · text or null
caliber · text or null
Your own entries, never catalog values.
estimatedValueCents · number or null
Your estimate, in cents.
estimatedValueCurrency · text or null
An ISO 4217 code.
valuedAt · text or null
The date of your estimate, YYYY-MM-DD.
catalogReferenceId · text or null
The id of the catalog entry this watch is linked to.
catalogReference · object or null
That entry’s brand, model and refNumber when the file was made, so the link still reads if the catalog changes.
dismissedNameSuggestion · text or null
A name tidy-up you turned down, so it isn’t offered again.
dismissedCatalogSuggestion · text or null
The id of a catalog link you turned down, so it isn’t offered again.
sort · number
The watch’s place in your collection order.
createdAt · number
When you added it, in milliseconds since 1970-01-01 UTC.

wears

id · text
The wear’s id.
watchId · text
The id of the watch you wore.
wornOn · text
The day you wore it, YYYY-MM-DD, in your timezone.
note · text or null
occasion · text or null
Up to 100 characters.
strapId · text or null
The id of the strap it was on.
source · text
manual, or import for a wear an import created.
recordedAt · text or null
When the app you imported from recorded the wear, as that app wrote it.
partOfDay · text
all, morning, afternoon or evening; unspecified when no part of the day was chosen.
createdAt · number
When it was logged, in milliseconds since 1970-01-01 UTC.

wishlist

id · text
catalogReferenceId · text or null; object or null
catalogReference · text or null; object or null
As for watches.
brand · text
model · text
reference · text or null
status · text
wanted or acquired.
acquiredWatchId · text or null
The id of the watch it became.
createdAt · number
When you added it.
convertedAt · number or null
When it moved into your collection.

serviceEvents

id · text
watchId · text
date · text
YYYY-MM-DD.
costCents · number or null
In cents.
watchmaker · text or null
description · text or null
kind · text
One of full_service, battery, regulation, pressure_test, strap or other.
createdAt · number
In milliseconds since 1970-01-01 UTC.

straps

id · text
name · text
material · text or null
One of leather, rubber, nato, metal, fabric or other.
lugWidthMm · number or null
In millimetres.
createdAt · number
In milliseconds since 1970-01-01 UTC.
color · text or null
As you entered it.
purchasePriceCents · number or null
In cents, the currency’s smallest unit.
purchaseCurrency · text or null
An ISO 4217 code such as USD, set whenever purchasePriceCents is.
photo · object or null
The strap’s photo, or null. It has the id, file, width, height and createdAt fields of a photos entry. file is its path inside the ZIP, under photos/straps/, and is null in a standalone JSON download.

serviceIntervals

watchId · text
A watch has at most one interval per kind, so watchId and kind together identify it.
kind · text
One of full_service, battery, regulation, pressure_test or strap.
intervalMonths · number
1 to 600.
updatedAt · number
In milliseconds since 1970-01-01 UTC.

accuracyReadings

id · text
watchId · text
measuredAt · number
When you compared the watch, in milliseconds since 1970-01-01 UTC.
offsetSeconds · number
Seconds ahead (positive) or behind (negative) the reference clock.
createdAt · number
In milliseconds since 1970-01-01 UTC.

photos

id · text
watchId · text
file · text or null
Its path inside the ZIP archive, such as photos/omega-speedmaster-8d0b6f2e/1.webp. Null in a JSON download, which carries no photo files.
sort · number
Its place among the watch’s photos.
width · number
height · number
In pixels.
createdAt · number
In milliseconds since 1970-01-01 UTC.

Unsent wear entries