Your email address and an argon2id hash of your password.
Session records (a sha256 of the cookie token, expiry, IP, user agent) for the lifetime of each session.
API keys you create — by sha256 hash, never the plaintext.
Per-call usage events: timestamp, modality, byte count, HTTP status, latency. No request body content.
What we do NOT store
The plaintext content you fingerprint. UCFP is one-way by construction; the fingerprint cannot be reversed to bytes.
Files you upload via the demo, unless you explicitly opt in with ?store=1 on an authenticated call.
Any third-party tracking pixels or advertising identifiers.
Where we store it
Cloudflare D1 (SQLite at the edge) for relational data. Cloudflare KV for session and rate-limit caches.
Cloudflare Workers Analytics Engine for aggregated usage metrics. Nothing is replicated to a third-party processor.
Retention
Sessions auto-expire after 30 days of inactivity.
Usage events older than 90 days are pruned by a scheduled job.
Account deletion (email privacy@ucfp.dev) removes all rows referencing your user_id within 7 days.
Right to be forgotten
Delete the underlying record from your storage and the fingerprint stops resolving. We never see your raw bytes
on the open-source or self-host tier. On the cloud tier, raw bytes are received only long enough to compute the
fingerprint; the request body is not persisted unless you opt in.