Respectlytics Respectlytics

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.

Preview
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.

Delete
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.

Audit trail
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.

Why over-deletion is the better trade-off

6. A workflow that holds up

Five steps from request to record.

  1. 1

    Receive the request

    Note when it arrived and what the person asks for.

  2. 2

    Ask your legal team

    Is session-based analytics data in scope? If not, you may be done.

  3. 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. 4

    Preview, then delete

    Check the count in the dashboard or with the preview endpoint, then confirm.

  5. 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.