How to handle data deletion requests
For developers whose app uses Respectlytics: whether analytics data is in scope when someone asks for erasure, and how to delete it by filter when it is.
Not legal advice. Regulations vary by jurisdiction and change over time; your legal team decides what applies to your app.
1. Do you need to delete analytics data?
The question is whether the data in Respectlytics counts as the person's data. Start with what it stores.
Stored for each event
event_name- such as button_clicked
session_id- replaced every two hours, hashed on the server
timestamp- when the event happened
platform- ios, android, web or other
country- from the IP address, which is discarded
Not stored with events
- user IDs or account identifiers
- device IDs such as the IDFA, GAID or IDFV
- email addresses or names
- IP addresses
- anything on the device
No stored field is a user ID or a device ID, so Respectlytics cannot tell which events belong to whom, and cannot carry out a per-user deletion on its side. That is by design: data that was never collected needs no deleting.
2. When deletion may still be appropriate
Respectlytics cannot tell users apart. Your own records might narrow things down.
Say your database shows that a user signed up on 15 January, uses iOS and lives in Germany. You could select the analytics events that match those filters. They may include that person's activity, together with events from everyone else who matches the same filters; the larger your user base, the more of it belongs to others.
Legal teams reach different conclusions. Some decide that no deletion from Respectlytics is needed. Some ask for a best-effort deletion by filter. Many accept deleting more than strictly needed, because deleting too much session data is the safer side to err on.
3. Two ways to delete
The dashboard for a one-off request, the API to build it into your own process. Both log every deletion.
In the dashboard
Open Delete Events in your app's sidebar, set the date range, platform, country and event name, preview the number of events that match, then type that number to confirm. The charts refresh when it is done.
Through the API
With a secret key from your account settings.
POST /delete/preview/- counts what matches
POST /delete/- deletes it, permanently
GET /deletions/- returns the audit trail
4. The API, step by step
Every request carries a secret key, made in Account Settings under Secret Keys, and the app key of the app in the X-App-Key header.
a. Preview what would be deleted
Always first. It counts the matching events and deletes nothing.
curl -X POST https://respectlytics.com/api/v1/events/delete/preview/ \
-H "Authorization: Bearer your-secret-key" \
-H "X-App-Key: your-app-key" \
-H "Content-Type: application/json" \
-d '{
"date_from": "2026-01-01",
"date_to": "2026-01-31",
"platform": "ios",
"country": "DE"
}'
# Response
{"events_matching": 1523}
The filters
date_from- Required. Start of the range, YYYY-MM-DD.
date_to- Required. End of the range, YYYY-MM-DD.
platform- Optional. ios, android, web or other.
country- Optional. A two-letter country code such as US or DE.
event_name- Optional. One event name.
b. Delete
Once the count looks right. This cannot be undone.
curl -X POST https://respectlytics.com/api/v1/events/delete/ \
-H "Authorization: Bearer your-secret-key" \
-H "X-App-Key: your-app-key" \
-H "Content-Type: application/json" \
-d '{
"date_from": "2026-01-01",
"date_to": "2026-01-31",
"platform": "ios",
"country": "DE"
}'
# Response
{"events_deleted": 1523, "deletion_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}
c. Keep the record
Every deletion, from the dashboard or the API, is logged. Keep the deletion_id as your record of how you handled the request.
curl https://respectlytics.com/api/v1/events/deletions/ \
-H "Authorization: Bearer your-secret-key" \
-H "X-App-Key: your-app-key"
# Response
{"deletions": [{"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"deleted_at": "2026-02-10T14:30:00Z", "events_deleted": 1523,
"filter_date_from": "2026-01-01", "filter_date_to": "2026-01-31",
"filter_platform": "ios", "filter_country": "DE", "filter_event_name": null}]}
5. Deleting more than one person's data
A filter is not a person. It catches everyone who matches.
Deleting iOS events from Germany in January removes every German iOS session from that month, not only the one person who asked. The more users you have, the more of the deleted data is theirs.
That is the other side of the same design. Precise per-user deletion would need a user ID in every event, and Respectlytics chose to have none. The deleted data held no user or device IDs, the remaining data still adds up to meaningful totals, and the audit trail records what was done.
6. A workflow that holds up
Five steps from request to record.
- 1
Receive the request
Note when it arrived and what the person asks for.
- 2
Ask your legal team
Is session-based analytics data in scope? If not, you may be done.
- 3
Build the filters
From your own records: the dates, the platform and the country. Narrower filters delete less of other people's data; broader ones miss less.
- 4
Preview, then delete
Check the count in the dashboard or with the preview endpoint, then confirm.
- 5
Keep the record
Save the deletion_id and the time, or read them back later from GET /api/v1/events/deletions/.
Questions about deletion
What Respectlytics can and cannot do with a deletion request.
Can Respectlytics tell which data belongs to a specific user?
No. None of the five stored fields is a user ID or a device ID, and session IDs are replaced every two hours and hashed on the server, so one person's events cannot be picked out.
If a user asks for deletion, do I need to delete data from Respectlytics?
That is for your legal team to decide. Some decide no deletion is needed, because none of the five stored fields ties an event to a person. Others delete by filter to be thorough, using your own records of when, on which platform and in which country someone used the app.
What if a deletion removes other users' data too?
That is expected. A filter by date, platform and country also matches other sessions from the same window. Deleting more session data than strictly needed does no harm, and it is the safer side to err on.
Can I delete data from the dashboard?
Yes. Delete Events in the sidebar offers the same filters, a preview of the count and a typed confirmation, and every deletion is logged just as it is through the API.
What about automatic retention?
Events are deleted automatically once they are older than the history your plan includes, and an app's events are deleted with your account.
Related
The rest of the developer documentation.
API reference Privacy policy snippet Privacy regulations guide
This information is provided for educational purposes and does not constitute legal advice. Regulations vary by jurisdiction and change over time. Consult your legal team to determine the requirements that apply to your situation.