API & developer guide

Free, read-only, no key

Everything The RarBg indexes is available to your scripts, apps, media servers and AI agents: a JSON API with a 0-100 quality score for every release, a Torznab feed for Sonarr, Radarr and Prowlarr, a Stremio addon and RSS. No sign-up and no key.

Contents

Quick start

The best releases of a movie, by IMDb id:

curl -s "https://rarbg.unblockninja.st/api/v1/title/tt1375666/" | jq '.torrents[:3][] | {name, qualityScore, seeders, magnet}'

Every 4K HDR movie from 2024 or later rated 7.5+, most seeded first:

curl -s "https://rarbg.unblockninja.st/api/v1/search/?category=movies&resolution=2160p&hdr=1&year_min=2024&rating_min=7.5"

Python:

import requests
r = requests.get("https://rarbg.unblockninja.st/api/v1/search/", params={"q": "dune part two", "sort": "quality", "limit": 5})
for t in r.js?v=1.05on()["results"]:
    print(t["qualityScore"], t["name"], t["seeders"])

JavaScript (CORS is open, so this works from a browser page too):

const r = await fetch("https://rarbg.unblockninja.st/api/v1/search/?q=oppenheimer&sort=quality");
const { results } = await r.js?v=1.05on();

Keys & rate limits

No key is needed: every client gets 30 requests a minute and 10,000 a day. A free key raises that to 60 a minute and 50,000 a day and shows your usage. Each account gets one key: create an account or log in, then get it below.

Checking your account…

# with your account's access token (POST /auth/api/v1/token/ with email + password)
curl -s -X POST "https://rarbg.unblockninja.st/api/v1/keys/" -H "Authorization: Bearer <access token>" -H "Content-Type: application/json" -d '{"label": "my app"}'
# {"key": "trb_…", "limit_per_minute": 60, "limit_per_day": 50000, …}  — shown once, keep it
curl -s "https://rarbg.unblockninja.st/api/v1/keys/me/" -H "X-Api-Key: trb_…"            # label, owner, last 7 days of use
curl -s "https://rarbg.unblockninja.st/api/v1/keys/" -H "Authorization: Bearer <access token>"   # your keys
curl -s -X DELETE "https://rarbg.unblockninja.st/api/v1/keys/<key or its last 4>/" -H "Authorization: Bearer <access token>"

Limits apply to the API, Torznab, RSS and Stremio streams, and to the pages that call TMDB (/upcoming/, /collections/, /streaming/) and to searches with year / rating / genre filters or order:quality; ordinary browsing is not counted. IPv6 clients are counted per /64.

Use a key as X-Api-Key, Authorization: Bearer trb_… or ?apikey= (Torznab clients put their API key there; any value works without one). Limited responses carry X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (this minute) and X-RateLimit-Limit-Day, X-RateLimit-Remaining-Day, X-RateLimit-Reset-Day (this UTC day); over either limit you get 429 with Retry-After and "scope": "minute" or "day".

Clients, MCP & Postman

  • Python (standard library only): trb_client.py — Client("https://rarbg.unblockninja.st").search(q="dune", sort="quality", clean=1)
  • JavaScript (Node 18+ / browsers): trb-client.mjs — await new Client("https://rarbg.unblockninja.st").best("tt1375666", "2160p")
  • Interactive docs: Swagger UI — try every endpoint from the browser.
  • Postman / Insomnia / Bruno: import /api/postman.js?v=1.05on or the OpenAPI spec.
  • MCP server for Claude, Cursor, Cline and other agents: index.mjs + package.js?v=1.05on (setup). Tools: search_torrents, get_title, suggest_titles, where_to_watch, upcoming_releases, tv_calendar.
  • Agent skill (Claude Code / OpenClaw SKILL.md): SKILL.md.
  • Prowlarr: generic Torznab (below), or the JSON-API definition therarbg.yml for Prowlarr's custom-definitions folder.

GET /api/v1/search/ — every filter is optional and they combine.

ParameterMeaningExample
qKeywordsthe bear s03e01
categoryMovies, TV, Anime, Music, Games, Apps, Books, XXX, Other (comma list)movies,tv
imdb, season, episodeEvery torrent of one title (then season / episode)imdb=tt0903747&season=5
resolution2160p, 1080p, 720p, 480p2160p,1080p
sourceBluRay, WEB-DL, WEBRip, HDTV, DVDRip, CAMweb-dl
codecx265, x264, AV1x265
hdr1 = HDR / Dolby Vision only1
audioAtmos, TrueHD, DTS, AC3, AAC, FLAC, MP3atmos
languageEnglish, French, German, Italian, Spanish, Hindi, Multi, Dual, Subbed, Dubbedhindi,dual
year_min, year_maxTitle release year2020
rating_minMinimum IMDb rating7.5
genreGenres, comma listsci-fi,drama
min_seedersMinimum seeders10
size_min_gb, size_max_gbSize range in GiBsize_max_gb=5
no_cam1 = drop CAM / TS rips1
sortseeders, date, size, quality, relevance (default: relevance with q, else seeders)quality
page, limitPaging; limit 1-50 (default 25)page=2&limit=50
clean1 = drop duplicates, results missing a keyword and fakes (what the Torznab feed always does)1

