General informations
Introduction
Welcome to the UploadedPremiumLink API ! You can use this API to access various UploadedPremiumLink services from custom applications or scripts.
Our API is organized around REST, returns JSON-encoded responses and use standard HTTP response codes.
All calls are to be made on the HTTPS endpoints. Some are public, others require to be authentificated with an apikey (see Authentication).
If you have any issue or question, feel free to contact us.
Response Format
All responses return JSON with 2 attributes. The success
attribute is always returned, and has a value of either true
or false
.
If the request is invalid or an error occured, you will get "success" : "false"
and an data
attribute, containing the error details. All error codes and messages can be found in the errors section.
If a request doesn't return valid JSON or JSON without a data
attribute, you can consider that this request failed.
This API also use HTTP status code to signal how a request went through. Codes in the 2xx
range indicate success. Codes in the 4xx
range indicate an error that failed given the information provided (e.g., a required parameter was omitted, wrong parameter size, etc.). Codes in the 5xx
range indicate an error with UploadedPremiumLink servers (these are rare).
HTTP Status | Description |
---|---|
200 - OK | All fine! |
404 - Not Found | Api endpoint doesn't exist |
429 - Too Many Requests | Too many requests hit the API too quickly, see Rate limiting |
500, 502, 503, 504 - Server Errors | Something went wrong on UploadedPremiumLink end |
Authentication
We uses API keys to authenticate requests. You can view and manage your API keys in your My Account Page.
Please send the api_key
parameter using the POST
method.
The following errors can be returned if your authentication fails.
Category_Error | Description |
---|---|
AUTH_MISSING_APIKEY | The auth apikey was not sent |
AUTH_BAD_APIKEY | The auth apikey is invalid |
AUTH_USER_BANNED | This account is banned |
AUTH_IP_BANNED | This IP address is banned |
Rate limiting
There is rate limiting in place for the API.
Current limits are at 12 requests per second and 600 requests per minute.
Any request in excess of those limits will return a 429 or 503 errors.
User
Get User Info
Retrieve information about the user's account using their api_key
.
<?php
$url = 'https://api.uploadedpremiumlink.net/wp-json/api/user';
$api_key = 'your_api_key_here';
$data = array('api_key' => $api_key);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$response = curl_exec($ch);
curl_close($ch);
$responseData = json_decode($response, true);
if (isset($responseData['success']) && $responseData['success']) {
print_r($responseData['data']);
} else {
echo 'Error: ' . $responseData['message'];
}
?>
The above request returns JSON structured like this if successfull :
HTTP Request
POST https://api.uploadedpremiumlink.net/wp-json/api/user
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
api_key |
string | Yes | Your API key for authentication. |
{
"success": true,
"data": {
"username": "DemoPremiumUser",
"expire_date": "2027-02-26 11:14:16",
"expire_date_timestamp": 1803640456,
"type": "Premium",
"traffic_left": "Unlimited",
"time_left": "911 days",
"daily_links_limit": 400,
"daily_links_generated": 7,
"daily_traffic_limit": 214748364800,
"daily_traffic_used": 208770440,
"daily_traffic_left": 214539594360,
"daily_traffic_percentage_used": 1,
"hosters": [
{
"primary_domain": "rosefile.net",
"alternatives_domain": ["rosefile.net"],
"status": "online",
"statusText": "",
"type": "free",
"daily_quota_used": 0,
"daily_quota_total": 10737418240,
"daily_quota_left": 10737418240,
"weekly_quota_total": 75161927680,
"weekly_quota_used": 544186118,
"weekly_quota_left": 74617741562,
"percentage_used": 0,
"weekly_percentage_used": 1,
"daily_links_used": 0,
"daily_links_limit": 5
}
]
}
}
Error response example 1:
{
"success": false,
"data": {
"message": "missing api_key!",
"status": 400,
"category_error": "AUTH_MISSING_APIKEY"
}
}
Error response example 2:
{
"success": false,
"data": {
"message": "invalid api_key!",
"status": 400,
"category_error": "AUTH_BAD_APIKEY"
}
}
Error response example 3:
{
"success": false,
"data": {
"message": "api_key not found!",
"status": 400,
"category_error": "AUTH_BAD_APIKEY"
}
}
Response attributes
Parameter | Type | Description |
---|---|---|
username |
string | The username of the user. |
expire_date |
string (date) | The expiration date of the user's subscription in YYYY-MM-DD HH:MM:SS . |
expire_date_timestamp |
integer | The expiration date in Unix timestamp format. |
type |
string | The type of user account (e.g., Free, Premium). |
traffic_left |
string | The amount of traffic left for the user (e.g., Unlimited). |
time_left |
string | The time left before the account expires (e.g., 911 days). |
daily_links_limit |
integer | The maximum number of links the user can generate per day. |
daily_links_generated |
integer | The number of links the user has generated today. |
daily_traffic_limit |
integer | The maximum amount of daily traffic allowed (in bytes). |
daily_traffic_used |
integer | The amount of daily traffic used so far (in bytes). |
daily_traffic_left |
integer | The amount of daily traffic left (in bytes). |
daily_traffic_percentage_used |
integer | The percentage of daily traffic that has been used. |
hosters[].primary_domain |
string | The primary domain of the hoster. |
hosters[].alternatives_domain[] |
array[string] | An array of alternative domains for the hoster. |
hosters[].status |
string | The status of the hoster (e.g., online or offline). |
hosters[].statusText |
string | The status of the hoster (e.g., broken, disabled, repairing). |
hosters[].type |
string | The type of hoster account (e.g., free, premium). free = allowed to all |
hosters[].daily_quota_used |
integer | The amount of daily quota used (in bytes). |
hosters[].daily_quota_total |
integer | The total daily quota allowed (in bytes). |
hosters[].daily_quota_left |
integer | The remaining daily quota (in bytes). |
hosters[].weekly_quota_total |
integer | The total weekly quota allowed (in bytes). |
hosters[].weekly_quota_used |
integer | The amount of weekly quota used (in bytes). |
hosters[].weekly_quota_left |
integer | The remaining weekly quota (in bytes). |
hosters[].percentage_used |
integer | The percentage of the daily quota that has been used. |
hosters[].weekly_percentage_used |
integer | The percentage of the weekly quota that has been used. |
hosters[].daily_links_used |
integer | The number of links generated by the user for this hoster today. |
hosters[].daily_links_limit |
integer | The maximum number of links the user can generate for this hoster per day. |
Links
Download Link
<?php
$api_key = 'your_api_key_here';
$link = 'link_to_unlock';
$password = 'optional_password';
$data = [
'api_key' => $api_key,
'link' => $link,
'password' => $password
];
$ch = curl_init('https://api.uploadedpremiumlink.net/wp-json/api/generate_link_by_api');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
This endpoint unlocks a given link.
HTTP Request
POST https://api.uploadedpremiumlink.net/wp-json/api/generate_link_by_api
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
api_key |
string | Yes | Your API key for authentication. |
link |
string | Yes | The link to unlock. |
password |
string | No | Link password. |
The above request returns JSON structured like this if successfull :
{
"success": true,
"data": {
"status": 200,
"link": "https://srv1.uploadedpremiumlink.net/dl.php?id=xxxxxxxxxxxxx",
"chunks": 5,
"filename": "filename.zip",
"filesize": 108171100.16,
"timestamp": 1725149381,
"hostDomain": "filesfly.cc",
"resumable": true,
"maxchunks": 5,
"dl_link_page": "dl/xxxxxxxxxxxxx/host/srv1"
}
}
Response attributes
Parameter | Type | Description |
---|---|---|
status |
integer | HTTP status code of the response, typically 200 for success. |
link |
string | Direct download link. |
filename |
string | Name of the downloaded file. |
filesize |
float | Size of the file in bytes. |
hostDomain |
string | Host domain of the file. |
resumable |
boolean | Indicates if the download is resumable. |
maxchunks |
integer | Maximum number of download chunks allowed. |
dl_link_page |
string | Page containing the download link. |
Error response example 1:
{
"success": false,
"data": {
"message": "missing link param!",
"status": 400,
"category_error": "AUTH_MISSING_APIKEY"
}
}
Error response example 2:
{
"success": false,
"data": {
"message": "invalid api_key!",
"status": 400,
"category_error": "AUTH_BAD_APIKEY"
}
}
Error response example 3:
{
"success": false,
"data": {
"status": 400,
"message": "This hoster is not supported",
"error_category": "UNSUPPORTED_HOSTER"
}
}
Error response example 4:
{
"success": false,
"data": {
"message": "The requested file has not found, try another link!",
"status": 404,
"error_category": "FILE_NOT_FOUND"
}
}
Error response example 5:
{
"success": false,
"data": {
"message": "The owner of this file has chosen to protect access with a password. Please enter it before",
"status": 403,
"error_category": "LINK_PASS_PROTECTED"
}
}
Error response example 6:
{
"success": false,
"data": {
"message": "Link temporarily unavailable, retry later",
"status": 503,
"error_category": "LINK_TEMPORARILY_UNAVAILABLE"
}
}
Error response example 7:
{
"success": false,
"data": {
"message": "Failed to get download_url, retry later",
"status": 503,
"error_category": "LINK_GENERATION_FAILED"
}
}
All Errors
$apiErrors = [
"AUTH_BAD_APIKEY" => "The provided API key is invalid.",
"AUTH_IP_BANNED" => "The IP address is banned from accessing the service.",
"AUTH_MISSING_APIKEY" => "The API key is missing.",
"AUTH_USER_BANNED" => "The user is banned from accessing the service.",
"BAD_LINK" => "The provided link is invalid.",
"DATABASE_ERROR" => "A database error occurred.",
"DAILY_LIMIT_EXCEEDED" => "Daily limit of requests has been exceeded for the account.",
"FILE_NOT_FOUND" => "The requested file was not found.",
"FILESIZE_LIMIT" => "The filesize exceeds the allowed limit.",
"FILESIZE_LIMIT_FREE" => "Free user filesize limit exceeded.",
"FILESIZE_LIMIT_GUEST" => "Guest user filesize limit exceeded.",
"FREE_TRAFFIC_LIMIT_EXCEEDED" => "Free traffic limit has been exceeded.",
"FREE_USER_DAILY_LIMIT_EXCEEDED" => "Free user daily limit exceeded.",
"HOSTER_MAINTENANCE" => "The hoster is under maintenance.",
"HOSTER_NOT_AVAILABLE_BY_API" => "The hoster is not available via the API.",
"HOSTER_TEMPORARILY_UNAVAILABLE" => "The hoster is temporarily unavailable.",
"HOSTER_DAILY_LIMIT_EXCEEDED" => "Daily limit of requests has been exceeded for the hoster.",
"INVALID_ID" => "The provided ID is invalid.",
"INVALID_INPUT_FORMAT" => "The input format is invalid.",
"INVALID_LINK_FORMAT" => "The link format is invalid.",
"LINK_ERROR" => "An error occurred while processing the link.",
"LINK_GENERATION_FAILED" => "Failed to generate the requested link.",
"LINK_ALREADY_GENERATED" => "The link have already generated by the user today.",
"LINK_GENERATION_LIMIT_EXCEEDED" => "Exceeded the limit for generating links.",
"LINK_PASS_PROTECTED" => "The link is password protected.",
"LINK_TEMPORARILY_UNAVAILABLE" => "The link is temporarily unavailable.",
"LINK_THIRD_PARTY_PR_SUB_REQUIRED" => "Third-party PR subscription is required for this link.",
"LINK_TYPE_UNSUPPORTED" => "The provided link type is unsupported.",
"MUST_BE_PREMIUM" => "You must be a premium user to access this feature.",
"PREMIUM_TRAFFIC_UNAVAILABLE" => "Premium traffic is unavailable.",
"PROXY_NOT_ALLOWED" => "Access through proxy is not allowed.",
"RATE_LIMIT_EXCEEDED" => "Rate limit exceeded, too many requests.",
"RESOURCE_RETRIEVAL_FAILURE" => "Failed to retrieve the requested resource.",
"SERVER_TRAFFIC_LIMIT_REACHED" => "Server traffic limit reached, please try again later.",
"SERVICE_FAILURE" => "Service failure, please try again later.",
"TRAFFIC_LIMIT_EXCEEDED" => "User traffic limit exceeded.",
"UNSUPPORTED_HOSTER" => "The specified hoster is not supported.",
"USER_QUOTA_EXCEEDED" => "The user's quota has been exceeded.",
"WEEKLY_LIMIT_EXCEEDED" => "Weekly limit has been exceeded."
];
You can find all possible errors here, available in PHP array and JSON format if needed.
Some errors will return an HTTP code 401 or 429, depending of the error.
Code | Description |
---|---|
AUTH_BAD_APIKEY | The provided API key is invalid. |
AUTH_IP_BANNED | The IP address is banned from accessing the service. |
AUTH_MISSING_APIKEY | The API key is missing. |
AUTH_USER_BANNED | The user is banned from accessing the service. |
BAD_LINK | The provided link is invalid. |
DATABASE_ERROR | A database error occurred. |
DAILY_LIMIT_EXCEEDED | Daily limit of requests has been exceeded. |
FILE_NOT_FOUND | The requested file was not found. |
FILESIZE_LIMIT | The filesize exceeds the allowed limit. |
FILESIZE_LIMIT_FREE | Free user filesize limit exceeded. |
FILESIZE_LIMIT_GUEST | Guest user filesize limit exceeded. |
FREE_TRAFFIC_LIMIT_EXCEEDED | Free traffic limit has been exceeded. |
FREE_USER_DAILY_LIMIT_EXCEEDED | Free user daily limit exceeded. |
HOSTER_MAINTENANCE | The hoster is under maintenance. |
HOSTER_NOT_AVAILABLE_BY_API | The hoster is not available via the API. |
HOSTER_TEMPORARILY_UNAVAILABLE | The hoster is temporarily unavailable. |
HOSTER_DAILY_LIMIT_EXCEEDED | Daily limit of requests has been exceeded for hoster. |
INVALID_ID | The provided ID is invalid. |
INVALID_INPUT_FORMAT | The input format is invalid. |
INVALID_LINK_FORMAT | The link format is invalid. |
LINK_ERROR | An error occurred while processing the link. |
LINK_GENERATION_FAILED | Failed to generate the requested link. |
LINK_ALREADY_GENERATED | Link already generated today by the user. |
LINK_GENERATION_LIMIT_EXCEEDED | Exceeded the limit for generating links. |
LINK_PASS_PROTECTED | The link is password protected. |
LINK_TEMPORARILY_UNAVAILABLE | The link is temporarily unavailable. |
LINK_THIRD_PARTY_PR_SUB_REQUIRED | Third-party PR subscription is required for this link. |
LINK_TYPE_UNSUPPORTED | The provided link type is unsupported. |
MUST_BE_PREMIUM | You must be a premium user to access this feature. |
PREMIUM_TRAFFIC_UNAVAILABLE | Premium traffic is unavailable. |
PROXY_NOT_ALLOWED | Access through proxy is not allowed. |
RATE_LIMIT_EXCEEDED | Rate limit exceeded, too many requests. |
RESOURCE_RETRIEVAL_FAILURE | Failed to retrieve the requested resource. |
SERVER_TRAFFIC_LIMIT_REACHED | Server traffic limit reached, please try again later. |
SERVICE_FAILURE | Service failure, please try again later. |
TRAFFIC_LIMIT_EXCEEDED | User traffic limit exceeded. |
UNSUPPORTED_HOSTER | The specified hoster is not supported. |
USER_QUOTA_EXCEEDED | The user's quota has been exceeded. |
WEEKLY_LIMIT_EXCEEDED | Weekly limit has been exceeded. |
Changelog
01/11/2024
- API : Added new possible error:
HOSTER_DAILY_LIMIT_EXCEEDED
to the errors section - API : Added new possible error:
LINK_ALREADY_GENERATED
to the errors section - API : Added new property to hosters:
StatusText
to the/api/user
endpoint in Get User Info section