Request Integration¶
qBitrr integrates with popular request management systems (Overseerr and Ombi) to automatically search for user-requested content. This seamless integration ensures your users get their requested movies and TV shows as quickly as possible.
Overview¶
Request integration allows qBitrr to:
- Monitor Request Systems: Periodically poll Overseerr or Ombi for new requests
- Trigger Automated Searches: Command Radarr/Sonarr to search for requested content
- Respect Approval Workflows: Only process approved requests (configurable)
- Filter by Status: Skip already-fulfilled or denied requests
- Support Multiple Instances: Configure different request systems per Arr instance
Supported Request Systems¶
Overseerr¶
Modern, feature-rich request management for Plex/Jellyfin/Emby
- ✅ Full Support: Approved and unavailable request modes
- ✅ 4K Instances: Separate handling for 4K requests
- ✅ Release Date Filtering: Skips unreleased content automatically
- ✅ Advanced Status Handling: Processing, approved, available states
- ✅ Efficient API: Batch requests with caching
Use Case: Modern setups, public servers, 4K libraries
→ Overseerr Configuration Guide
Ombi¶
Established request management system
- ✅ Full Support: Approved and all-requests modes
- ✅ Simple API: Straightforward integration
- ✅ Denial Filtering: Skips denied requests
- ⚠️ No 4K Support: No native 4K request separation
- ⚠️ No Release Filtering: Cannot skip unreleased content
Use Case: Existing Ombi setups, simpler requirements
How It Works¶
Request Flow¶
graph TB
A[User Requests Content] --> B[Overseerr/Ombi]
B --> C{Request Approved?}
C -->|Yes| D[qBitrr Polls API]
C -->|No, ApprovedOnly=true| Z[Skipped]
C -->|No, ApprovedOnly=false| D
D --> E{Content Released?}
E -->|Yes| F[qBitrr Triggers Search]
E -->|No, Overseerr only| Z
F --> G[Radarr/Sonarr Searches Indexers]
G --> H[Torrent Found]
H --> I[qBittorrent Downloads]
I --> J[qBitrr Monitors & Imports]
J --> K[Request Marked as Available] Polling Mechanism¶
qBitrr polls request systems at regular intervals:
- Check Interval: Controlled by
SearchRequestsEvery(default: 300 seconds / 5 minutes) - Batch Requests: Fetches all pending requests in a single API call
- Filter Requests: Applies approval status, release date, availability filters
- Trigger Searches: Commands Radarr/Sonarr to search for matching content
- Delay Between Requests: Waits
SearchLoopDelayseconds between individual search commands (default: 30s) - Repeat Cycle: After processing all requests, waits
SearchRequestsEveryseconds before checking for new requests
Configuration Overview¶
Basic Setup¶
Enable request integration in your Arr instance configuration:
[Radarr-Movies]
Managed = true
URI = "http://localhost:7878"
APIKey = "your-radarr-api-key"
Category = "radarr-movies"
[Radarr-Movies.EntrySearch]
SearchMissing = true # REQUIRED: Enables search functionality
SearchRequestsEvery = 300 # Check for new requests every 5 minutes (300 seconds)
SearchLimit = 5 # Max concurrent searches
# Choose ONE request system:
# Option 1: Overseerr
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true
OverseerrURI = "http://localhost:5055"
OverseerrAPIKey = "your-overseerr-api-key"
ApprovedOnly = true
Is4K = false
# Option 2: Ombi
[Radarr-Movies.EntrySearch.Ombi]
SearchOmbiRequests = true
OmbiURI = "http://localhost:3579"
OmbiAPIKey = "your-ombi-api-key"
ApprovedOnly = true
Required Parent Settings¶
Request integration requires these settings in [EntrySearch]:
| Setting | Required | Purpose |
|---|---|---|
SearchMissing | ✅ CRITICAL | Master switch for ALL search functionality |
SearchRequestsEvery | ❌ Optional | Request check interval in seconds (default: 300) |
SearchLimit | ❌ Optional | Max concurrent searches (default: 5) |
CRITICAL: SearchMissing Dependency
SearchMissing MUST be true for request integration to work.
When SearchMissing=false, qBitrr's search loop is completely disabled, preventing:
- ❌ Missing media searches
- ❌ Request searches (Overseerr/Ombi)
- ❌ Upgrade searches
- ❌ Quality/Custom Format searches
Even if SearchOverseerrRequests=true or SearchOmbiRequests=true, requests will NOT be processed if SearchMissing=false.
This is by design: SearchMissing is the master switch for qBitrr's entire search subsystem.
Request Processing Modes¶
Approved-Only Mode (ApprovedOnly = true)¶
Recommended for public servers
- ✅ Only Approved Requests: qBitrr searches only admin-approved requests
- ❌ Pending Requests Ignored: Users must wait for admin approval
- ❌ Denied Requests Ignored: Rejected requests are skipped
When to Use: - Public Plex/Jellyfin/Emby servers - Controlled content libraries - Limited storage/bandwidth
Example:
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true
OverseerrURI = "http://localhost:5055"
OverseerrAPIKey = "your-api-key"
ApprovedOnly = true # Require admin approval
All Requests Mode (ApprovedOnly = false)¶
Recommended for private servers
- ✅ Approved Requests: Searched immediately
- ✅ Pending Requests: Searched immediately (auto-approval)
- ❌ Denied Requests Ignored: Rejected requests are still skipped
When to Use: - Family/friends servers - Trusted user base - Ample storage/bandwidth
Example:
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true
OverseerrURI = "http://localhost:5055"
OverseerrAPIKey = "your-api-key"
ApprovedOnly = false # Auto-approve all requests
Security Consideration
ApprovedOnly = false effectively auto-approves all user requests. Use only on trusted, private servers.
Multi-Instance Configuration¶
Separate Radarr and Sonarr Requests¶
Configure both movie and TV show request integration:
# Movies (Radarr)
[Radarr-Movies]
Managed = true
URI = "http://localhost:7878"
APIKey = "radarr-api-key"
Category = "radarr-movies"
[Radarr-Movies.EntrySearch]
SearchMissing = true
SearchRequestsEvery = 3
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true
OverseerrURI = "http://localhost:5055"
OverseerrAPIKey = "shared-api-key"
ApprovedOnly = true
Is4K = false # Standard quality
# TV Shows (Sonarr)
[Sonarr-Series]
Managed = true
URI = "http://localhost:8989"
APIKey = "sonarr-api-key"
Category = "sonarr-series"
[Sonarr-Series.EntrySearch]
SearchMissing = true
SearchRequestsEvery = 3
[Sonarr-Series.EntrySearch.Overseerr]
SearchOverseerrRequests = true
OverseerrURI = "http://localhost:5055" # Same Overseerr instance
OverseerrAPIKey = "shared-api-key" # Same API key
ApprovedOnly = true
Is4K = false
API Key Reuse
Both Radarr and Sonarr can use the same Overseerr/Ombi API key. qBitrr automatically filters requests by media type.
4K + Standard Instances (Overseerr Only)¶
Configure separate instances for 4K and standard quality:
# Standard Quality Radarr
[Radarr-Movies]
Managed = true
URI = "http://localhost:7878"
APIKey = "standard-api-key"
Category = "radarr-movies"
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true
OverseerrURI = "http://localhost:5055"
OverseerrAPIKey = "api-key"
Is4K = false # Standard quality requests
# 4K Quality Radarr
[Radarr-4K]
Managed = true
URI = "http://localhost:7879"
APIKey = "4k-api-key"
Category = "radarr-4k"
[Radarr-4K.EntrySearch.Overseerr]
SearchOverseerrRequests = true
OverseerrURI = "http://localhost:5055" # Same Overseerr
OverseerrAPIKey = "api-key" # Same API key
Is4K = true # 4K quality requests
Integration with Other Features¶
Combined with Missing Content Search¶
Request integration works alongside regular missing content searches:
[Radarr-Movies.EntrySearch]
SearchMissing = true # Search for missing monitored content
SearchLimit = 10 # Total searches across all sources
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true # Also search Overseerr requests
ApprovedOnly = true
Behavior: 1. qBitrr searches monitored missing content in Radarr 2. qBitrr searches approved Overseerr requests 3. Total concurrent searches respect SearchLimit (10 in this example)
Quality Upgrades with Requests¶
Combine request integration with quality upgrades:
[Radarr-Movies.EntrySearch]
SearchMissing = true
DoUpgradeSearch = true # Search for quality upgrades
QualityUnmetSearch = true # Search for unmet quality profiles
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true
ApprovedOnly = true
Behavior: - New Overseerr requests trigger immediate searches - Existing content is checked for quality upgrades - Quality profile requirements are enforced
Custom Format Enforcement¶
Enforce custom format scores for requested content:
[Radarr-Movies.EntrySearch]
SearchMissing = true
CustomFormatUnmetSearch = true # Search for CF score improvements
ForceMinimumCustomFormat = true # Block releases below threshold
[Radarr-Movies.EntrySearch.Overseerr]
SearchOverseerrRequests = true
ApprovedOnly = true
Behavior: - Requested content must meet custom format requirements - Releases below the minimum CF score are rejected - Searches continue until suitable release is found
Performance Optimization¶
Polling Frequency¶
Adjust SearchRequestsEvery based on request volume:
| Request Volume | SearchRequestsEvery | Check Frequency |
|---|---|---|
| Low (<10/day) | 600 | Every 10 minutes |
| Medium (10-50/day) | 300 | Every 5 minutes (default) |
| High (50+/day) | 120 | Every 2 minutes |
| Very High (100+/day) | 60 | Every minute |
Example:
[Radarr-Movies.EntrySearch]
SearchMissing = true
SearchRequestsEvery = 600 # Check for new requests every 10 minutes
Balance Responsiveness vs Load
- Lower values = More responsive to new requests, but more API calls
- Higher values = Less API load, but slower to process new requests
- Consider your user expectations and system resources
Search Limits¶
Balance SearchLimit to avoid overwhelming indexers:
| Indexer Plan | Recommended SearchLimit |
|---|---|
| Free tier | 3-5 |
| Paid tier | 10-15 |
| VIP tier | 20+ |
Example:
Monitoring & Logging¶
Log Entries¶
Request integration produces these log entries:
INFO - Overseerr requests: 5 pending, 3 approved
INFO - Triggering search for Overseerr request: Movie Title (2024)
DEBUG - Overseerr URI: http://localhost:5055
DEBUG - Overseerr API Key: ***
INFO - Search completed for request: Movie Title
Viewing Logs¶
Docker:
Native:
WebUI: Navigate to Logs tab and filter by "overseerr" or "ombi"
Troubleshooting¶
Common Issues¶
Requests Not Being Searched¶
Symptoms: Approved requests remain in "Requested" state
Solutions: 1. ✅ Verify SearchMissing = true in [EntrySearch] 2. ✅ Check request system integration is enabled 3. ✅ Ensure content has been released (not scheduled for future) 4. ✅ Verify API key is correct 5. ✅ Check request system is accessible from qBitrr
Connection Errors¶
Symptoms: "Couldn't connect to Overseerr/Ombi" in logs
Solutions: 1. ✅ Verify request system is running 2. ✅ Check URI uses correct protocol (http:// vs https://) 3. ✅ Ensure no trailing slashes in URI 4. ✅ Test API manually with curl 5. ✅ Check firewall/network connectivity
Wrong Requests Processed¶
Symptoms: 4K requests going to standard instance (or vice versa)
Solutions: 1. ✅ Verify Is4K setting matches instance type (Overseerr only) 2. ✅ Check Overseerr has separate 4K instances configured 3. ✅ Review qBitrr logs for request filtering
Best Practices¶
Security¶
- Protect API Keys: Store in environment variables, never commit to repositories
- Use HTTPS: Enable HTTPS for request systems exposed to internet
- Reverse Proxy: Place request systems behind Nginx/Caddy/Traefik
- Limit Access: Use
ApprovedOnly = truefor public servers
Performance¶
- Adjust Polling: Set
SearchRequestsEverybased on request volume - Monitor Indexers: Watch for rate limiting or API restrictions
- Optimize Search Limits: Balance
SearchLimitwith indexer capabilities
User Experience¶
- Approval Workflow: Use
ApprovedOnly = truefor public servers - Auto-Approval: Use
ApprovedOnly = falsefor trusted users/family - Notifications: Configure Overseerr/Ombi to notify users when content is available
Comparison: Overseerr vs Ombi¶
| Feature | Overseerr | Ombi |
|---|---|---|
| User Interface | Modern, React-based | Older, Angular-based |
| Media Discovery | Advanced (TMDB integration) | Basic |
| Request Workflow | Full (approve/decline/comment) | Basic approval |
| 4K Support | ✅ Native | ❌ Limited |
| Release Date Filtering | ✅ Yes | ❌ No |
| User Permissions | ✅ Granular (quotas, limits) | Basic roles |
| Performance | ✅ Fast, lightweight | Can be slow with many users |
| qBitrr Support | ✅ Full (approved/unavailable, 4K) | ✅ Full (approved mode only) |
Recommendation: Use Overseerr for new setups (better UX, active development, 4K support). Ombi is suitable for existing setups.
Next Steps¶
- Configure Overseerr: Overseerr Integration Guide
- Configure Ombi: Ombi Integration Guide
- General Search Configuration: Search Configuration
- Radarr Setup: Radarr Configuration
- Sonarr Setup: Sonarr Configuration
- Troubleshooting: Common Issues