Response: {"total": 1250, "page": 1, "pageSize": 25, "pages": 50, "results": […torrents…]}. With sort=quality the 500 best-seeded matches are re-ranked by quality score.

Search page links

The site's own result pages use the same filters in the path, colon-separated, so a filtered page can be linked or bookmarked: https://rarbg.unblockninja.st/get-posts/keywords:dune:category:Movies:year_min:2020:rating_min:7:genre:Sci-Fi:nocam:1:order:quality/. Keys: keywords, category, ncategory, tag (repeatable: 1080p, 4K, x265, HDR, Atmos…), user, time (1D, 7D, 30D…), min_seeders, size__gte / size__lte (bytes), year_min, year_max, rating_min, genre, nocam, order (-se seeders, -a newest, -s size, quality). Add ?format=json for JSON and ?page=2 to page.

Titles

  • GET /api/v1/title/{imdb}/ — the title (name, year, genres, plot, IMDb rating and votes, Rotten Tomatoes, MPA rating, poster) and torrents, best quality first. Add ?season=5&episode=14 for one episode (season packs included).
  • GET /api/v1/title/{imdb}/extras/?country=US — where to stream, rent or buy it in that country (JustWatch data via TMDB) and the movie collection it belongs to.
  • GET /api/v1/suggest/?q=oppenh — typeahead: the 8 best title matches, including translated titles.

The torrent object

FieldMeaning
id, urlPost id and the torrent page on The RarBg
name, infoHash, magnetRelease name, 40-char hash (lowercase), ready-to-use magnet link
category, size, seeders, leechers, addedSize in bytes; added is a Unix time
imdbIMDb id when the release is linked to a title
qualityScore0-100, see below
resolution, source, codec, hdr, audio, releaseGroup, proper, repackParsed from the release name (null when absent)
season, episode, downloadsOn title results
tagsOn search results: the index's tags (quality, source, language…)

Quality score

A 0-100 number for sorting releases of the same title: resolution (up to 35), source (REMUX 25, BluRay 22, WEB-DL 20, WEBRip 15, HDTV 10, DVD 6), codec (AV1 / x265 8, x264 5), HDR and premium audio (up to 7) and seeders (up to 20). CAM and TS rips are capped at 25. Music, apps, games and books score 0. The same number appears on every torrent page.

Upcoming, collections, streaming

These are pages on the site; add ?format=json for JSON.

  • /upcoming/ — releases in the next six months grouped by month, with trailers, plus what came out in the last 45 days and already has torrents. ?type=tv&country=GB for TV premieres.
  • /collections/{id}/ — a film series (TMDB collection id) with the torrents of each film, e.g. /collections/726871/.
  • /streaming/{service}/?country=US — popular on netflix, prime, disney, apple, max, hulu, paramount or crunchyroll, linked to our torrents. &type=tv for shows.

Sonarr / Radarr / Prowlarr (Torznab)

Torznab URL: https://rarbg.unblockninja.st/api/torznab (/api/torznab/api also works, for clients that append /api) — any API key works.

  1. Prowlarr: Indexers → Add → Generic Torznab. URL https://rarbg.unblockninja.st, API path /api/torznab, API key any. Prowlarr syncs it to Sonarr and Radarr.
  2. Sonarr / Radarr directly: Settings → Indexers → Add → Torznab, URL https://rarbg.unblockninja.st/api/torznab, API key any, categories 5000,5040,5045 (TV) or 2000,2040,2045 (movies).

Supported: t=search, t=tvsearch (q, imdbid, tmdbid, season, ep), t=movie (q, imdbid, tmdbid). Id searches answer from our title database, so you get that title's releases only. Every result is de-duplicated (same hash, same release under another name), keyword results must contain every word of the query, and obvious fakes are dropped. Each item carries seeders, peers, infohash, magneturl, imdbid and a Q-tag with the quality score.

CategoryNewznab ids
Movies (SD / HD / UHD)2000 (2030 / 2040 / 2045)
TV (SD / HD / UHD), Anime, Documentary5000 (5030 / 5040 / 5045), 5070, 5080
Audio, PC / Games, XXX, Books, Other3000, 4000 / 4050, 6000, 7000, 8000
curl -s "https://rarbg.unblockninja.st/api/torznab?t=tvsearch&imdbid=tt0903747&season=5&ep=14"

Rate limit: without a key every IP gets 30 requests a minute. A "search all missing" run, or several *arr apps behind one home connection, can go over that and get 429 (they retry later). Put your free API key in the indexer's API Key field to get 60 a minute and 50,000 a day.

Prefer the old Cardigann definition? It is still on the Prowlarr page.

Stremio

Install: open https://rarbg.unblockninja.st/stremio/configure/, pick a minimum or maximum resolution and whether to hide CAM rips, and press Install. Or paste https://rarbg.unblockninja.st/stremio/manifest.js?v=1.05on into Stremio's addon search. Streams are ranked by quality score, then seeders; season packs open at the right episode.

