Back to all docs

Operations

Data export

What comes out, in what format, on what trigger.

Data export is a feature, not a concession. Everything you put into hdb.io comes back out: in standard formats, on demand, without contacting support. This page tells you exactly what.

Formats

Two output formats, both downloadable from the household settings page:

  • CSV bundle: a .zip containing one CSV per table you have access to. Easiest to import into a spreadsheet, accountant's software, or another household management tool.
  • JSON archive: a single .json file with the full structured graph. Best for feeding into a custom script or migrating to another tool.

Both formats are bit-for-bit reproducible from the same database state. If you run an export at 9am and again at 9:01am with no changes in between, the files have the same content (sort order is stable; timestamps are absolute, not relative).

What's included

Every table in your household, scoped to your household_id:

  • Items, locations, photos (file references, not the binaries themselves).
  • Receipts, manuals, the binary metadata for each (filename, size, hash).
  • Repairs, maintenance schedules, contacts.
  • Wiki pages, with their full version history.
  • Calendar events, recurring rules, attendees.
  • Chores, completions, pocket-money credits and payouts.
  • Memberships and member metadata you can see (admins see all members; a child member sees only themselves and other children).

The actual binary blobs (receipt photos, manuals) are not included in the CSV/JSON by default; they'd balloon the archive. Use the "include files" checkbox on the export form to bundle them in. The download size scales linearly with how much you've uploaded; expect 200MB to several GB for an established household.

What's not included

Things deliberately omitted:

  • Other households. The export is single-tenant. If you belong to three households, you run three exports.
  • Session records and tokens. Operational data, not user data.
  • Analytics. We don't keep per-user analytics. If we did, we wouldn't share them.
  • Pricing/billing history. Comes via Stripe export when billing turns on, not from hdb.io.

Automation

There is no scheduled-export feature in the UI yet. If you want regular backups, hit the export endpoint with a long-lived API token (from your account's settings page) and download the result. A small cron job covers the case in a few lines.

A scheduled-export feature with email delivery is on the post-1.0 roadmap.

Importing back

The JSON archive is the canonical re-import format. The import endpoint takes a JSON file from a previous export and recreates the household. Useful for:

  • Restoring after an accident.
  • Spinning up a "test household" with realistic data on a staging instance.
  • Migrating between accounts (e.g. moving a shared household to a new owner).

Caveats: file references in the import refer to object-storage keys; the "include files" checkbox on the export form bundles the binaries into the archive so re-import is one step.

API

The REST endpoints, scoped per household:

POST /api/households/:id/export      # kick off an export job
GET  /api/households/:id/exports     # list past exports
GET  /api/households/:id/exports/:id # download a finished export

Auth is the standard Better Auth session cookie or an API token from your account's settings page.

What you keep

Even after you delete your account, the export download link remains valid for 30 days. After that the job record and its output are deleted. If you need a copy of your data and you're closing the account, run the export before deletion. There is no recovery after the 30-day window.