JSON responses
UTF-8
CORS enabled
Authentication
Most endpoints require an API key. Get yours from the Devices & API page. Pass it using any of the following methods — all are equivalent:
Authorization Header
Authorization: Bearer YOUR_API_KEY
X-Api-Key Header
X-Api-Key: YOUR_API_KEY
Query Parameter
?apikey=YOUR_API_KEY
Cookie Session
Get cookie by signin in at /login page
Rate Limits
Rate limits apply per API key per minute. When exceeded, the API returns HTTP
429. Cookie-based browser sessions are not rate limited.
250
req/min
Premium accounts
100
req/min
Free accounts
60
req/min
Public endpoints
Error Codes
Errors return a JSON object with
error (HTTP status code) and message (human-readable description).Error Response Format
{
"error": 401,
"message": "Authentication required."
}
401
Unauthorized — Missing or invalid API key
403
Forbidden — Account locked or feature requires premium
429
Rate Limited — Too many requests, check Retry-After header
500
Server Error — Internal error, retry after a moment
Quick Start
Full working examples to generate a premium link. Replace
YOUR_API_KEY with your actual key.# Generate a premium download link
curl -X POST https://www.deepbrid.com/api/v1/generate/link \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "link=https://domain.com/file/abc123"
# Get account info
curl https://www.deepbrid.com/api/v1/user \
-H "Authorization: Bearer YOUR_API_KEY"
# List supported hosters (no auth needed)
curl https://www.deepbrid.com/api/v1/hosts
# Add a torrent via magnet link
curl -X POST https://www.deepbrid.com/api/v1/torrents/add \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "magnet=magnet:?xt=urn:btih:..."
# Check your API key usage stats
curl https://www.deepbrid.com/api/v1/apikey/info \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://www.deepbrid.com/api/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# Generate a premium download link
resp = requests.post(f"{BASE}/generate/link",
headers=HEADERS,
data={"link": "https://domain.com/file/abc123"}
)
print(resp.json())
# Get account info
user = requests.get(f"{BASE}/user", headers=HEADERS)
print(user.json())
# List supported hosters (public, no auth)
hosts = requests.get(f"{BASE}/hosts")
print(hosts.json())
# Add a torrent
torrent = requests.post(f"{BASE}/torrents/add",
headers=HEADERS,
data={"magnet": "magnet:?xt=urn:btih:..."}
)
print(torrent.json())
# Download history
history = requests.get(f"{BASE}/downloads", headers=HEADERS)
print(history.json()["data"])
const API_KEY = "YOUR_API_KEY";
const BASE = "https://www.deepbrid.com/api/v1";
const headers = { "Authorization": `Bearer ${API_KEY}` };
// Generate a premium download link
const resp = await fetch(`${BASE}/generate/link`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/x-www-form-urlencoded" },
body: "link=https://domain.com/file/abc123"
});
const data = await resp.json();
console.log(data);
// Get account info
const user = await fetch(`${BASE}/user`, { headers })
.then(r => r.json());
console.log(user);
// List supported hosters (public)
const hosts = await fetch(`${BASE}/hosts`)
.then(r => r.json());
console.log(hosts);
// Add a torrent
const torrent = await fetch(`${BASE}/torrents/add`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/x-www-form-urlencoded" },
body: "magnet=magnet:?xt=urn:btih:..."
}).then(r => r.json());
console.log(torrent);
$apiKey = "YOUR_API_KEY";
$base = "https://www.deepbrid.com/api/v1";
// Helper function
function deepbridApi($endpoint, $post = null) {
global $apiKey, $base;
$ch = curl_init("{$base}{$endpoint}");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer {$apiKey}"],
]);
if ($post) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
}
$resp = json_decode(curl_exec($ch), true);
curl_close($ch);
return $resp;
}
// Generate a premium download link
$link = deepbridApi("/generate/link", [
"link" => "https://domain.com/file/abc123"
]);
print_r($link);
// Get account info
$user = deepbridApi("/user");
print_r($user);
// List hosters (public)
$hosts = deepbridApi("/hosts");
print_r($hosts);
// Add a torrent
$torrent = deepbridApi("/torrents/add", [
"magnet" => "magnet:?xt=urn:btih:..."
]);
print_r($torrent);
using System.Net.Http;
using System.Net.Http.Headers;
var apiKey = "YOUR_API_KEY";
var baseUrl = "https://www.deepbrid.com/api/v1";
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", apiKey);
// Generate a premium download link
var content = new FormUrlEncodedContent(new[] {
new KeyValuePair<string,string>("link", "https://domain.com/file/abc123")
});
var resp = await client.PostAsync($"{baseUrl}/generate/link", content);
var json = await resp.Content.ReadAsStringAsync();
Console.WriteLine(json);
// Get account info
var user = await client.GetStringAsync($"{baseUrl}/user");
Console.WriteLine(user);
// List hosters (public)
var hosts = await new HttpClient().GetStringAsync($"{baseUrl}/hosts");
Console.WriteLine(hosts);
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
const (
apiKey = "YOUR_API_KEY"
baseURL = "https://www.deepbrid.com/api/v1"
)
func main() {
// Generate a premium download link
body := strings.NewReader("link=https://domain.com/file/abc123")
req, _ := http.NewRequest("POST", baseURL+"/generate/link", body)
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(string(data))
// Get account info
req2, _ := http.NewRequest("GET", baseURL+"/user", nil)
req2.Header.Set("Authorization", "Bearer "+apiKey)
resp2, _ := http.DefaultClient.Do(req2)
defer resp2.Body.Close()
data2, _ := io.ReadAll(resp2.Body)
fmt.Println(string(data2))
}
User
GET
/api/v1/user
Auth required
Returns account information for the authenticated user, including subscription type and expiration.
Response
200 OK
{
"username": "john",
"email": "[email protected]",
"type": "premium",
"fidelity_points": 0,
"expiration": "2026-06-15",
"maxDownloads": 5,
"maxConnections": 1
}
GET
/api/v1/user/stats
Auth required
Returns download and traffic usage statistics for the current user.
Response
200 OK
{
"downloads": 42,
"bandwidth": "15.30 GB",
"bandwidth_bytes": 16424337408,
"torrents": 5,
"remote": 3
}
GET
/api/v1/user/limits
Auth required
Premium
Returns per-hoster daily traffic and link usage with limits. Each hoster has either a
bandwidth (bytes) or links limit that resets daily.curl https://www.deepbrid.com/api/v1/user/limits \
-H "Authorization: Bearer YOUR_API_KEY"
limits = requests.get(f"{BASE}/user/limits", headers=HEADERS)
for h in limits.json()["hosters"]:
if h["type"] == "bandwidth":
print(f"{h['domain']}: {h['used_str']} / {h['limit_str']}")
else:
print(f"{h['domain']}: {h['used']} / {h['limit']} links")
const limits = await fetch(`${BASE}/user/limits`, { headers })
.then(r => r.json());
limits.hosters.forEach(h => {
const info = h.type === "bandwidth"
? `${h.used_str} / ${h.limit_str}`
: `${h.used} / ${h.limit} links`;
console.log(`${h.domain}: ${info}`);
});
Response
200 OK
{
"error": 0,
"limits_enabled": true,
"reset": "daily",
"hosters": [
{
"domain": "rapidgator.net",
"type": "links",
"limit": 5,
"used": 3,
"remaining": 2
},
{
"domain": "turbobit.net",
"type": "bandwidth",
"limit": 10737418240,
"used": 2147483648,
"remaining": 8589934592,
"limit_str": "10.00 GB",
"used_str": "2.00 GB",
"remaining_str": "8.00 GB"
}
]
}
Link Generator
POST
/api/v1/generate/link
Auth required
Generate a premium download link from a file hoster URL. This is the main endpoint most integrations use.
Parameters
| Name | Type | Description |
|---|---|---|
| link required | string | Original file hoster URL to unrestrict |
| pass | string | Password for protected files |
curl -X POST https://www.deepbrid.com/api/v1/generate/link \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "link=https://domain.com/file/abc123"
resp = requests.post(f"{BASE}/generate/link",
headers=HEADERS,
data={"link": "https://domain.com/file/abc123"}
)
download_url = resp.json()["link"]
const resp = await fetch(`${BASE}/generate/link`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/x-www-form-urlencoded" },
body: "link=https://domain.com/file/abc123"
});
const { link } = await resp.json();
$result = deepbridApi("/generate/link", [
"link" => "https://domain.com/file/abc123"
]);
echo $result["link"]; // direct download URL
Response
200 OK
{
"error": 0,
"message": "OK",
"original_link": "https://rapidgator.net/file/abc123",
"hoster": "rapidgator",
"hoster-icon": "rapidgator.png",
"filename": "my_file.zip",
"link": "https://premium-dl.deepbrid.com/d/...",
"stream": "hash_for_streaming",
"size": "1.50 GB"
}
POST
/api/v1/generate/folder
Auth required
Premium
Get the list of individual file links inside a hoster folder URL. Accepted folder hosts: Terabox.com, Mega.nz and Gofile.io.
Parameters
| Name | Type | Description |
|---|---|---|
| link required | string | Hoster folder URL |
Downloads
GET
/api/v1/downloads
Auth required
Premium
Get the download history for the authenticated user. Supports pagination via
limit and offset query parameters.Parameters
| Name | Type | Description |
|---|---|---|
| limit | int | Max results, 1-500 (default: 200) |
| offset | int | Skip this many results (default: 0) |
curl https://www.deepbrid.com/api/v1/downloads \
-H "Authorization: Bearer YOUR_API_KEY"
history = requests.get(f"{BASE}/downloads", headers=HEADERS)
for dl in history.json()["data"]:
print(dl["filename"], dl["size"])
const history = await fetch(`${BASE}/downloads`, { headers })
.then(r => r.json());
history.data.forEach(dl => console.log(dl.filename, dl.size));
Response
200 OK
{
"success": true,
"count": 1520,
"data": [
{
"filename": "my_file.zip",
"size": "1.50 GB",
"original": "https://rapidgator.net/file/abc123",
"download": "https://premium-dl.deepbrid.com/d/...",
"date": "2026-03-01 14:30:00"
}
],
"limit": 200,
"offset": 0
}
Torrents
POST
/api/v1/torrents/add
Auth required
Premium
Add a torrent to the cloud using a magnet link.
Parameters
| Name | Type | Description |
|---|---|---|
| magnet | string | Magnet link |
| torrent_file | file | .torrent file |
curl -X POST https://www.deepbrid.com/api/v1/torrents/add \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "magnet=magnet:?xt=urn:btih:abc123..."
resp = requests.post(f"{BASE}/torrents/add",
headers=HEADERS,
data={"magnet": "magnet:?xt=urn:btih:abc123..."}
)
const resp = await fetch(`${BASE}/torrents/add`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/x-www-form-urlencoded" },
body: "magnet=magnet:?xt=urn:btih:abc123..."
});
GET
/api/v1/torrents/info
Auth required
Premium
Get the status, progress, speed, seeders, and download links of your torrents.
Parameters
| Name | Type | Description |
|---|---|---|
| id | integer | Optional. Torrent ID returned by /torrents/add. If omitted, returns the full list of your torrents. |
# Single torrent
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.deepbrid.com/api/v1/torrents/info?id=14648"
# All torrents
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.deepbrid.com/api/v1/torrents/info"
# Single torrent
info = requests.get(f"{BASE}/torrents/info",
headers=HEADERS, params={"id": 14648})
print(info.json())
# All torrents
all_torrents = requests.get(f"{BASE}/torrents/info", headers=HEADERS).json()
for k, t in all_torrents.items():
print(t["filename"], t["progress"], "%")
// Single torrent
const info = await fetch(`${BASE}/torrents/info?id=14648`, { headers })
.then(r => r.json());
// All torrents
const all = await fetch(`${BASE}/torrents/info`, { headers })
.then(r => r.json());
Object.values(all).forEach(t => console.log(t.filename, t.progress));
Response (single torrent —
id provided)200 OK
{
"error": 0,
"message": "OK",
"id": "14648",
"filename": "ubuntu-24.04-desktop-amd64.iso",
"progress": 100,
"seeders": 12,
"speed": "0.00 MB/s",
"links": [
"https://www.deepbrid.com/mytorrents?torrent=14648&file=Kx7mPq&opt=.jdeatme"
]
}
Response (all torrents — no
id)200 OK
{
"1": {
"error": 0,
"id": "14648",
"filename": "ubuntu-24.04-desktop-amd64.iso",
"progress": 100,
"seeders": 12,
"speed": "0.00 MB/s",
"links": ["https://www.deepbrid.com/mytorrents?torrent=14648&file=Kx7mPq&opt=.jdeatme"]
},
"2": {
"error": 0,
"id": "14649",
"filename": "big.buck.bunny.1080p.mkv",
"progress": 42,
"seeders": 3,
"speed": "2.45 MB/s",
"links": []
}
}
Field reference
| Field | Type | Description |
|---|---|---|
| id | string | Internal torrent ID. Use this for subsequent requests. |
| filename | string | Display name of the torrent. |
| progress | integer | Download progress from 0 to 100. |
| seeders | integer | Number of seeders currently connected. |
| speed | string | Human-readable download speed (e.g. "2.45 MB/s"). |
| links | array<string> | Download URLs for each file. Empty until progress reaches 100. Each URL is a one-time short link valid for the current user. |
| error | integer | 0 for success, 1 if no data, 2 if account is not premium. |
Usenet
POST
/api/v1/usenet/add
Auth required
Premium
Upload an NZB file or NZB URL for Usenet download processing.
Parameters
| Name | Type | Description |
|---|---|---|
| nzb_url | string | URL to an NZB file |
| nzb_file | file | NZB file upload (multipart/form-data) |
# Upload NZB file
curl -X POST https://www.deepbrid.com/api/v1/usenet/add \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "nzb_file=@/path/to/file.nzb"
# Or pass an NZB URL
curl -X POST https://www.deepbrid.com/api/v1/usenet/add \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "nzb_url=https://example.com/file.nzb"
# Upload NZB file
with open("file.nzb", "rb") as f:
resp = requests.post(f"{BASE}/usenet/add",
headers=HEADERS,
files={"nzb_file": f}
)
# Or pass a URL
resp = requests.post(f"{BASE}/usenet/add",
headers=HEADERS,
data={"nzb_url": "https://example.com/file.nzb"}
)
GET
/api/v1/usenet/uploads
Auth required
Premium
List the NZBs you have uploaded (via
/api/v1/usenet/add or the website), newest first. Use the returned id with /api/v1/usenet/uploads/info to list the files inside an upload.curl https://www.deepbrid.com/api/v1/usenet/uploads \
-H "Authorization: Bearer YOUR_API_KEY"
uploads = requests.get(f"{BASE}/usenet/uploads", headers=HEADERS).json()
for nzb in uploads["items"]:
print(nzb["id"], nzb["title"])
const uploads = await fetch(`${BASE}/usenet/uploads`, { headers })
.then(r => r.json());
uploads.items.forEach(n => console.log(n.id, n.title));
Response
200 OK
{
"error": 0,
"count": 2,
"items": [
{
"id": 1024,
"title": "My.Uploaded.nzb",
"source": "file",
"source_url": null,
"hash": "3f1a9c…e9",
"added_at": "2026-06-05 18:22:10"
}
]
}
GET
/api/v1/usenet/uploads/info
Auth required
Premium
List the files inside one of your uploaded NZBs, each with a ready-to-use
link. Pass the id from /api/v1/usenet/uploadsParameters
| Name | Type | Description |
|---|---|---|
| id required | int | The upload id returned by /api/v1/usenet/uploads |
curl "https://www.deepbrid.com/api/v1/usenet/uploads/info?id=1024" \
-H "Authorization: Bearer YOUR_API_KEY"
data = requests.get(f"{BASE}/usenet/uploads/info",
headers=HEADERS, params={"id": 1024}).json()
for f in data["files"]:
print(f["name"], f["link"])
const data = await fetch(`${BASE}/usenet/uploads/info?id=1024`, { headers })
.then(r => r.json());
data.files.forEach(f => console.log(f.name, f.link));
Response
200 OK
{
"error": 0,
"id": 1024,
"title": "My.Uploaded.Nzb",
"uid": "a1b2c3d4e5",
"has_password": false,
"password": "",
"count": 2,
"files": [
{
"name": "ubuntu.iso",
"size": 9837421056,
"size_human": "9.2 GB",
"link": "https://…/file/ubuntu.iso"
},
{
"name": "info.nfo",
"size": 2048,
"size_human": "2 KB",
"link": "https://…/file/info.nfo"
}
]
}
Remote Upload
POST
/api/v1/remote/add
Auth required
Premium
Coming Soon
Upload a file from a remote URL directly to your Deepbrid cloud storage.
Parameters
| Name | Type | Description |
|---|---|---|
| link required | string | URL of the file to upload |
Hosts
GET
/api/v1/hosts
No auth required
Get the list of all supported file hosting services and their current status. This is a public endpoint, no API key is needed.
curl https://www.deepbrid.com/api/v1/hosts
hosts = requests.get("https://www.deepbrid.com/api/v1/hosts")
for h in hosts.json():
for domain, status in h.items():
print(f"{domain}: {status}")
const hosts = await fetch("https://www.deepbrid.com/api/v1/hosts")
.then(r => r.json());
hosts.forEach(h => {
const [[domain, status]] = Object.entries(h);
console.log(`${domain}: ${status}`);
});
Response
200 OK
[
{ "rapidgator.net": "up" },
{ "turbobit.net": "up" },
{ "ddownload.com": "down (2026-03-01)" }
]
API Key Management
GET
/api/v1/apikey
Auth required
Get the current user's API key.
Response
200 OK
{
"error": 0,
"apikey": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4..."
}
POST
/api/v1/apikey/regenerate
Auth required
Generate a new API key. The previous key is immediately invalidated — all connected apps and integrations will need to be updated with the new key.
Response
200 OK
{
"error": 0,
"apikey": "new_key_value_here...",
"message": "API key regenerated. Update all your apps."
}
GET
/api/v1/apikey/devices
Auth required
List all devices and applications that have accessed the API using your key, with IP, user-agent, and request counts.
Parameters
| Name | Type | Description |
|---|---|---|
| limit | int | Max results, 1-50 (default: 20) |
Response
200 OK
{
"error": 0,
"total": 2,
"devices": [
{
"ip_address": "1.2.3.4",
"device_name": "Kodi",
"user_agent": "Kodi/21.0",
"first_seen_at": "2026-01-15 10:30:00",
"last_seen_at": "2026-02-27 14:22:00",
"request_count": 482
},
{
"ip_address": "5.6.7.8",
"device_name": "Python",
"user_agent": "python-requests/2.31",
"first_seen_at": "2026-02-01 08:00:00",
"last_seen_at": "2026-02-27 12:15:00",
"request_count": 91
}
]
}
GET
/api/v1/apikey/info
Auth required
Get cumulative usage statistics for your API key: total requests, links generated, last used date, and creation info.
Response
200 OK
{
"error": 0,
"apikey": "a1b2c3d4...",
"total_requests": 12450,
"total_links": 3201,
"last_used_at": "2026-02-27 14:22:00",
"last_ip": "1.2.3.4",
"created_at": "2026-01-01 00:00:00",
"regenerated_at": null
}
Addons
GET
/api/v1/addons
No auth required
Get available Deepbrid official applications and their latest version info. Useful for implementing auto-update checks in your app.
Response
200 OK
{
"error": 0,
"deepbrid-video-player": {
"name": "Deepbrid - Video Player (beta)",
"version": "1.2.0",
"date": "18/02/2026",
"url": "https://www.deepbrid.com/content/f/id/2"
}
}
Legal: Our service acts like a gateway between you and the filehost service, redirecting the file directly to you from filehosts servers. We never save the file on our servers.
© 2013 - 2026 Deepbrid. All rights reserved.