Estimate secure delete overwrite passes for SSD or HDD
On a modern hard disk, 1 complete overwrite pass is enough, while on an SSD no pass count is reliable, so a built-in sanitize or cryptographic erase is the better route. Choose your drive type and get advice that fits it. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Media type
- HDD
- Meaningful overwrite passes
- 1
Secure deletion advice is often reduced to a contest over overwrite-pass counts, but the storage medium matters more than the number. This estimator distinguishes a modern magnetic hard disk drive from a solid-state drive and returns practical, media-specific guidance. It explains when one overwrite pass is meaningful, when overwriting cannot reliably reach old physical data, and which device-level alternatives deserve consideration. The result is educational guidance for planning and review; it does not operate a drive, verify erasure, or certify compliance with a particular sanitization standard.
For a modern HDD, one complete pass is meaningful
On a functioning modern magnetic hard disk drive, one complete overwrite of every addressable user sector meaningfully replaces the recorded data. Repeating the process with elaborate patterns or many rounds does not add a meaningful practical recovery-resistance benefit for ordinary modern drives. That is why the estimator returns one pass for HDD rather than preserving historical multi-pass folklore.
Completion and scope still matter. Overwriting one file is not the same as overwriting the whole addressable device: a filesystem may have old copies, deleted space, snapshots, journals, or temporary data elsewhere. The drive may also have remapped an unhealthy sector, putting it outside normal logical access.
When an organizational policy requires device-level sanitization, use a supported sanitize command and record its result instead of assuming a file-deletion utility covered every location. If the drive is damaged, intermittently readable, or leaving organizational control under a strict policy, an approved physical-destruction path may be required. The answer therefore describes a meaningful overwrite count, not an unconditional certificate that every possible copy has disappeared.
For an SSD, overwrite passes are not a reliable measure
A solid-state drive translates logical addresses into physical flash locations through its controller. Wear leveling deliberately moves writes around so the same cells are not exhausted, while garbage collection, spare capacity, and bad-block remapping can leave older physical pages beyond ordinary host access. Consequently, writing once to every visible logical address does not prove that each previous physical copy was overwritten.
Writing the same logical range again can reach still more new locations, consume endurance, and yet leave the core assurance problem unresolved. The estimator reports zero meaningfully reliable overwrite passes for SSD: this does not mean doing nothing, and it does not claim that a single logical overwrite has no effect. It means no pass count can supply the guarantee people usually seek from secure erasure.
Prefer the device's supported sanitize or secure-erase operation, or a cryptographic erase when data was protected by suitable encryption and the relevant keys can be destroyed correctly. Confirm that the command applies to the exact device and interface, let it complete, and retain the status evidence required by your procedure.
Turn the estimate into a defensible deletion procedure
Start by identifying the actual media rather than guessing from a volume name or enclosure. A virtual disk, storage array, USB bridge, or cloud volume can hide the physical medium and may expose snapshots or replicas that a guest overwrite cannot reach. Choose SSD or HDD only when that classification is known.
Then treat the returned recommendation as an input to your process: check the device manufacturer's supported commands, your threat model, retention obligations, encryption design, and the sanitization policy that governs the data. Verify completion rather than counting attempts, and keep whatever record your audit process requires. Backups, replicas, filesystem snapshots, controller caches, and remote copies need separate lifecycle handling because erasing the local device does not erase them.
Escalate uncertain or high-impact cases to the person responsible for security and compliance.
What you can do with it
Write a drive disposal checklist
Select media-appropriate guidance before choosing a reuse, sanitization, or destruction step.
Review deletion tooling
Flag a workflow that applies historical multi-pass HDD assumptions to wear-leveled flash storage.
Explain an erasure decision
Give operators a concise rationale for one HDD pass or a device-level SSD sanitize operation.
FAQ
How many overwrite passes are meaningful for a modern HDD?
One complete pass over addressable user sectors is meaningfully effective. Additional patterned passes do not provide a meaningful practical benefit on a functioning modern magnetic drive.
How many overwrite passes securely erase an SSD?
No overwrite-pass count is reliably sufficient because wear leveling and remapping can leave older physical flash pages untouched. Use a supported sanitize, secure erase, or appropriate cryptographic erase method.
Does zero passes for SSD mean no action is necessary?
No. It means logical overwrite counts are the wrong assurance mechanism. Perform and verify an appropriate device-level or cryptographic erasure operation.
Does this capability erase or inspect my drive?
No. It returns deterministic guidance from the selected media type and cannot inspect hardware, execute commands, or certify an erasure result.
What happens for an unknown media type?
The accepted values are exactly SSD and HDD.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/security/secure-delete-passes-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"media_type":"HDD"}'const res = await fetch("https://api.kit.forhosting.com/security/secure-delete-passes-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"media_type": "HDD"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/secure-delete-passes-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"media_type": "HDD"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/secure-delete-passes-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"media_type":"HDD"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"media_type":"HDD"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/secure-delete-passes-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"media_type": "HDD"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.secure_delete_passes_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Turn the estimate into a defensible deletion procedure
For reused equipment, a verified device-level method may preserve the asset; for failed media or highly sensitive data, controlled destruction may be the appropriate endpoint. The estimator is deterministic and charges $0.002 per API request, making it suitable for checklists and workflow automation, but it cannot inspect firmware behavior or certify a physical outcome.
Technical questions
What does an API request cost?
Each API request costs $0.002. The same deterministic estimate can run in the browser.