Visitor data requests: access, export, and deletion
When a visitor asks what you hold about them or asks you to erase it, you can answer from Databuddy directly. One request covers everything stored about that visitor on one website: pageviews and custom events, errors, web vitals, engagement, outgoing link clicks, revenue attribution, identity links, profile traits and their history, and session recordings with their summaries.
Find the visitor
Requests take a visitor ID:
Databuddy links the ID to every browser and session recorded for that visitor. On a browser that another identified profile also used, only the visitor's own sessions are included, so one person's request does not remove someone else's data. Naming a shared browser directly covers its sessions that belong to no identified profile.
With the default anonymizeVisitorIds setting, each browser gets a new stored ID every day. Without an identified profile, a request reaches only the days whose stored ID you have; Databuddy cannot connect earlier days to the same browser.
The same applies to a profile you identify only from your server. identify() in the browser tags the visitor's later events with the profile ID, so a request reaches them. A browser ID you pass to server-side identify() is kept as sent, while its events are stored under the daily ID, so the request covers that profile's stored profile, traits, and events tagged with it, but not the browser's untagged visits.
From the dashboard
Open Users, select the visitor, and use the menu next to the session count:
Both actions need the same permission as deleting the website: organization owners and admins.
From the API
Use an API key with permission to manage the website.
curl -X POST https://api.databuddy.cc/visitor-data/export \
-H "x-api-key: $DATABUDDY_API_KEY" \
-H "content-type: application/json" \
-d '{"websiteId": "your-website-id", "visitorId": "user_123"}'
curl -X POST https://api.databuddy.cc/visitor-data/delete \
-H "x-api-key: $DATABUDDY_API_KEY" \
-H "content-type: application/json" \
-d '{"websiteId": "your-website-id", "visitorId": "user_123"}'Export returns a filename and the JSON document in data. Each analytics table holds up to 50,000 rows and is marked truncated past that. Delete returns a requestId, the rows erased per table, and the profiles and recordings removed. A pending status means the request is stored and the background purge finishes it.
Keep the requestId and check it later. Calling delete again creates a new request instead of reporting on the first one.
curl -X POST https://api.databuddy.cc/visitor-data/deletion-status \
-H "x-api-key: $DATABUDDY_API_KEY" \
-H "content-type: application/json" \
-d '{"websiteId": "your-website-id", "requestId": "the-request-id"}'The status is pending while the latest deletion pass failed and is waiting for retry, submitted while queued events recorded before the request are still being erased, and completed with a completedAt time once the seven-day window has closed and nothing the request covers remains.
What deletion does
Some records are not part of a visitor request:
For anything else, contact privacy@databuddy.cc.
How is this guide?