Open Private Tracker

A high-performance, open private torrent tracker built for speed and control.
Manage your torrents and nodes effortlessly, and route client data to your own server if needed.
Easily create and manage torrents and nodes via web interface or API, giving you full transparency and flexibility.

Open Private Tracker acts as a secure proxy for your torrent network, providing fast, private, and reliable distribution.

Torrent illustration

Privacy & Performance

Open Private Tracker is designed for speed and efficiency. No connection data is stored permanently, and no activity logs are kept.

By minimizing overhead and avoiding persistent logging, the system runs at maximum performance while maintaining full privacy.

This ensures your torrents and nodes are distributed quickly and reliably, without unnecessary delays or bottlenecks.

Maximum throughput and reliability
Zero permanent connection data
No activity logs
Minimal system overhead

Features

Open Private Tracker is designed to be fast, lightweight, and private, making torrent management effortless.

Handles millions of client connections per minute
Secure and anonymous – no email or personal info required
Supports Tor / Onion servers for added privacy
Minimal overhead for maximum throughput
Fully transparent and flexible via web interface or API

How It Works

Your torrent clients connect securely to Open Private Tracker. Each client is verified using its unique token, IP address, or both.
Once verified, the client can receive peer connections.

Clients continuously report usage stats back to the tracker. You can optionally forward these stats to your own server for monitoring or analytics, giving you full visibility while keeping the tracker fast and lightweight.

If no server is configured to receive stats, the data is discarded immediately, keeping the system lightweight, fast, and fully focused on peer distribution.

Getting Started

Sign up for an account, log in, and follow the guides to start adding torrents and nodes within minutes. Designed to get you started quickly and safely.

After signup, you will receive a unique account key – save it! There’s no way to retrieve it again. Your key is required for login and API calls.

You can add torrents using either .torrent files or magnet links. You can create multiple torrents or delete existing ones at any time.

Authorized clients can be added either via their unique token or IP address. Stats from your clients are forwarded to your server if configured; otherwise, they are discarded.

JSON API Access

curl -X POST https://www.openprivatetracker.org/add-torrent \
  -H "Content-Type: application/json" \
  -d '{
    "account_key": "YOUR_ACCOUNT_KEY",
    "torrent": "magnet:?xt=urn:btih:...",
    "client_token": "UNIQUE_CLIENT_TOKEN"
  }'
const fetch = require('node-fetch');

fetch('https://www.openprivatetracker.org/add-torrent', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    account_key: 'YOUR_ACCOUNT_KEY',
    torrent: 'magnet:?xt=urn:btih:...',
    client_token: 'UNIQUE_CLIENT_TOKEN'
  })
})
.then(res => res.json())
.then(console.log);
import requests

data = {
    "account_key": "YOUR_ACCOUNT_KEY",
    "torrent": "magnet:?xt=urn:btih:...",
    "client_token": "UNIQUE_CLIENT_TOKEN"
}

resp = requests.post("https://www.openprivatetracker.org/add-torrent", json=data)
print(resp.json())
using System.Net.Http;
using System.Text;
using System.Text.Json;

var client = new HttpClient();
var data = new {
    account_key = "YOUR_ACCOUNT_KEY",
    torrent = "magnet:?xt=urn:btih:...",
    client_token = "UNIQUE_CLIENT_TOKEN"
};

var content = new StringContent(JsonSerializer.Serialize(data), Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.openprivatetracker.org/add-torrent", content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);

Authorize Clients

To allow a client to connect to the tracker, you can use either a unique token or the client's IP address.
Generating a unique .torrent file for each user with their token appended to the announce URL is the recommended method.

This token-based approach removes the need to track or store IP addresses, and ensures users retain access even if their public IP changes (for example, when using a VPN).
Each user receives their own .torrent file from your server or website* with the token already included.

Alternatively, clients can be authorized by IP address. While this works, it is less flexible and requires updating if the user's IP changes.

* Your server or website refers to any endpoint where users can download their personalized .torrent files
it does not have to be the same server you used when creating your account.

Add Token to Torrents


# Edit existing torrent to add your token
transmission-edit -a "http://tracker.openprivatetracker.org:1337/announce?token=UNIQUE_CLIENT_TOKEN" myfile.torrent



torrenttools edit -a http://tracker.openprivatetracker.org:1337/announce?token=UNIQUE_CLIENT_TOKEN my.torrent



btedit myfile.torrent set announce "http://tracker.openprivatetracker.org:1337/announce?token=UNIQUE_CLIENT_TOKEN" -o newfile.torrent



benpatch file.torrent announce "http://tracker.openprivatetracker.org:1337/announce?token=UNIQUE_CLIENT_TOKEN" > file.torrent

import bencodepy, sys
f = "myfile.torrent"
d = bencodepy.decode_from_file(f)
d[b'announce'] = b"http://tracker.openprivatetracker.org:1337/announce?token=UNIQUE_CLIENT_TOKEN"
with open("newfile.torrent", "wb") as out:
    out.write(bencodepy.encode(d))

Open Private Tracker API Usage

The accountKey parameter is used in JSON requests and is generated when your account is created.

Use this endpoint to create torrents linked to your account. Include your accountKey and one or more SHA-1 hashes in the infoHashes array, formatted as magnet:?xt=urn:btih:5813..., in JSON.

{
  "accountKey": "GgxGb1115NitZ2XV9RnbyCt8NDs3+IUA7F5kAFOTsw1KQCl1z3Rs....",
  "infoHashes": [
    "magnet:?xt=urn:btih:93b4c33754944d811921cc0ec1a87846b4e32bd7",
    "magnet:?xt=urn:btih:...",
    "magnet:?xt=urn:btih:...",
  ]
}

Alternatively, you can upload .torrent files directly instead of sending infoHashes.

curl -X POST "/create-torrents" \
  -F "accountKey=GgxGb1115NitZ2XV9RnbyCt8NDs3..." \
  -F "torrentFiles=@myfile1.torrent" \
  -F "torrentFiles=@myfile2.torrent"
/create-tokens
{
  "accountKey": "GgxGb1115NitZ2XV9RnbyCt8NDs3+IUA7F5kAFOTsw1KQCl1z3Rs....",
  "tokens": [
    { "token": "aB3dE7fG1H" },
    { "token": "kL9mN2pQ4R" }
  ]
}
/list-tokens
{
  "accountKey": "GgxGb1115NitZ2XV9RnbyCt8NDs3+IUA7F5kAFOTsw1KQCl1z3Rs...."
}
/list-torrents
{
  "accountKey": "GgxGb1115NitZ2XV9RnbyCt8NDs3+IUA7F5kAFOTsw1KQCl1z3Rs...."
}

Create Account

Account created successful

Save the account key now!

Login

Access control

Create Token

Create Torrent Info

Upload a file to generate torrent info (e.g., a video, image, or document).