# Why is an indexer separate from a download client?

Searching for a release and fetching it are two different jobs, done by two different kinds of service.

Canonical: https://kochab.io/docs/why-indexer-is-separate-from-download-client/

Sonarr and Radarr keep indexer managers and download clients as two separate services because one
holds your indexer credentials and returns candidate releases, and the other holds your download
client's own credentials and moves the bytes. Kochab follows the same split.

## What each one does

| | Indexer manager | Download client |
|---|---|---|
| Job | Hold your indexer credentials and search them through one endpoint | Fetch a chosen release and report queue progress |
| Protocol Kochab speaks | Each manager's own API (Prowlarr's `api/v1`, Jackett's JSON results endpoint, NZBHydra2's Newznab-compatible API) | Client-specific API (SABnzbd's API, qBittorrent's Web UI API, and so on) |
| Kochab connects to | Prowlarr, Jackett, NZBHydra2 | SABnzbd, NZBGet (Usenet); qBittorrent, Transmission, Deluge (torrents) |

## Why not combine them

Sonarr or Radarr is what connects the two: it can search several indexer managers and send the
release it picks to whichever download client you configured, but no indexer manager talks to a
download client directly. Merging the two would mean building indexer support into every download
client, or download-client support into every indexer manager.

Because the two stay separate, you can add or swap either side without touching the other. Add
Jackett alongside Prowlarr, or move an indexer from one manager to the other, and your download
client setup does not change. Add a second qBittorrent instance, and your indexers do not need
reconfiguring. Prowlarr's sync to Sonarr and Radarr works the same way: each app keeps its own
indexer entries and makes its own search decisions, even though those entries point back at
Prowlarr - see
[Set up Prowlarr indexer sync for Sonarr and Radarr](/docs/prowlarr-indexer-sync-sonarr-radarr/).

Kochab adds indexer managers and download clients as separate service types, matching the split
above: indexer managers under **Indexers**, download clients under **Download clients**. See
[Add and configure a service](/docs/add-a-service/) for how to add either,
[Prowlarr vs Jackett](/docs/prowlarr-vs-jackett/) and
[SABnzbd vs NZBGet](/docs/sabnzbd-vs-nzbget/) for what Kochab exposes through each option, and
[What is an *arr stack?](/docs/what-is-an-arr-stack/) for how these pieces fit into the rest of
the stack.