Skip to content

SABnzbd

SABnzbd-compatible download client API used by Radarr/Sonarr. See also API compatibility.

Headless ENV

Map any config key in the table to NZBDAV_CONFIG__... with the naming algorithm (api.categoriesNZBDAV_CONFIG__API__CATEGORIES).

Control Config key Default Effect
API Key api.key from FRONTEND_BACKEND_API_KEY if unset *Arr download client auth
Categories api.categories env/audio,software,tv,movies Letters/numbers/dashes
Manual Upload Category (upload-time picker since 1.2.0) api.manual-category uncategorized Queue page uploads; default for the category picker beside the Upload NZB button
Import Strategy api.import-strategy symlinks Symlinks (Plex) / STRM (Emby/Jellyfin)
Rclone Mount Directory rclone.mount-dir env MOUNT_DIR or /mnt/nzbdav When symlinks
Completed Downloads Dir api.completed-downloads-dir /data/completed-downloads When STRM
Base URL general.base-url http://localhost:3000 STRM / adapter absolute URLs
Ignored Files api.download-file-blocklist *.nfo, *.par2, … Glob blocklist for mounts (* and ?)
Filter sample videos since 0.10.0 api.sample-filter-enabled on Discard videos in sample release subfolders such as Sample/ since 1.3.0, even when no main video exists. Filename-only whole-word sample/samples matches are discarded only when under 20% of the largest video in the NZB. Category and release folder names are ignored.
Rename a single video to the release name since 1.3.0 api.rename-single-video-to-release on When a job mounts exactly one video, rename it to {release-folder}{extension}. Season packs and collisions keep the original name. New imports only.
Behavior for Duplicate NZBs api.duplicate-nzb-behavior increment increment / mark-failed
Trusted local hosts since 0.8.0 api.addurl-trusted-hosts env TRUSTED_INTERNAL_HOSTS SSRF allowlist for private addurl
Fail downloads without video or audio api.ensure-importable-video on Reject NZBs with no media files
Fail when non-media missing articles inverse of api.skip-non-video-on-missing-articles skip non-media by default Media files (video/audio) always fail on missing articles; companion files are skipped unless this is enabled
Article health check categories since 1.2.5 api.ensure-article-existence-categories empty (off) Per-category STAT checks plus a final direct-media BODY readiness read; may be slow
Article health check mode api.article-existence-check-mode full Full or per-file sampled verification
Always send full History api.ignore-history-limit on Ignore client history limit
Save backup copies of incoming NZBs api.nzb-backup-enabled off On-disk *.nzb copies
Backup location api.nzb-backup-location By category
Keep NZB backups (days) api.nzb-backup-retention-days 30 0 = forever

Queue capacity and admission limits are configured separately under Queue. The default user agent for retrieving NZBs, including matched addurl requests, is configured under Indexers.

STRM sidecar cleanup since 1.3.0

Generated STRM files are deleted together with their content (history delete-with-files, health repair, Remove Orphaned Files). Sidecars under the configured completed-downloads directory never count as library links for orphan cleanup — even when that directory sits inside the Library Directory.

Sampled article checks since 0.10.0

Categories selected under api.ensure-article-existence-categories use a full article check by default, preserving existing behavior. Set api.article-existence-check-mode to sampled to check the first and last segments plus an evenly spaced selection of middle segments in each important file. Sampling is applied per file so every file's tail is covered; this catches common truncated or partially removed releases without a full STAT sweep.

Small files (currently up to roughly 8,000 segments) are still checked in full. The sampled mode uses the same standard-depth selection as background health checks. It is a screen rather than a guarantee: urgent repair remains the backstop if an article disappears later or STAT succeeds while BODY fails.

For selected categories, InfiniDysk also reads the head and tail of direct media outputs before reporting a successful SAB completion since 1.2.5. This rejects unreadable container headers and short reads before Sonarr or Radarr begin import. It does not replace streaming corruption detection or PAR2 repair: damage limited to the middle of a release can only be detected when that part is read.

API-key rotation since 1.2.5

After rotating api.key, update the API key in every configured Sonarr/Radarr download-client entry and use its test action before resuming a bulk search. Rejected SAB API requests are logged without exposing the key, with failures for the same mode and category throttled.

Import strategies · Queue settings