Klaviyo has no "delete my suppressed profiles" button; the native path is export, rebuild a list, then a buried maintenance tab. This finds every suppressed profile, groups them by why they're suppressed, backs them up, and submits permanent deletion jobs, for data hygiene and privacy compliance.
⚷ your API key is used in-memory for this run and never reaches our servers · save it in Settings to skip re-enteringPaste a private API key. It's used only for this run and never stored on our servers. Save it in Settings if you would rather not re-enter it every run. Save it in Settings if you would rather not re-enter it every run.
profiles:read data-privacy:write
Find it in Klaviyo under Settings → API keys → Create Private API Key. Private keys start with pk_.
Every suppressed profile in your account, grouped by suppression reason.
Download a CSV of the profiles you're about to delete: email, reason, and when they were suppressed. Free.
Type DELETE to confirm. Klaviyo rate-limits deletions hard (60 per minute account-wide), so we pace at about 55 per minute and cap 2,000 per run, roughly 35 minutes at full cap. Run again for the rest.
Deletion uses Klaviyo's official Data Privacy API and is permanent. We show you exactly what will be deleted, require a CSV-backup step and a typed confirmation, and never touch profiles that aren't suppressed. Not affiliated with Klaviyo.
Klaviyo has no delete-my-suppressed-profiles button. This finds every suppressed profile, groups them by reason (spam complaints, hard bounces, invalid emails), backs them up to CSV, then submits permanent deletion jobs via Klaviyo's official Data Privacy API. For data hygiene and GDPR, not cost: suppressed profiles already don't bill.
It runs on your own Klaviyo data, in your browser session, against Klaviyo's official API. There is no middle layer holding your records and there is no migration to anywhere. You run it, you get the result, you carry on with your day.
It is a CSV, which is the point. Klaviyo will happily show you the numbers on a screen you cannot do anything with. This gives you the file, and the file goes wherever you need it.
The column names stay the same run to run, so if you build a Power BI report or a Sheets formula on top of it, re-running next month will not break what you built.
It will not touch anything you did not ask it to. It does not store your API key, it does not keep a copy of your data, and where an action cannot be reversed you get told that before you press the button, not after.
No. The key is held in memory for the length of the run and is gone when the tab closes. It is never written to our database and never appears in a log. You can revoke it in Klaviyo the moment you are done and nothing here breaks.
It is a plain CSV, so anything that reads a CSV will read it. Open it in Excel or Google Sheets, pull it into Power BI or Looker Studio, or load it into a warehouse table. The headers are clean and they do not change between runs, so a scheduled refresh will not break on you.
It streams the results as they arrive rather than holding everything in memory, and it respects Klaviyo's rate limits instead of hammering the API. Large accounts take longer, but they finish.
Yes, and you should. Every run starts with a preview of the exact records involved, and a CSV backup you can keep. Nothing is written until you say so.
Read the tool's own note above, because it differs by action. Where a change cannot be undone we say so plainly on the button itself rather than in the small print.
That is the whole question, and we do not have a good answer either. It is a gap that has been open for years, it is on the forums, and it never gets shipped. So we shipped it.