Base URL:
Content-Type: application/json
Authentication: Most endpoints require an
https://mercury.vpnbuilder.orgContent-Type: application/json
Authentication: Most endpoints require an
apiKey parameter in the request body (POST) or query string.
Table of Contents
Users
POST
/users/all
Retrieve all users for the authenticated reseller.
Request Parameters:
apiKey
*required
Your API key for authentication
Request Example
{
"apiKey": "your-api-key-here"
}
POST
/users/password
Get the password for a specific user account.
Request Parameters:
apiKey
*required
Your API key for authentication
username
*required
The username of the account
Request Example
{
"apiKey": "your-api-key-here",
"username": "user123"
}
Success Response:
{
"Error": false,
"Username": "user123",
"Password": "user-password"
}
POST
/users/create
Create a new user account. If the user already exists as a mobile user, it will be activated instead.
Request Parameters:
apiKey
*required
Your API key for authentication
username
*required
Unique username for the account
name
*required
Full name of the user
email
*required
Email address of the user
deviceID
*required
Unique device identifier
password
optional
Password for the account (auto-generated if not provided)
Request Example
{
"apiKey": "your-api-key-here",
"username": "newuser",
"name": "John Doe",
"email": "john@example.com",
"deviceID": "device-123",
"password": "optional-password"
}
POST
/users/login
Authenticate a user and retrieve login information.
Request Parameters:
username
*required
Username for authentication
password
*required
Password for authentication
deviceID
*required
Unique device identifier
Request Example
{
"username": "user123",
"password": "user-password",
"deviceID": "device-123"
}
POST
/users/{username}/delete
Deactivate a user account.
URL Parameters:
username
*required
Username in the URL path
Request Parameters:
apiKey
*required
Your API key for authentication
Request Example
POST /users/user123/delete
{
"apiKey": "your-api-key-here"
}
Success Response:
{
"Error": false,
"Message": "User deactivated successfully"
}
POST
/users/{username}/update
Update a user's password.
URL Parameters:
username
*required
Username in the URL path
Request Parameters:
password
*required
Current password for verification
newPassword
*required
New password to set
Request Example
POST /users/user123/update
{
"password": "old-password",
"newPassword": "new-password"
}
Success Response:
{
"Error": false,
"Message": "Password updated successfully"
}
Countries
GET
/countries/all
Retrieve all available countries.
Request Example
GET /countries/all
Servers
POST
/servers/all
Get all available servers. Requires user authentication.
Request Parameters:
username
*required
Username for authentication
password
*required
Password for authentication
deviceID
*required
Unique device identifier
Request Example
{
"username": "user123",
"password": "user-password",
"deviceID": "device-123"
}
POST
/servers/{id}
Get servers filtered by country ID. Requires user authentication.
URL Parameters:
id
*required
Country ID to filter servers
Request Parameters:
username
*required
Username for authentication
password
*required
Password for authentication
deviceID
*required
Unique device identifier
Request Example
POST /servers/1
{
"username": "user123",
"password": "user-password",
"deviceID": "device-123"
}
Mobile Users
POST
/mobile/users/create
Create a new mobile user account.
Request Parameters:
name
*required
Full name of the user
username
*required
Unique username for the account
email
*required
Email address of the user
password
*required
Password for the account
deviceID
*required
Unique device identifier
Request Example
{
"name": "Jane Doe",
"username": "janedoe",
"email": "jane@example.com",
"password": "secure-password",
"deviceID": "device-456"
}
POST
/mobile/users/{id}/activate
Activate a mobile user account using an API key.
URL Parameters:
id
*required
Username in the URL path
Request Parameters:
apiKey
*required
Your API key for authentication
Request Example
POST /mobile/users/janedoe/activate
{
"apiKey": "your-api-key-here"
}
Success Response:
{
"Error": false,
"Message": "Account activated successfully"
}
POST
/mobile/users/{id}/deactivate
Deactivate a mobile user account using an API key.
URL Parameters:
id
*required
Username in the URL path
Request Parameters:
apiKey
*required
Your API key for authentication
Request Example
POST /mobile/users/janedoe/deactivate
{
"apiKey": "your-api-key-here"
}
Success Response:
{
"Error": false,
"Message": "Account deactivated successfully"
}
POST
/mobile/users/{id}/update
Update a mobile user's password.
URL Parameters:
id
*required
Username in the URL path
Request Parameters:
password
*required
Current password for verification
newPassword
*required
New password to set
Request Example
POST /mobile/users/janedoe/update
{
"password": "old-password",
"newPassword": "new-password"
}
Success Response:
{
"Error": false,
"Message": "Password updated successfully"
}
Admin
GET
/admin/servers/full
Get full server information (admin only).
Request Example
GET /admin/servers/full
GET
/admin/servers/lite
Get server IP addresses only (admin only).
Request Example
GET /admin/servers/lite
Reseller
POST
/reseller/stats
Get statistics for the authenticated reseller including active users, monthly cost, and cost per user.
Request Parameters:
apiKey
*required
Your API key for authentication
Request Example
{
"apiKey": "your-api-key-here"
}
Success Response:
{
"Error": false,
"Statistics": {
"ActiveUsers": 150,
"MonthlyCost": "1250.00",
"CostPerUser": "8.33"
}
}
POST
/reseller/prefixes
Get all username prefixes for the authenticated reseller.
Request Parameters:
apiKey
*required
Your API key for authentication
Request Example
{
"apiKey": "your-api-key-here"
}
Success Response:
{
"Error": false,
"Prefixes": ["prefix1", "prefix2", "prefix3"]
}
POST
/reseller/prefixes/create
Create a new username prefix for the authenticated reseller.
Request Parameters:
apiKey
*required
Your API key for authentication
prefix
*required
The prefix to create
Request Example
{
"apiKey": "your-api-key-here",
"prefix": "newprefix"
}
Success Response:
{
"Error": false,
"Message": "Prefix created successfully"
}
Error Codes
HTTP Status Codes
200
Success - Request completed successfully
400
Bad Request - Missing or invalid parameters
401
Unauthorized - Invalid API key or authentication failed
404
Not Found - Resource not found (e.g., user does not exist)
Error Response Format
{
"Error": true,
"ErrorMsg": "Description of the error"
}
Success Response Format
{
"Error": false,
"Message": "Success message",
// ... additional data
}