Skip to main content

GDPR & data erasure

uniqOS treats end-user rights — access, portability, and erasure — as functioning parts of the product, not optional extras. Because relational memory is keyed per user_id, you can exercise these on a specific person's behalf.

Export (portability)

  • GET /v1/end-users/{user_id}/export — exports everything uniqOS holds for that end user, in a structured form suitable for portability.

Delete an end user

  • DELETE /v1/end-users/{user_id} — deletes the end user's data. A cascade option selects the granularity:

    • all — the end user and all their relationships and models (the default).
    • model_only — just the psychological model.
    • memory_only — the relational memory, keeping the identity.

    You can include an optional reason for the audit record. In the SDKs this is the cascade / reason argument on endUsers.delete (TypeScript) / end_users.delete (Python).

Delete a relationship

  • DELETE /v1/relationships/{id} — deletes a single relationship (an end user paired with one personality). It accepts cascade (all or memory_only) and a reason. There is no model_only here — the psychological model lives at the user level, so use DELETE /v1/end-users/{user_id} with cascade: model_only for that.
  • DELETE /v1/relationships/{id}/memory — deletes only the consolidated memory for a relationship, keeping the relationship itself.

How erasure runs

Deletion is hybrid: the data is marked for deletion immediately (so it stops being used right away) and the physical removal happens asynchronously shortly after. The delete call returns as soon as the request is recorded; you do not need to poll.

See the API Reference for the exact request bodies and response shapes of each endpoint.