Skip to content

Available Fields

Stephen Cox edited this page Dec 10, 2025 · 4 revisions

Field Categories Overview

qBittorrent Automation provides access to 8 different API endpoint categories through dot notation.

Category API Endpoint API Calls Cache Scope Description
info.* /torrents/info Pre-loaded (free) Per execution Core torrent data from main list
trackers.* /torrents/trackers 1 per torrent Per execution Tracker information (collection)
files.* /torrents/files 1 per torrent Per execution File list and details (collection)
peers.* /sync/torrentPeers 1 per torrent Per execution Connected peers (collection)
properties.* /torrents/properties 1 per torrent Per execution Extended torrent metadata
webseeds.* /torrents/webseeds 1 per torrent Per execution Web seed sources (collection)
transfer.* /transfer/info 1 total (global) Per execution Global transfer statistics
app.* /app/preferences 1 total (global) Per execution Application preferences

Performance Notes:

  • info.*: Already loaded, use freely
  • Per-torrent fields: Cached after first use for that torrent
  • Global fields: Cached after first use, shared across all torrents
  • Collection fields (trackers, files, peers, webseeds): Return lists, operators check ANY item

Core Torrent Data

No additional API calls required - already loaded

Field Type Description Example Values
info.hash string Torrent info hash (40-char hex) "8c9a6e4f3b2d1a..."
info.name string Torrent name "Movie.2160p.BluRay"
info.state string Current state downloading, uploading, stalledUP, stalledDL, pausedUP, pausedDL, queuedUP, queuedDL, checkingUP, checkingDL, error, missingFiles, metaDL
info.category string Category name "movies", "" (empty)
info.tags string Comma-separated tags "hd,private", ""
info.size integer Total size in bytes 1073741824 (1 GB)
info.progress float Download progress (0.0-1.0) 0.75 (75%)
info.dlspeed integer Download speed (bytes/s) 1048576 (1 MB/s)
info.upspeed integer Upload speed (bytes/s) 524288 (512 KB/s)
info.downloaded integer Downloaded bytes 1073741824
info.uploaded integer Uploaded bytes 2147483648
info.ratio float Upload/download ratio 2.0
info.dl_limit integer Download limit (bytes/s, -1=unlimited) 1048576, -1
info.up_limit integer Upload limit (bytes/s, -1=unlimited) 524288, -1
info.num_seeds integer Connected seeds 5
info.num_leechs integer Connected leeches 2
info.num_complete integer Complete sources (from tracker) 50
info.num_incomplete integer Incomplete sources (from tracker) 10
info.eta integer Estimated time remaining (seconds) 3600 (1 hour)
info.seeding_time integer Total seeding time (seconds) 86400 (1 day)
info.added_on integer Unix timestamp when added 1609459200
info.completion_on integer Unix timestamp when completed 1609545600, -1 (not completed)
info.tracker string Primary tracker URL "https://tracker.example.com"
info.save_path string Save directory "/downloads/movies"
info.content_path string Full path to content "/downloads/movies/Movie"
info.priority integer Queue priority (1=highest, 8=lowest) 1
info.auto_tmm boolean Automatic Torrent Management enabled true, false
info.force_start boolean Force start enabled true, false

Common Use Cases:

# By state
- field: info.state
  operator: ==
  value: stalledUP

# By name pattern
- field: info.name
  operator: matches
  value: '(?i).*(1080p|2160p).*'

# By category
- field: info.category
  operator: ==
  value: ""  # No category

# By ratio
- field: info.ratio
  operator: ">="
  value: 2.0

# By age
- field: info.added_on
  operator: older_than
  value: "30 days"

# By size
- field: info.size
  operator: ">"
  value: 10737418240  # > 10GB

# By completion
- field: info.completion_on
  operator: "!="
  value: -1  # Has completed

Tracker Collection

One API call per torrent (cached after first use)

Collection: Returns list of values. Operators check if ANY tracker matches.

Field Type Description Example Values
trackers.url string Tracker announce URL "https://tracker.example.com/announce"
trackers.status integer Tracker status code 0=disabled, 1=not contacted, 2=working, 3=updating, 4=not working
trackers.tier integer Tracker tier (failover priority) 0, 1, 2...
trackers.num_peers integer Peers reported by this tracker 50
trackers.num_seeds integer Seeds reported by this tracker 30
trackers.num_leeches integer Leeches reported by this tracker 20
trackers.num_downloaded integer Times downloaded (from tracker) 1000
trackers.msg string Tracker status message "Success", "Unregistered", "Not found"

Collection Behavior:

# Returns TRUE if ANY tracker URL contains ".private"
- field: trackers.url
  operator: contains
  value: ".private"

# Returns TRUE if ANY tracker status is 4 (not working)
- field: trackers.status
  operator: ==
  value: 4

Common Use Cases:

# Private tracker detection
- field: trackers.url
  operator: contains
  value: ".private"

# Specific tracker
- field: trackers.url
  operator: contains
  value: "tracker.example.com"

# Working trackers only
- field: trackers.status
  operator: ==
  value: 2

# Dead trackers
- field: trackers.status
  operator: in
  value: [0, 4]

File Collection

