Account and personal data
Profile, onboarding, export, notifications, and transactional erasure.
Every operation derives the account id from the current Better Auth session. No request field can select another person.
| Operation | Purpose |
|---|---|
GET /api/account/summary | Account identity and profile consent state. |
GET /api/account/onboarding | Profile, preferences, and available categories. |
POST /api/account/onboarding | Save validated profile, consent, and category choices. |
GET /api/me/export | Download the actor's canonical JSON export with private no-store caching. |
DELETE /api/account | Transactionally erase or anonymise actor-owned records. |
POST /api/account/notifications/open | Return actor-owned notifications and mark only those rows read. |
GET /api/account/push | Read push capability and the signed-in user's registered devices. |
POST /api/account/push | Register or update one browser push subscription for the current account. |
DELETE /api/account/push | Remove one browser push subscription owned by the current account. |
The legacy application route adds content-disposition: attachment; the direct
canonical API route returns the same JSON without promising that download
header. Both are private and no-store. See Account export for
the complete relation-level payload.
Missing authentication returns 401. Mutations require an exact configured
Origin; successful direct Nest POST operations return 201.
Push registration is available only when all three VAPID values are configured
(public key, private key, and subject). The browser must obtain explicit
notification permission before saving a subscription. Delivery is a generic
event update alert; the in-app inbox remains the durable record. iOS visitors
must add the web app to the Home Screen for web push support. This local
candidate has no verified external provider delivery yet.