API
One endpoint. Send a magnet link or a .torrent file, get the full tracker breakdown back as JSON.
Authentication
Send an API key on every request, as either header:
X-API-Key: <key>
Authorization: Bearer <key>Shared public key
Free to use, no signup. Everyone shares this key, so its quota is shared too — if you need headroom of your own, ask for a dedicated key.
it_bb7703286817_tUOyAIPHRLM_Jb5G7ELygRZd1ujycgk-/api/checkAccepts application/json with a magnet field (a magnet URI or a bare 40-character infohash), or multipart/form-data with a file field.
Check a magnet link
curl -X POST https://infotorrent.wikizell.com/api/check \
-H 'X-API-Key: it_bb7703286817_tUOyAIPHRLM_Jb5G7ELygRZd1ujycgk-' \
-H 'Content-Type: application/json' \
-d '{"magnet":"magnet:?xt=urn:btih:<infohash>"}'Check a .torrent file
curl -X POST https://infotorrent.wikizell.com/api/check \
-H 'X-API-Key: it_bb7703286817_tUOyAIPHRLM_Jb5G7ELygRZd1ujycgk-' \
-F '[email protected]'Response
{
"status": "alive",
"score": 91,
"seeders": 1247,
"leechers": 63,
"completed": 88214,
"respondingTrackers": 3,
"totalTrackers": 5,
"durationMs": 1840,
"torrent": {
"infohash": "…",
"name": "ubuntu-24.04.2-desktop-amd64.iso",
"totalSize": 6203355136,
"fileCount": 1,
"trackers": ["https://torrent.ubuntu.com/announce"]
},
"trackers": [
{
"url": "https://torrent.ubuntu.com/announce",
"host": "torrent.ubuntu.com",
"protocol": "https",
"status": "ok",
"seeders": 1247,
"leechers": 63,
"completed": 88214,
"latencyMs": 312
}
]
}Rate limits
Every response carries X-RateLimit-Remaining and X-Quota-Day-Used headers so you can pace yourself without guessing. Exceeding a limit returns 429 with Retry-After.
Results are cached for 300 seconds, so polling faster than that returns the same numbers and costs the trackers nothing. Please do not poll faster than the swarm actually changes — trackers update when peers re-announce, typically every 15 to 30 minutes.
Errors
400— unparseable magnet, infohash or torrent file401— missing, malformed or unknown API key403— key disabled or expired, or checking disabled413— uploaded file exceeds the size limit429— rate limit or quota reached
Every error body is { "error": "…" }.