Search Providers
Configure Newznab and Torznab indexers in Settings or config.ini, including the entry format, Usenet retention, and provider search priority.
Search providers tell Comicarr where to look for releases. Comicarr supports Newznab (Usenet indexers) and Torznab (torrent indexers via Prowlarr, Jackett, or a native Torznab API).
| Provider type | Where you configure it |
|---|---|
| Newznab | Settings → Search → Usenet indexers (add, edit, remove, enable), or config.ini |
| Torznab | Settings → Search → Torrent indexers (since v0.33.0), or config.ini |
Torznab editor since v0.33.0
Since v0.33.0 the Settings → Search tab has a Torznab editor mirroring the Newznab one, so hand-editing extra_torznabs is no longer required. The Torznab form has no RSS uid field, since that prefix is a Newznab-only quirk (see below). The config.ini format documented on this page remains valid for hand-editing and is what the editor writes.
Provider entry format
Both EXTRA_NEWZNABS and EXTRA_TORZNABS hold a list of provider records, flattened into one line of comma-space separated fields. Each record is 6 fields, or 7 when Comicarr has assigned it a provider id.
| Position | Field | Notes |
|---|---|---|
| 1 | Name | Display name. Must be unique across both the Newznab and Torznab lists. |
| 2 | Host | Full URL to the API endpoint. Must be http:// or https://. |
| 3 | Verify TLS | 1 or 0 (true/false, yes/no, on/off also accepted). |
| 4 | API key | Write it in plaintext; Comicarr encrypts it in place on the next config write (see below). |
| 5 | Categories | Separator is #, never a comma. See Category IDs. |
| 6 | Enabled | 1 or 0. A provider with 0 here is never searched. |
| 7 | Provider id | Integer, assigned by Comicarr. Omit it when adding an entry by hand. |
Field count must be consistent
Comicarr splits the line into fixed-width records, so every record in a given key must have the same number of fields. Mixing a 6-field entry with a 7-field one produces Provider configuration has an invalid field count and the whole key is rejected. The simplest safe move when hand-editing is to drop the id from every entry and let Comicarr reassign them.
Fields cannot contain , (comma-space), because that is the delimiter. This is why categories use #.
Torznab providers
Add, edit, enable, and remove Torznab indexers under Settings → Search → Torrent indexers (since v0.33.0), or hand-edit extra_torznabs using the record format above. Either way, a Torznab provider is only searched when all four of these are true. Missing any one of them is the usual reason a correctly-typed provider appears to do nothing:
Torrents are enabled
ENABLE_TORRENTS = True under [Torrents].
Torrent searching is enabled
ENABLE_TORRENT_SEARCH = True under [Torrents]. This is a separate switch from ENABLE_TORRENTS.
Torznab support is enabled
ENABLE_TORZNAB = True under [Torznab]. This is the Enable Torznab indexers toggle in Settings → Search.
At least one entry is enabled
The entry's own enabled field (position 6) is 1.
Worked example: one Prowlarr indexer
[Torrents]
enable_torrents = True
enable_torrent_search = True
[Torznab]
enable_torznab = True
extra_torznabs = Prowlarr, http://prowlarr:9696/1/api, 1, YOUR_PROWLARR_API_KEY, 7030, 1Reading that extra_torznabs line field by field: name Prowlarr, host http://prowlarr:9696/1/api, verify TLS 1, API key YOUR_PROWLARR_API_KEY, category 7030, enabled 1.
The host is the complete Torznab feed URL that Prowlarr or Jackett gives you, not the application's base URL. Copy it from the indexer's Torznab Feed / Copy Torznab Feed button:
| Source | Typical host value |
|---|---|
| Prowlarr | http://prowlarr:9696/1/api, where the 1 is that indexer's id |
| Jackett (single indexer) | http://jackett:9117/api/v2.0/indexers/nyaasi/results/torznab |
| Jackett (all indexers) | http://jackett:9117/api/v2.0/indexers/all/results/torznab |
Torznab hosts are used verbatim
Comicarr appends ?t=search&… to the Torznab host exactly as you wrote it, trimming a trailing / and nothing else. If the URL is missing its /api or /torznab suffix, every search 404s. Newznab hosts get one bit of help Torznab hosts do not: Comicarr appends /api when the host does not already end in api.
Worked example: two indexers
Both records go on the same line, one after the other, with no separator beyond the usual , :
[Torznab]
enable_torznab = True
extra_torznabs = Prowlarr, http://prowlarr:9696/1/api, 1, KEY_ONE, 7030, 1, Jackett, http://jackett:9117/api/v2.0/indexers/all/results/torznab, 1, KEY_TWO, 7030#8020, 1That is 12 fields, or two 6-field records. The second entry searches two categories, 7030 and 8020, joined with #.
Torznab settings
| Setting | Section | Type | Default | Description |
|---|---|---|---|---|
ENABLE_TORZNAB | [Torznab] | bool | False | Master switch for Torznab support. |
EXTRA_TORZNABS | [Torznab] | string | none | The provider list, in the format above. |
ENABLE_TORRENTS | [Torrents] | bool | False | Master switch for torrents. |
ENABLE_TORRENT_SEARCH | [Torrents] | bool | False | Allow searching torrent providers. |
When an entry carries no category at all, Comicarr falls back to 8020. Set it explicitly. That fallback is a legacy default carried forward, and nobody chose it for you.
Legacy TORZNAB_* settings
config.ini may still contain single-provider keys under [Torznab]: torznab_name, torznab_host, torznab_apikey, torznab_category, torznab_verify. They were retired years ago and are not read by the search code. Populating them by hand does not configure a provider.
Since v0.29.1, Comicarr no longer ignores them silently. On every startup:
| What you have | What Comicarr does |
|---|---|
| A complete entry (name + host + API key + category) | Folds it into extra_torznabs as a real provider, then deletes the legacy keys from config.ini. Its enabled flag is taken from ENABLE_TORZNAB. |
| An incomplete entry | Logs a warning naming the missing keys and telling you it is not used for searching. The entry is left alone. |
| A name that collides with an existing provider | Logs a warning and leaves the entry unmigrated. Provider names are unique across the Newznab and Torznab lists together. |
A host already present in extra_torznabs | Removes the duplicate legacy keys. |
After a successful absorption the legacy keys are gone from config.ini and the provider appears in extra_torznabs. That is the expected end state, so leave them gone. Manage the absorbed provider, and add further ones, in Settings → Search or by appending records to extra_torznabs.
Newznab providers
Newznab is the standard API for Usenet indexers such as NZBgeek, DrunkenSlug, and NZBFinder. The easiest path is Settings → Search → Usenet indexers, which adds, edits, enables, and removes indexers without touching config.ini. Indexer changes there are saved with their own Save indexers button, separately from the rest of the page.
The equivalent config.ini form uses the same record layout:
[Newznab]
newznab = True
extra_newznabs = NZBgeek, https://api.nzbgeek.info, 1, YOUR_API_KEY, 1#7030, 1| Setting | Section | Type | Default | Description |
|---|---|---|---|---|
NEWZNAB | [Newznab] | bool | False | Master switch for Newznab support. It is a boolean, not a provider definition. |
EXTRA_NEWZNABS | [Newznab] | string | none | The provider list, in the format above. |
The Newznab category field is not just categories
For Newznab entries, field 5 is uid#categories, a legacy layout where the part before the first # is the indexer UID used for RSS and the part after it is the category list.
1#7030→ uid1, category7030. This is the form you want.7030(no#) → read as uid7030, and the category falls back to the default7030. It happens to work for comics, which is why the mistake is easy to miss.1#7030#7020→ uid1, categories7030,7020.
In the Settings UI the Categories box stores commas as #, so type 1,7030 there to get 1#7030.
Torznab entries do not have the uid prefix. Field 5 there is the category list on its own.
Category IDs
Comicarr's defaults are the standard Newznab/Torznab book categories: 7030 (Books/Comics) for Newznab, 8020 for Torznab. Prowlarr and Jackett both map their indexers onto the same standard numbering, so 7030 is the right starting point for comics on either.
Ask your indexer what it actually supports. Every Torznab endpoint answers a capabilities query:
curl 'http://prowlarr:9696/1/api?t=caps&apikey=YOUR_API_KEY'The <categories> block in the response lists every id the indexer will accept. Manga is frequently under a different id than comics on trackers that separate them.
API keys and encryption
Write API keys in plaintext when hand-editing. On the next config write Comicarr encrypts them in place, so afterwards the field reads as a Fernet token beginning with gAAAAA. That is normal and means the key was picked up. See Credential Encryption.
The GET /api/config/providers endpoint and the Settings UI never return provider API keys; they report only whether a key is set. Changing a provider's host to a different origin requires re-entering the key, so a stored credential is never redirected to a new server.
Usenet retention
| Setting | Section | Type | Default | Description |
|---|---|---|---|---|
USENET_RETENTION | [Providers] | int | 3500 | Maximum age in days for Usenet articles. Results older than this are filtered out. Most major providers retain 3500+ days. |
Provider priority
| Setting | Section | Type | Default | Description |
|---|---|---|---|---|
PROVIDER_ORDER | [Providers] | string | none | Search priority, as alternating position, name pairs: 0, Prowlarr, 1, NZBgeek. |
PROVIDER_ORDER is maintained by Comicarr, not hand-authored. It is rebuilt on every startup from the providers that are currently enabled: newly enabled providers are appended to the end, and providers you disable are dropped. Reorder by editing the position numbers; do not add names for providers that are not enabled elsewhere.
Search tiers
Comicarr uses a tiered search strategy to reduce unnecessary API calls.
| Setting | Section | Type | Default | Description |
|---|---|---|---|---|
SEARCH_TIER_CUTOFF | [General] | int | 14 | Number of days after release before Comicarr escalates to lower-priority providers. |
Tier 1: recent releases
For issues released within the last SEARCH_TIER_CUTOFF days, Comicarr searches only the highest-priority providers in PROVIDER_ORDER. This keeps API usage low for new releases that are widely available.
Tier 2: older releases
Once an issue is older than SEARCH_TIER_CUTOFF days without a match, Comicarr expands the search to all configured providers. This gives the best chance of finding back issues.
Set SEARCH_TIER_CUTOFF to 0 to always search all providers. This increases API usage but ensures the widest coverage from day one.
Checking your work
- Settings → Acquisition reports whether any search route is actually usable, and names what is missing when none is.
- After editing
config.ini, restart Comicarr and check the log for[CONFIG]lines. A rejected provider list or an absorbed legacy entry is reported there. - Raise the log level to
2 · Debugin Settings → Logs and run a search; the provider name and the URL Comicarr builds are logged per query. See Logging. - Pack and bundle releases (common for manga torrents) are rejected unless Allow packs is enabled on the series. See Downloading.
- A series with Allow packs on sends one extra bare-title query to Torznab indexers only (since v0.36.0), because pack titles carry no issue number for the numbered queries to match. See The bare-title pack pass.