← Blog
· ·

What Is Newznab? The API Standard Explained

Every time SABnzbd talks to an indexer, it uses Newznab — a simple HTTP standard that nobody thinks about but everyone relies on. Here's how it works.

Abstract dark API protocol diagram connecting indexer databases to XML-style document cards

Every time SABnzbd searches an indexer, something happens in the background that most people never think about. Your downloader sends a plain HTTP request to a URL. The indexer responds with XML. The downloader parses it, shows you results, and eventually fetches an NZB file using the same basic pattern. That whole exchange — the URL shape, the parameters, the XML structure — is Newznab. You've been using it this whole time.

Where it came from

Newznab started as an open-source indexer project — a PHP application you could self-host to run your own private Usenet index. The project itself is mostly defunct now, but the API it defined lived on. Other indexers adopted it, downloaders built against it, and eventually it became a de facto standard through sheer momentum. Nobody ratified it. Nobody maintains a spec document. It won by being first and being simple enough that everyone could implement it.

Today "Newznab-compatible" is a practical guarantee: if your indexer supports the standard and your downloader supports it, they'll talk to each other without any custom integration work. Mix and match freely.

What the API actually looks like

The whole thing runs over plain HTTPS GET requests. Every call goes to the same base path — typically /api — with a t parameter that specifies the function. An API key authenticates the request. Responses come back as XML.

That's it. No OAuth, no JSON, no webhooks. Just query strings and XML.

Capabilities

The first thing a downloader usually does when you add a new indexer is call the caps endpoint — short for capabilities. This returns metadata about the indexer: its name, what categories it supports, search limits, and feature flags.

GET /api?t=caps

The downloader reads this response to understand what it's working with. No API key required — it's public information.

Search

The search function takes a query and returns a list of matching releases.

GET /api?t=search&q=some+title&apikey=YOUR_KEY&cat=7000

The response is an RSS-like XML feed. Each item describes one release: its name, size, category, age, and an enclosure URL pointing to the NZB file. Your downloader renders this as search results. The cat parameter filters by category — which brings us to one of the quirkier corners of the standard.

The category system

Newznab categories are four-digit integers organised in a rough hierarchy. The thousands digit is the broad type; the rest narrows it down. Some common ones:

  • 1000 — Console (games)
  • 2000 — Movies
  • 5000 — TV
  • 6000 — XXX
  • 7000 — Other

Each top-level category branches into subcategories: 6010 for DVD, 6030 for HD, 6040 for UHD, and so on. Not every indexer uses every subcategory, and the mapping is loose — which is why the caps response exists. It tells you exactly which category IDs this particular indexer actually populates.

Fetching an NZB

Once you've found a release you want, your downloader fetches the NZB file through the get endpoint:

GET /api?t=get&id=RELEASE_ID&apikey=YOUR_KEY

The response is the raw NZB file — an XML document that describes the Usenet articles making up the release. SABnzbd takes this file and queues the download. The indexer's job ends here; everything after this point is between SABnzbd and your Usenet provider.

Why the standard matters

The unsexy answer is: interoperability. Because Newznab is a shared interface, tools like Radarr, Sonarr, Lidarr, and Prowlarr can talk to any compatible indexer without writing custom code for each one. You add an indexer URL and an API key once, and your entire automation stack gains access to it.

From the indexer's side, implementing Newznab means instant compatibility with years of existing tooling. No SDK to distribute, no integration guides to maintain. The protocol is simple enough that a compliant implementation is a few hundred lines of code.

From your side as a user, it means you're never locked in. Swap indexers, switch downloaders, run multiple indexers in parallel through an aggregator like Prowlarr — the standard makes all of it work transparently.

NZBporn and Newznab

NZBporn exposes a fully Newznab-compatible API on top of the prdb.net release catalog. When you add NZBporn to SABnzbd as a custom indexer, your downloader goes through exactly the flow described above: it calls caps to discover what NZBporn supports, sends search requests with your API key, and fetches NZB files through get.

Nothing proprietary, nothing to install. Just the same quiet handshake that's been running the NZB world for over a decade.