Debrid

Torrent pages have a Send to debrid button for Real-Debrid, AllDebrid, TorBox and Premiumize; your key stays in your browser. The same endpoints are open to scripts:

curl -s -X POST "https://rarbg.unblockninja.st/api/v1/debrid/add/" -H "X-Debrid-Key: YOUR_KEY" \
     -H "Content-Type: application/json" -d '{"provider": "torbox", "infoHash": "<40 hex>"}'

/api/v1/debrid/cached/ takes {"provider", "infoHashes": […]} and says which are instantly available (TorBox and Premiumize; Real-Debrid and AllDebrid no longer offer this). Keys are forwarded to the provider and never stored or logged.

RSS & alerts

Follow anything in an RSS reader (or IFTTT, Zapier, n8n…):

  • Saved search: https://rarbg.unblockninja.st/api/rss/search/?q=the+bear&resolution=1080p — every search filter, plus tag (repeatable) and size_min / size_max in bytes. Every result page has an RSS alert link for its exact search.
  • A title: https://rarbg.unblockninja.st/api/rss/title/tt0903747/?resolution=2160p&min_quality=70 — new releases of one title; season, episode, source also work. Title pages link to theirs.

Both are newest first and de-duplicated like the Torznab feed.

Site feeds

https://rarbg.unblockninja.st/latest/rss/, and per category: /latest/rss/movie/, /tv/, /anime/, /music/, /game/, /app/, /book/, /other/, /xxx/. Atom: /latest/atom/.

TV calendar

GET /api/v1/calendar/?imdb=tt0903747,tt14452776 returns each show's next episode (date, season, episode, title) and its latest one with a link to its torrents; without imdb it lists popular shows on the air. The TV calendar page uses it with the shows you follow (the Follow button on a show's page; the list stays in your browser).

Limits, caching, errors

  • Rate limits (per minute and per UTC day):
    ClientPer minutePer day
    No key (per IP; IPv6 per /64)3010,000
    With your account's API key6050,000
    Counted: the JSON API, Torznab, RSS, Stremio streams, /upcoming/, /collections/, /streaming/ and searches with year / rating / genre filters or order:quality. Not counted: browsing pages, the docs, /api/v1/status/, /api/v1/mirrors/.
  • Every counted response carries X-RateLimit-Limit / -Remaining / -Reset (this minute, seconds until reset) and X-RateLimit-Limit-Day / -Remaining-Day / -Reset-Day (this UTC day). Over either limit: 429 with Retry-After and {"error": "rate limit exceeded", "scope": "minute"|"day", "limit": …, "retry_after": …}. Wait Retry-After seconds before retrying; the Python and JS clients do this for you.
  • Responses are cached server-side for 2-60 minutes, so asking again sooner returns the same data; please cache on your side too.
  • JSON is UTF-8 with non-ASCII escaped; CORS is open (Access-Control-Allow-Origin: *).
  • Errors are JSON: 400 for a bad parameter ({"error": "unknown sort 'x'", "sorts": […]}), 404 for an unknown title. Torznab answers with a Newznab <error code="…"/> element.
  • Official domains: /api/v1/mirrors/. Health and index freshness: /status/ (/api/v1/status/ answers 503 when something is down).

AI agents

/llms.txt describes the API in plain text for language models, and /api/openapi.js?v=1.05on plugs into tool-calling frameworks (OpenAI / Claude tool definitions, LangChain OpenAPI toolkits, GPT actions).

Security & privacy

  • API keys are shown once and stored only as a SHA-256 hash; we cannot show a key again, only revoke it. Prefer the X-Api-Key header to ?apikey=, which ends up in proxy logs.
  • Debrid keys stay in your browser and are sent only with your own requests to /api/v1/debrid/…, which forward them to the provider and never store or log them. These endpoints accept calls from this site only (no CORS) and are rate-limited.
  • Filter values are validated (known genres, years 1900 to next year, ratings in half points, the listed countries); others are ignored.
  • Found a security problem? Use the contact form; please don't publish it before it is fixed.

Versioning & changelog

Everything under /api/v1/ keeps its fields and meaning; new fields and endpoints may be added. Every JSON response carries X-API-Version. A breaking change would get a new path (/api/v2/), and the old one a Deprecation header and at least 90 days' notice here.

  • 1.3.1 — Keys stored hashed; debrid endpoints same-origin and rate-limited; TMDB pages and filtered searches count against the limit; IPv6 counted per /64; filter values validated.
  • 1.3 — Rate limits (30/min + 10,000/day; with a key 60/min + 50,000/day), one free API key per signed-in account (create, list, revoke), rate-limit headers, clean=1 on search, /api/v1/status/, Postman collection, Python / JS clients, MCP server and agent skill.
  • 1.2 — RSS alerts (/api/rss/search/, /api/rss/title/…/), TV calendar, year / rating / genre / CAM filters and order:quality on the site's own search pages.
  • 1.1 — Upcoming, collections, streaming charts; developer guide; full OpenAPI 3.1 spec.
  • 1.0 — Search, titles, suggest, extras, Torznab, Stremio, debrid, quality score.