Your data and your keys

We publish your data, but we don't own it. You can take a complete copy at any time, and the key you saved at onboarding means you keep control your account.

Look up your account ID and keys

Behind your handle sits a permanent account ID, called a DID: the technical commands further down this page use it. The lookup also shows the keys currently controlling your account's identity, in order of authority. Everything here is public information.

Account ID (DID):

Keys controlling this account, highest authority first. These are the public halves: they're safe to show, and anyone can already see them. The secret halves are not here: yours never left your machine.

The top public key is yours, from onboarding. A second key is our recovery spare. If only one key is listed, you are already sole controller.

The technical commands further down this page have been filled in with your details; only your secret key (marked <your-secret>) is left for you to supply.

Download a complete copy of your data

You get a single file containing every sensor reading your account has ever published, in a standard, widely supported archive format (.car). Enter your account handle (it probably looks like yourname.sensorthings.dev):

Your download is starting.

Do this regularly and keep the file yourself. A recent copy, together with your key, is what lets you move to another provider if you want.

Technical detail: scripted export

goat is a free command-line tool for working with ATProto accounts, maintained by Bluesky; see its documentation and installation instructions. The curl alternative below needs no extra software. Run the lookup at the top of this page and <your-did> is filled in here automatically.

# With the goat atproto CLI:
goat repo export <your-did>

# Or directly (public endpoint, no auth):
curl "https://pds.sensorthings.dev/xrpc/com.atproto.sync.getRepo?did=<your-did>" \
  -o mydata.car
Technical detail: turn your download into tables

The download is a single archive of everything you've published. A small, free Python tool, atproto-sensorthings, unpacks it into plain tables – one row per station, per sensor, and per reading – as CSV that opens in any spreadsheet, or as map layers for GIS software. It needs Python; the package page has the full details.

uv tool install atproto-sensorthings   # or: pip install atproto-sensorthings
atproto-sensorthings flatten mydata.car                    # spreadsheet tables (CSV)
atproto-sensorthings flatten mydata.car --format geojson   # map layers (adds the [geo] extra)

The key you saved at onboarding

When you joined, your browser created a key that only you hold; we never saw it. That key is the master control of your account's identity: as long as you have it, we cannot take the account from you, and you can move it away from us without asking. It isn't needed day to day – keep it stored safely.

Lost it? Get in touch. We keep a lower-ranked spare key for exactly this: once we're satisfied it's really you, we can set you up with a new one. (While your key is lost you're trusting us to do that, which is why we suggest the backup below.)

Technical detail: become sole controller

If you'd rather not rely on us for recovery at all, remove our spare key with your own; we cannot reverse this. Consider enrolling a second key of your own as a backup first (--add-rotation-key). Run the lookup at the top of this page and <your-did> and <our-key> (our spare, the second key listed) are filled in here automatically. Using the goat CLI (introduced above):

goat plc update <your-did> --remove-rotation-key <our-key> > op.json
goat plc sign op.json --plc-signing-key <your-secret> > op.signed.json
goat plc submit --did <your-did> op.signed.json

Leaving

You can move your data and your account identity to your own server, or another provider, at any time. It does not need our permission or our cooperation: everything required is already yours: a recent data download (above) and your key. Consumers of your data follow the account, so references to your data keep working after a move.

However, we're happy to help: tell us and we'll walk through it with you.

Technical detail: what a move involves

Stand up your own ATProto PDS (or an account with another provider), import your .car file, and sign an identity update with your key pointing your account at the new server. We'll provide a detailed runbook when you need it.