Home
Softono

Qbittorrent Api

Open source MIT Python
501
Stars
75
Forks
8
Issues
3
Watchers
3 months
Last Commit

 About Qbittorrent Api

Python client implementation for qBittorrent's Web API

Platforms

Web Self-hosted

Languages

Python

Need Help Installing Qbittorrent Api?

We provide expert installation service for this software. Our team will install, configure, and secure Qbittorrent Api on your server. plans start at just $30.

Qbittorrent Api

View on GitHub

qBittorrent Web API Client

Python client implementation for qBittorrent Web API

GitHub Workflow Status (branch) Codecov branch PyPI PyPI - Python Version

Currently supports qBittorrent v5.2.1 (Web API v2.15.1) released on May 25, 2026.

User Guide and API Reference available on Read the Docs.

Features

  • The entire qBittorrent Web API is implemented.
  • qBittorrent version checking for an endpoint's existence/features is automatically handled.
  • If the authentication cookie expires, a new one is automatically requested in line with any API call.

Installation

Install via pip from PyPI

python -m pip install qbittorrent-api

Getting Started

import qbittorrentapi

# instantiate a Client using the appropriate WebUI configuration
conn_info = dict(
    host="localhost",
    port=8080,
    username="admin",
    password="adminadmin",
)
qbt_client = qbittorrentapi.Client(**conn_info)

# the Client will automatically acquire/maintain a logged-in state
# in line with any request. therefore, this is not strictly necessary;
# however, you may want to test the provided login credentials.
try:
    qbt_client.auth_log_in()
except qbittorrentapi.LoginFailed as e:
    print(e)

# if the Client will not be long-lived or many Clients may be created
# in a relatively short amount of time, be sure to log out:
qbt_client.auth_log_out()

# or use a context manager:
with qbittorrentapi.Client(**conn_info) as qbt_client:
    if qbt_client.torrents_add(urls="...") != "Ok.":
        raise Exception("Failed to add torrent.")

# display qBittorrent info
print(f"qBittorrent: {qbt_client.app.version}")
print(f"qBittorrent Web API: {qbt_client.app.web_api_version}")
for k, v in qbt_client.app.build_info.items():
    print(f"{k}: {v}")

# retrieve and show all torrents
for torrent in qbt_client.torrents_info():
    print(f"{torrent.hash[-6:]}: {torrent.name} ({torrent.state})")

# stop all torrents
qbt_client.torrents.stop.all()