Data and privacy
Data, retention and deletion
How long your data is kept, what the retention job removes, how to export it and how to delete it.
What is stored
Each recorded event holds the page path and title, the referring site, the campaign parameters, the device, browser and operating system labels, the coarse country, the pseudonymous visitor identifier, the session identifier, the event properties and the timestamps.
No address is ever stored. The address of a request is used for the country header, for the rate limit counter and, when you ask for it, for the internal traffic exclusion. The exclusion list keeps a keyed hash, not the address.
Revenue events hold the amount in the smallest unit of the currency, the currency code, the provider and transaction identifier, and a reference to the customer when the provider gives one. No card data is ever received or stored.
How long it is kept
The retention window belongs to the plan and can be shortened for a website in its settings. A scheduled job runs every night and removes the raw events, the sessions and the derived aggregates that fall outside the window.
The aggregates are removed with the raw events, not after them. A number that was derived from a deleted event cannot reappear in a report, so a report never shows a figure that the underlying data no longer supports.
Two things are kept for longer because they are not analytics data: the records of the actions taken in the account, and the ledger of the webhooks that were received, so a payment provider cannot cause a payment to be counted twice.
Exporting
A website can be exported as a CSV of its events, with the range and the filters of the report you were looking at. The export accepts an API key with the read scope, and the key belongs to one website, so it can only export that website.
curl "https://abackanalytics.com/api/sites/$SITE_ID/export?start=2026-10-01&end=2026-10-31" \
-H "authorization: Bearer $ABACK_API_KEY" \
-H "accept: text/csv" \
-o events.csvThe number of rows an export may return is bounded by the plan. When the limit is reached the export says so in the x-export-truncated header rather than returning a partial file without saying it.
Deleting a website
Deleting a website removes its events, its sessions, its revenue events, its goals, its funnels, its public dashboards, its API keys, its integration credentials and every aggregate derived from it. The archived events in the object store are removed with it.
The action asks for confirmation and is recorded in the activity trail of the account with the name of the person who did it.
Deleting an account
Deleting an account removes every website in it, with everything listed above, and removes the account itself, its members, its invites, its API keys and its subscription record.
The account deletion runs as a sequence of steps, and each step is idempotent, so a retry after a failure is safe. The activity trail of the account is removed with the account, because the trail is part of the account data.
Billing records are kept for as long as the contract and the law require, and they hold no analytics data. They are not part of the analytics export.
The metric definitions
Every number in the product has a written definition: what a visitor is, when a session ends, what a landing page is, how a conversion rate is calculated and how a revenue figure is derived. The definitions live in docs/metric-definitions.md in the repository, and the interface links to them for the figures that are not obvious.
If a number looks wrong, that file is the place to check what the product means by it.