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.
120
req/min
Premium accounts
15
req/min
Free accounts
10
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 required | string | 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: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
Coming Soon
Get status, progress, and file list of a torrent.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | string | Torrent ID from the add response or your torrent list |
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"}
)
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.