APIBay (The Pirate Bay JSON API)
- Free allowance
- No key and no account: GET /q.php?q=ubuntu&cat=0 returned 27,772 bytes of JSON with id, name, info_hash, seeders, leechers, size and category for every hit.
- Verdict
- ★ qualifiesusable as stated; the read path was probed
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- request-ratenone published; 10 status-checked requests plus 10 more over 55 s all returned 200, with no 429 and no Retry-After
- Evidence
- documented2 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-11-23checked 2026-10-23 (live); stale on 2026-11-23
| Free tier | No key and no account: GET /q.php?q=ubuntu&cat=0 returned 27,772 bytes of JSON with id, name, info_hash, seeders, leechers, size and category for every hit. unit requests; metered on request-count |
|---|---|
| Price | USD 0 |
| Limits |
robots.txt on apibay.org carries only Cloudflare content signals and no crawl delay. The 7,200-second cache means repeated identical queries cost the origin nothing. |
| Binding | request-rate No byte quota exists on an index; the only constraint is the rate at which the client enumerates titles, and it tolerated about 0.2 req/s with no throttle. |
| Identity | anonymous No key, no account, no captcha. The site's own 'robot check' overlays are ad furniture, not an API gate. |
| Egress | no byte allowance: JSON only; the transfer is between a user and the swarm free allowance: none published |
| Per-object cap | not applicable: index results |
| Retention | the index keeps the row after the swarm dies; seeders and leechers are the only liveness signal in the record |
| Interface | rest GET /q.php?q=<query>&cat=<n> returns a JSON array; every row carries info_hash so a magnet is one string concatenation away. Responses are front-cached (Cache-Control max-age=7200). endpoint: https://apibay.org/q.php?q=ubuntu&cat=0 |
| Tooling | One GET and a json parse; the whole site is a thin client over this API, so a scraper of the HTML is pointless. |
| Composes with | Search by title, build the magnet from info_hash, then ask a debrid service for a cache hit before pulling anything. |
| Reliability | The API is served through Cloudflare with a two-hour cache, so a query can answer from cache after the swarm has gone; single-file rows report num_files 1 and a size in bytes, which is enough to filter but not to confirm the file still exists. |
| Notes | The cleanest no-account JSON torrent feed found: a single GET, a fixed schema, and an info hash in every row. Its political fragility is the risk, not its quota: the domain is one seizure away from gone. |
| Evidence note | documented A live query was executed and its JSON read on 2026-10-23. A recorded probe over an hour would raise the rate row to measured. |
| Parsed numbers |
|
Evidence 2
| date | source | what it proved |
|---|---|---|
| 2026-10-23 | apibay.org/q.php?q=ubuntu&cat=0 | HTTP 200 application/json, 27,772 bytes, rows with info_hash, seeders, leechers, size in bytes and category id |
| 2026-10-23 | apibay.org/robots.txt | content-signal text only, with no crawl delay and no rate limit stated |
More fields 2
| cache max age s | 7200 |
|---|---|
| fields | id,name,info_hash,leechers,seeders,size,num_files,username,added,status,category,imdb |