How to Have qBittorrent Delete Torrents After Download Automatically

qBittorrent is one of the most feature-rich torrent clients available, and one of its less-discussed capabilities is the ability to automatically remove a torrent — and optionally its data — once downloading is complete. Whether you're managing limited disk space, running an automated media workflow, or simply prefer a clean queue, understanding how this feature works (and its variables) makes a meaningful difference in how you set it up.

What "Delete After Download" Actually Means in qBittorrent

First, a critical distinction: qBittorrent separates the torrent entry from the downloaded files themselves. When people ask about deleting after download, they usually mean one of three things:

  • Remove the torrent from the queue (the .torrent metadata and tracking info), but keep the files
  • Delete the torrent and the downloaded data (files are wiped from disk)
  • Move or export files after completion, then remove the torrent

These are not the same operation, and qBittorrent handles each differently. Knowing which outcome you want determines which settings path you follow.

Using the Built-In "Run External Program" Feature

qBittorrent doesn't have a single "delete after download" toggle — instead, it uses a post-download automation hook found under:

Tools → Options → Downloads → Run external program on torrent completion

This field accepts a command that executes when a torrent finishes. However, this is primarily for running scripts or external programs, not for natively deleting the torrent entry from within the client itself.

For most users, the more practical approach involves qBittorrent's category and tag system combined with its search/filter tools, or using the qBittorrent Web API if you're comfortable with scripting.

The Most Common Method: Auto-Remove via qBittorrent's Built-In Options

Step 1 — Enable Automatic Torrent Management

Go to Tools → Options → BitTorrent and look for the "Automatically add these trackers" and "Default Save Path" sections. More importantly, check whether "Automatically manage torrent (move data when category changes)" is enabled — this affects where files land and matters if you're using categories to trigger cleanup.

Step 2 — Use "Remove Torrent and Delete Files" Manually (or via Script)

For direct removal after seeding or download:

  1. Right-click any completed torrent in the queue
  2. Select "Remove"
  3. Choose whether to "Also permanently delete the files"

This is a manual approach. If you want it automated, you'll need to go further.

Step 3 — Automate With qBittorrent's Web UI and API

qBittorrent exposes a REST API through its Web UI that allows external scripts to query torrent state and issue delete commands. A script can:

  • Poll the API for torrents with state "pausedUP" (completed and paused) or "uploading" (seeding)
  • Check whether a torrent has met a seeding ratio or time limit
  • Issue a DELETE API call with the deleteFiles=true or deleteFiles=false parameter

This is the most reliable path for true automatic deletion after download, but it requires some comfort with scripting (Python and shell scripts are commonly used for this).

Setting Seeding Limits to Trigger Removal

qBittorrent has native seeding limit controls that can pause or remove a torrent once conditions are met:

Go to Tools → Options → BitTorrent → Seeding Limits

SettingWhat It Controls
Maximum ratioStops seeding when upload/download ratio is reached
Maximum seeding timeStops seeding after N minutes
Action when limit reachedPause torrent OR Remove torrent

🔧 Setting the action to "Remove torrent" will pull it from the queue automatically once limits are hit. You can also check "Delete files" depending on your version of qBittorrent and OS.

This method is the closest thing to a native "delete after download" workflow — especially if you set a ratio of 0 (meaning: don't seed at all, remove immediately after completing the download).

Variables That Affect How This Works for You

Several factors determine which approach fits your situation:

qBittorrent version — The Web UI API and seeding limit options have evolved across versions. Older builds may lack the "remove" action in seeding limit settings. Checking your installed version against the changelog matters here.

Operating system — Running qBittorrent on Windows, Linux, or macOS affects how external scripts are invoked and what file path formats look like in automation commands.

Use case complexity — A simple "clear my queue when done" need is handled entirely within the GUI. An automated home server setup that feeds a media library and removes source files afterward typically requires API scripting or third-party tools like qBittorrent-nox combined with tools such as autoremove-torrents (a Python-based utility specifically built for this workflow).

Seeding obligations — If you're using private trackers with ratio requirements, auto-deleting before reaching a minimum seed ratio can affect your standing. The same automation logic applies, but the trigger threshold changes significantly.

File destination workflow — If you're using qBittorrent alongside a media manager like Sonarr or Radarr, those tools often handle the move-and-delete step themselves through their own completion handling, making qBittorrent-native deletion redundant or even disruptive.

The Spectrum of Setups

At one end: a casual user downloading a few files who just wants the queue to stay clean. The seeding limit set to ratio 0 with "Remove torrent" action handles this entirely in the GUI with no scripting needed.

At the other end: a headless Linux server running qBittorrent-nox as a service, integrated with a media stack, where a Python script queries the API on a cron schedule, checks completion state and category tags, moves files to a watched folder, and issues delete commands with deleteFiles=true — all without any manual interaction.

Most setups fall somewhere between these two. 🗂️

The right configuration depends on whether you need files preserved after the torrent is removed, how automated you need the process to be, what other tools are in your workflow, and how comfortable you are stepping outside the GUI. Those variables are specific to your environment — and they're what determine which of these paths actually fits.