One API call per torrent (cached after first use)

Collection: Returns list of values. Operators check if ANY file matches.

Field Type Description Example Values
files.name string File path/name within torrent "Movie/movie.mkv", "sample.avi"
files.size integer File size in bytes 1073741824
files.progress float File download progress (0.0-1.0) 0.95
files.priority integer File priority 0=do not download, 1=normal, 6=high, 7=maximum
files.is_seed boolean File is complete true, false
files.piece_range list[int] Piece range [start, end] [0, 500]

Collection Behavior:

# Returns TRUE if ANY file name ends with .rar
- field: files.name
  operator: matches
  value: '(?i)\.rar$'

# Returns TRUE if ANY file is larger than 10GB
- field: files.size
  operator: ">"
  value: 10737418240

Common Use Cases:

# Block specific file extensions
- field: files.name
  operator: matches
  value: '(?i)\.(rar|zip|7z)$'

# Detect sample files
- field: files.name
  operator: contains
  value: "sample"

# Find large files
- field: files.size
  operator: ">"
  value: 5368709120  # > 5GB

Extended Properties

One API call per torrent (cached after first use)

Contains extended metadata not available in info.*.

Field Type Description
properties.save_path string Save directory path
properties.creation_date integer Torrent creation timestamp
properties.piece_size integer Piece size in bytes
properties.comment string Torrent comment field
properties.total_wasted integer Wasted bytes (hash fails)
properties.total_uploaded integer Total uploaded bytes
properties.total_downloaded integer Total downloaded bytes
properties.up_limit integer Upload limit (bytes/s)
properties.dl_limit integer Download limit (bytes/s)
properties.time_elapsed integer Active time (seconds)
properties.seeding_time integer Seeding time (seconds)
properties.nb_connections integer Current connections
properties.nb_connections_limit integer Connection limit
properties.share_ratio float Share ratio
properties.addition_date integer Date added timestamp
properties.completion_date integer Date completed timestamp
properties.created_by string Torrent creator string
properties.dl_speed_avg integer Average download speed
properties.dl_speed integer Current download speed
properties.eta integer ETA in seconds
properties.last_seen integer Last seen complete timestamp
properties.peers integer Connected peers
properties.peers_total integer Total peers in swarm
properties.pieces_have integer Pieces downloaded
properties.pieces_num integer Total pieces
properties.reannounce integer Seconds until next reannounce
properties.seeds integer Connected seeds
properties.seeds_total integer Total seeds in swarm
properties.total_size integer Total size in bytes
properties.up_speed_avg integer Average upload speed
properties.up_speed integer Current upload speed

Note: Most data overlaps with info.*. Use properties.* only when you need fields not available in info.*.

Global Transfer Info

Single API call per execution (cached, shared across all torrents)

Global transfer statistics for the entire qBittorrent instance.

Field Type Description
transfer.dl_info_speed integer Global download speed (bytes/s)
transfer.up_info_speed integer Global upload speed (bytes/s)
transfer.dl_info_data integer Session downloaded bytes
transfer.up_info_data integer Session uploaded bytes
transfer.connection_status string Connection status: "connected", "firewalled", "disconnected"
transfer.dht_nodes integer DHT nodes connected

Use Cases:

# Pause torrents if global speed maxed
- field: transfer.dl_info_speed
  operator: ">"
  value: 10485760  # > 10 MB/s

# Check connection before operations
- field: transfer.connection_status
  operator: ==
  value: "connected"

Application Preferences

Single API call per execution (cached, shared across all torrents)

qBittorrent application settings.

Field Type Description
app.save_path string Default save path
app.temp_path string Temp path for incomplete downloads
app.temp_path_enabled boolean Use temp path
app.max_active_downloads integer Max active downloads
app.max_active_torrents integer Max active torrents
app.max_active_uploads integer Max active uploads
app.dl_limit integer Global download limit (bytes/s, -1=unlimited)
app.up_limit integer Global upload limit (bytes/s, -1=unlimited)
app.max_connec integer Max global connections
app.max_connec_per_torrent integer Max connections per torrent
app.dht boolean DHT enabled
app.pex boolean Peer Exchange enabled
app.lsd boolean Local Service Discovery enabled
app.encryption integer Encryption: 0=prefer unencrypted, 1=prefer encrypted, 2=require encrypted
app.proxy_type integer Proxy type: -1=none, 1=HTTP, 2=SOCKS5
app.queueing_enabled boolean Queueing system enabled
app.autorun_enabled boolean Run external program on completion
app.autorun_program string External program path

Use Cases:

# Check encryption requirement
- field: app.encryption
  operator: ==
  value: 2  # Require encrypted

# Verify queueing enabled
- field: app.queueing_enabled
  operator: ==
  value: true

🎯 qbt-rules

v0.3.0 | GitHub


📚 Getting Started

📖 Core Concepts

🔧 Configuration

🆘 Help & Support

🤝 Contributing


🆕 What's New (v0.3.0)

  • ✅ Unified CLI (qbt-rules)
  • ✅ Custom triggers
  • ✅ Trigger-agnostic mode
  • ✅ Size operators (50GB)

🔗 Quick Links

Clone this wiki locally