NAV
فناوران شبکه سینداد
bash php python

Introduction

Our HTTP REST API allows you to manage vital details of your account and services in client portal. JSON is used for all API returns

Use left menu to browse trough available methods, use right menu to check required parameters, data to post and code samples in various languages.

Swagger Doc: You can download or display the JSON to generate documentation in Swagger.

Authentication

Basic Authentication

# pass the correct header with each request (-u option)
curl 'https://my.royaserver.com/api/details' \
    -u "username:password"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$resp = $client->get('details');
# python requests module handles basic authentication if provided with auth parameter
payload = username
req = requests.get('https://my.royaserver.com/api/details', auth=('username', 'password'))
print(req.json())

Make sure to replace username and password with your client area details.

This authentication method requires that you send your client area username (email address) and password with each request.

API calls that require authentication expect a header in the form of Authorization: Basic <credentials>, where credentials is the Base64 encoding of username and password joined by a single colon :.

For example:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

You can find more info on this authentication method here: Basic HTTP Authentication

Clientarea

Login

Generate new authorization token

POST_DATA="{
    \"username\": \"user@example.com\",
    \"password\": \"secret\"
}"

curl -X POST "https://my.royaserver.com/api/login" \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
]);

$options = [
    'json' => [
        "username" => "user@example.com",
        "password" => "secret"
    ]
]
$resp = $client->post('login', $options);
echo $resp->getBody();
payload = {
    'username': "user@example.com",
    'password': "secret"
}


req = requests.post('https://my.royaserver.com/api/login', json=payload)
print(req.json())
Example Response:
{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRw(...)5lZ9T79ft9uwOkqRRmIBbtR51_w",
    "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzMD(...)ChwIAb3zvxBu6kvULa2AwAt9U-I"
}

HTTP Request

POST /login

Query Parameters

Parameter Type Description
username string

Your acount email address

password string

Account password

Logout

Invalidate authorization token


curl -X POST "https://my.royaserver.com/api/logout" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('logout');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/logout', auth=auth)
print(req.json())
Example Response:
{
    "status": true
}

HTTP Request

POST /logout

Refresh Token

Generate new authorization token using refresh token

POST_DATA="{
    \"refresh_token\": \"refresh_tokenValue\"
}"

curl -X POST "https://my.royaserver.com/api/token" \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
]);

$options = [
    'json' => [
        "refresh_token" => "refresh_tokenValue"
    ]
]
$resp = $client->post('token', $options);
echo $resp->getBody();
payload = {
    'refresh_token': "refresh_tokenValue"
}


req = requests.post('https://my.royaserver.com/api/token', json=payload)
print(req.json())
Example Response:
{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHR(...)vY2xlYiHGvauCWZD9B0VwXgHEzXDllqY",
    "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJBQ(...)Rmivc_u3YA_kgDqOPtUuGNXOzueXYtZw"
}

HTTP Request

POST /token

Query Parameters

Parameter Type Description
refresh_token string

Refresh token previously obtained from POST /login

Revoke Token

Invalidate authorization and refresh token. Pass refresh token or call this method with valid access token

POST_DATA="{
    \"refresh_token\": \"refresh_tokenValue\"
}"

curl -X POST "https://my.royaserver.com/api/revoke" \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
]);

$options = [
    'json' => [
        "refresh_token" => "refresh_tokenValue"
    ]
]
$resp = $client->post('revoke', $options);
echo $resp->getBody();
payload = {
    'refresh_token': "refresh_tokenValue"
}


req = requests.post('https://my.royaserver.com/api/revoke', json=payload)
print(req.json())
Example Response:
{
    "status": true
}

HTTP Request

POST /revoke

Query Parameters

Parameter Type Description
refresh_token string

User Details

Return registration details for my account


curl -X GET "https://my.royaserver.com/api/details" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('details');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/details', auth=auth)
print(req.json())
Example Response:
{
    "client": {
        "id": "26",
        "email": "api@example.com",
        "lastlogin": "2016-12-30 12:24:28",
        "ip": "172.100.2.1",
        "host": "hostname",
        "firstname": "Joe",
        "lastname": "Doe",
        "companyname": "",
        "address1": "Pretty View Lane",
        "address2": "3294",
        "city": "Santa Rosa",
        "state": "California",
        "postcode": "95401",
        "country": "US",
        "phonenumber": "+1.24123123"
    }
}

HTTP Request

GET /details

Update User Details

Update registration details under my account

POST_DATA="{
    \"email\": \"emailValue\",
    \"firstname\": \"firstnameValue\",
    \"lastname\": \"lastnameValue\",
    \"socialsecuritynumberpersonalid\": \"socialsecuritynumberpersonalidValue\",
    \"companyname\": \"companynameValue\",
    \"address1\": \"address1Value\",
    \"city\": \"cityValue\",
    \"state\": \"stateValue\",
    \"postcode\": \"postcodeValue\",
    \"country\": \"countryValue\",
    \"phonenumber\": \"phonenumberValue\",
    \"type\": \"typeValue\",
    \"mellicardimage\": \"mellicardimageValue\",
    \"telegramnotifications\": \"telegramnotificationsValue\",
    \"langcustomline0180\": \"langcustomline0180Value\"
}"

curl -X PUT "https://my.royaserver.com/api/details" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "email" => "emailValue",
        "firstname" => "firstnameValue",
        "lastname" => "lastnameValue",
        "socialsecuritynumberpersonalid" => "socialsecuritynumberpersonalidValue",
        "companyname" => "companynameValue",
        "address1" => "address1Value",
        "city" => "cityValue",
        "state" => "stateValue",
        "postcode" => "postcodeValue",
        "country" => "countryValue",
        "phonenumber" => "phonenumberValue",
        "type" => "typeValue",
        "mellicardimage" => "mellicardimageValue",
        "telegramnotifications" => "telegramnotificationsValue",
        "langcustomline0180" => "langcustomline0180Value"
    ]
]
$resp = $client->put('details', $options);
echo $resp->getBody();
payload = {
    'email': "emailValue",
    'firstname': "firstnameValue",
    'lastname': "lastnameValue",
    'socialsecuritynumberpersonalid': "socialsecuritynumberpersonalidValue",
    'companyname': "companynameValue",
    'address1': "address1Value",
    'city': "cityValue",
    'state': "stateValue",
    'postcode': "postcodeValue",
    'country': "countryValue",
    'phonenumber': "phonenumberValue",
    'type': "typeValue",
    'mellicardimage': "mellicardimageValue",
    'telegramnotifications': "telegramnotificationsValue",
    'langcustomline0180': "langcustomline0180Value"
}

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/details', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "client": {
        "id": "26",
        "email": "api@example.com",
        "lastlogin": "2016-12-30 12:34:20",
        "ip": "172.100.2.1",
        "host": "hostname",
        "firstname": "Joe",
        "lastname": "Doe",
        "companyname": "",
        "address1": "Pretty View Lane",
        "address2": "3194",
        "city": "Santa Rosa",
        "state": "California",
        "postcode": "95401",
        "country": "US",
        "phonenumber": "+1.24123123"
    },
    "info": [
        "client_info_updated"
    ]
}

HTTP Request

PUT /details

Query Parameters

Parameter Type Description
email string

Email Address

firstname string

First Name

lastname string

Last Name

socialsecuritynumberpersonalid string

کد ملی

Value pattern: ^([0-9]){10}$

companyname string

Organization

address1 string

Address 1

city string

City

state string

State

postcode string

Post code

country string

Country

phonenumber string

Phone

Value pattern: ^(\+98)?\s?0?9([0-9]){9}$

type string

Account Type

Available values: Private, Company.

mellicardimage string

تصویر کارت ملی

Value pattern: .jpg;.gif;.png;.pdf

telegramnotifications string[]

دریافت نوتیفیکیشن از تلگرام - می‌توانید نوتیفیکیشن‌های مربوط به تیکت‌ها، صورتحساب‌ها و ... را با فعال کردن این گزینه از طریق تلگرام دریافت کنید.

Available values: بله.

langcustomline0180 string

تلفن ثابت شرکت

User Logs

Returns logs from history


curl -X GET "https://my.royaserver.com/api/logs" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('logs');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/logs', auth=auth)
print(req.json())

HTTP Request

GET /logs

Get Affiliate summary


curl -X GET "https://my.royaserver.com/api/affiliates/summary" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('affiliates/summary');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/affiliates/summary', auth=auth)
print(req.json())

HTTP Request

GET /affiliates/summary

Get Affiliate campaigns


curl -X GET "https://my.royaserver.com/api/affiliates/campaigns" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('affiliates/campaigns');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/affiliates/campaigns', auth=auth)
print(req.json())

HTTP Request

GET /affiliates/campaigns

Get Affiliate commissions


curl -X GET "https://my.royaserver.com/api/affiliates/commissions" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('affiliates/commissions');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/affiliates/commissions', auth=auth)
print(req.json())

HTTP Request

GET /affiliates/commissions

Get Affiliate payouts


curl -X GET "https://my.royaserver.com/api/affiliates/payouts" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('affiliates/payouts');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/affiliates/payouts', auth=auth)
print(req.json())

HTTP Request

GET /affiliates/payouts

Get Affiliate vouchers


curl -X GET "https://my.royaserver.com/api/affiliates/vouchers" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('affiliates/vouchers');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/affiliates/vouchers', auth=auth)
print(req.json())

HTTP Request

GET /affiliates/vouchers

Get Affiliate commission plans


curl -X GET "https://my.royaserver.com/api/affiliates/commissionplans" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('affiliates/commissionplans');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/affiliates/commissionplans', auth=auth)
print(req.json())

HTTP Request

GET /affiliates/commissionplans

List contacts

Return a list of contacts on this account


curl -X GET "https://my.royaserver.com/api/contact" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('contact');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/contact', auth=auth)
print(req.json())
Example Response:
{
    "contacts": [
        {
            "email": "mary@example.com",
            "id": "49",
            "firstname": "Mary",
            "lastname": "Sue",
            "companyname": "",
            "company": "0",
            "lastlogin": "0000-00-00 00:00:00"
        }
    ]
}

HTTP Request

GET /contact

Add contact

Create new contact account, if password is provided you can use provided email addres to login as that contact.

POST_DATA="{
    \"password\": \"passwordValue\",
    \"privileges\": \"privilegesValue\",
    \"email\": \"emailValue\",
    \"firstname\": \"firstnameValue\",
    \"lastname\": \"lastnameValue\",
    \"socialsecuritynumberpersonalid\": \"socialsecuritynumberpersonalidValue\",
    \"companyname\": \"companynameValue\",
    \"address1\": \"address1Value\",
    \"city\": \"cityValue\",
    \"state\": \"stateValue\",
    \"postcode\": \"postcodeValue\",
    \"country\": \"countryValue\",
    \"phonenumber\": \"phonenumberValue\",
    \"type\": \"typeValue\",
    \"mellicardimage\": \"mellicardimageValue\",
    \"telegramnotifications\": \"telegramnotificationsValue\",
    \"langcustomline0180\": \"langcustomline0180Value\"
}"

curl -X POST "https://my.royaserver.com/api/contact" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "password" => "passwordValue",
        "privileges" => "privilegesValue",
        "email" => "emailValue",
        "firstname" => "firstnameValue",
        "lastname" => "lastnameValue",
        "socialsecuritynumberpersonalid" => "socialsecuritynumberpersonalidValue",
        "companyname" => "companynameValue",
        "address1" => "address1Value",
        "city" => "cityValue",
        "state" => "stateValue",
        "postcode" => "postcodeValue",
        "country" => "countryValue",
        "phonenumber" => "phonenumberValue",
        "type" => "typeValue",
        "mellicardimage" => "mellicardimageValue",
        "telegramnotifications" => "telegramnotificationsValue",
        "langcustomline0180" => "langcustomline0180Value"
    ]
]
$resp = $client->post('contact', $options);
echo $resp->getBody();
payload = {
    'password': "passwordValue",
    'privileges': "privilegesValue",
    'email': "emailValue",
    'firstname': "firstnameValue",
    'lastname': "lastnameValue",
    'socialsecuritynumberpersonalid': "socialsecuritynumberpersonalidValue",
    'companyname': "companynameValue",
    'address1': "address1Value",
    'city': "cityValue",
    'state': "stateValue",
    'postcode': "postcodeValue",
    'country': "countryValue",
    'phonenumber': "phonenumberValue",
    'type': "typeValue",
    'mellicardimage': "mellicardimageValue",
    'telegramnotifications': "telegramnotificationsValue",
    'langcustomline0180': "langcustomline0180Value"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/contact', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "contact_id": "1",        
    "info": [
        "profile_added"
    ]
}

HTTP Request

POST /contact

Query Parameters

Parameter Type Description
password string

Optional, allows you to login as contact

privileges array

Array with privileges that you want to enable. Formatted the same way as output from GET /contact/privileges

email string

Email Address

firstname string

First Name

lastname string

Last Name

socialsecuritynumberpersonalid string

کد ملی

Value pattern: ^([0-9]){10}$

companyname string

Organization

address1 string

Address 1

city string

City

state string

State

postcode string

Post code

country string

Country

phonenumber string

Phone

Value pattern: ^(\+98)?\s?0?9([0-9]){9}$

type string

Account Type

Available values: Private, Company.

mellicardimage string

تصویر کارت ملی

Value pattern: .jpg;.gif;.png;.pdf

telegramnotifications string[]

دریافت نوتیفیکیشن از تلگرام - می‌توانید نوتیفیکیشن‌های مربوط به تیکت‌ها، صورتحساب‌ها و ... را با فعال کردن این گزینه از طریق تلگرام دریافت کنید.

Available values: بله.

langcustomline0180 string

تلفن ثابت شرکت

Contact privileges

List possible contact privileges. Each domain and service may list additional privileges, depending on available features.


curl -X GET "https://my.royaserver.com/api/contact/privileges" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('contact/privileges');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/contact/privileges', auth=auth)
print(req.json())
Example Response:
{
    "privileges": {
        "billing": [
            "emails", // Receive billing notifications
            "payinvoice", // Allow to view/pay invoices
            "orders", // Allow to place new orders
            "balance", // View account balance
            "addfunds", // Add account funds
            "creditcard" // Edit Credit Card details
        ],
        "support": [
            "newticket", // Open new tickets
            "tickets", // View all tickets
            "closeticket", // Close tickets
            "emails" // Receive email notifications from support
        ],
        "misc": [
            "editmain", // Modify main profile details
            "emails", // View emails history
            "editipaccess", // Edit allowed IP access
            "manageprofiles", // Add / Edit contacts
            "affiliates" // Access affiliates section
        ],
        "services": {
            "full": 1, // Full control over services
            "332": [
                "basic", // View basic details
                "billing", // View billing info
                "cancelation", // Request cancellation
                "upgrade", // Upgrade / Downgrade
                "notify", // Receive related email notifications  
                (...)
                "logindetails"
            ]
        },
        "domains": {
            "full": 1, // Full control over domains
            "523": [
                "basic", // View basic details
                "renew", // Renew domain
                "notify", // Receive related email notifications  
                "contactinfo", // Contact Information
                (...)
                "nameservers" // Manage Nameservers
            ]
        }
    }
}

HTTP Request

GET /contact/privileges

Get contacts details

Return array with contact details


curl -X GET "https://my.royaserver.com/api/contact/@id" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('contact/@id');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/contact/@id', auth=auth)
print(req.json())
Example Response:
{
    "contact": {
        "id": "49",
        "email": "mary@example.com",
        "firstname": "Mary",
        "lastname": "Sue",
        "companyname": "",
        "address1": "Pretty View Lane",
        "address2": "3194",
        "city": "Santa Rosa",
        "state": "California",
        "postcode": "95401",
        "country": "US",
        "phonenumber": "+1.24123123",
        "type": "Private",
        "privileges" : {
            "support" : ["tickets", "newticket"]
        }
    }
}

HTTP Request

GET /contact/@id

Query Parameters

Parameter Type Description
id int

Contact ID

Edit contact

Change contact details`

POST_DATA="{
    \"privileges\": \"privilegesValue\",
    \"email\": \"emailValue\",
    \"firstname\": \"firstnameValue\",
    \"lastname\": \"lastnameValue\",
    \"socialsecuritynumberpersonalid\": \"socialsecuritynumberpersonalidValue\",
    \"companyname\": \"companynameValue\",
    \"address1\": \"address1Value\",
    \"city\": \"cityValue\",
    \"state\": \"stateValue\",
    \"postcode\": \"postcodeValue\",
    \"country\": \"countryValue\",
    \"phonenumber\": \"phonenumberValue\",
    \"type\": \"typeValue\",
    \"mellicardimage\": \"mellicardimageValue\",
    \"telegramnotifications\": \"telegramnotificationsValue\",
    \"langcustomline0180\": \"langcustomline0180Value\"
}"

curl -X PUT "https://my.royaserver.com/api/contact/@id" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "privileges" => "privilegesValue",
        "email" => "emailValue",
        "firstname" => "firstnameValue",
        "lastname" => "lastnameValue",
        "socialsecuritynumberpersonalid" => "socialsecuritynumberpersonalidValue",
        "companyname" => "companynameValue",
        "address1" => "address1Value",
        "city" => "cityValue",
        "state" => "stateValue",
        "postcode" => "postcodeValue",
        "country" => "countryValue",
        "phonenumber" => "phonenumberValue",
        "type" => "typeValue",
        "mellicardimage" => "mellicardimageValue",
        "telegramnotifications" => "telegramnotificationsValue",
        "langcustomline0180" => "langcustomline0180Value"
    ]
]
$resp = $client->put('contact/@id', $options);
echo $resp->getBody();
payload = {
    'privileges': "privilegesValue",
    'email': "emailValue",
    'firstname': "firstnameValue",
    'lastname': "lastnameValue",
    'socialsecuritynumberpersonalid': "socialsecuritynumberpersonalidValue",
    'companyname': "companynameValue",
    'address1': "address1Value",
    'city': "cityValue",
    'state': "stateValue",
    'postcode': "postcodeValue",
    'country': "countryValue",
    'phonenumber': "phonenumberValue",
    'type': "typeValue",
    'mellicardimage': "mellicardimageValue",
    'telegramnotifications': "telegramnotificationsValue",
    'langcustomline0180': "langcustomline0180Value"
}

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/contact/@id', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "info": [
        "profile_updated"
    ]
}

HTTP Request

PUT /contact/@id

Query Parameters

Parameter Type Description
id int
privileges array

Array with privileges that you want to enable. Formatted the same way as output from GET /contact/privileges

email string

Email Address

firstname string

First Name

lastname string

Last Name

socialsecuritynumberpersonalid string

کد ملی

Value pattern: ^([0-9]){10}$

companyname string

Organization

address1 string

Address 1

city string

City

state string

State

postcode string

Post code

country string

Country

phonenumber string

Phone

Value pattern: ^(\+98)?\s?0?9([0-9]){9}$

type string

Account Type

Available values: Private, Company.

mellicardimage string

تصویر کارت ملی

Value pattern: .jpg;.gif;.png;.pdf

telegramnotifications string[]

دریافت نوتیفیکیشن از تلگرام - می‌توانید نوتیفیکیشن‌های مربوط به تیکت‌ها، صورتحساب‌ها و ... را با فعال کردن این گزینه از طریق تلگرام دریافت کنید.

Available values: بله.

langcustomline0180 string

تلفن ثابت شرکت

List all portal notifications

Return a list of all portal notifications.


curl -X GET "https://my.royaserver.com/api/notifications" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('notifications');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/notifications', auth=auth)
print(req.json())

HTTP Request

GET /notifications

Query Parameters

Parameter Type Description
rel_type string

Optional, return only by relation type

rel_id string

Optional, return only by relation id

List new portal notifications

Return only new portal notifications.


curl -X GET "https://my.royaserver.com/api/notifications/new" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('notifications/new');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/notifications/new', auth=auth)
print(req.json())

HTTP Request

GET /notifications/new

Query Parameters

Parameter Type Description
rel_type string

Optional, return only by relation type

rel_id string

Optional, return only by relation id

Acknowledge notification

Marks the notification as read


curl -X PUT "https://my.royaserver.com/api/notifications/@id/ack" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('notifications/@id/ack');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/notifications/@id/ack', auth=auth)
print(req.json())

HTTP Request

PUT /notifications/@id/ack

Query Parameters

Parameter Type Description
id int

Returns a list of all statuses with specific status


curl -X GET "https://my.royaserver.com/api/statuses" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('statuses');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/statuses', auth=auth)
print(req.json())

HTTP Request

GET /statuses

Query Parameters

Parameter Type Description
status string

Returns details of status


curl -X PUT "https://my.royaserver.com/api/statuses/@id" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('statuses/@id');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/statuses/@id', auth=auth)
print(req.json())

HTTP Request

PUT /statuses/@id

Query Parameters

Parameter Type Description
id int

Billing

Account balance

Get current account balance(unpaid invoices total), account credit


curl -X GET "https://my.royaserver.com/api/balance" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('balance');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/balance', auth=auth)
print(req.json())
Example Response:
{
    {
        "success": true,
        "details": {
            "currency": "USD",
            "acc_balance": "123456.55",
            "acc_credit": "0.00"
        }
    }
}

HTTP Request

GET /balance

List Invoices

List all invoices under my account


curl -X GET "https://my.royaserver.com/api/invoice" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('invoice');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/invoice', auth=auth)
print(req.json())
Example Response:
{
    "invoices": [
        {
            "id": "308976",
            "date": "2016-12-30",
            "dateorig": "2016-12-30",
            "duedate": "2017-01-06",
            "paybefore": "2017-01-06",
            "total": "19.65",
            "datepaid": "2016-12-30 12:40:47",
            "status": "Paid",
            "merge_id": null,
            "number": "2016\/12\/1",
            "currency": "USD"
        }
    ]
}

HTTP Request

GET /invoice

Invoice Details

Get invoice details


curl -X GET "https://my.royaserver.com/api/invoice/@id" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('invoice/@id');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/invoice/@id', auth=auth)
print(req.json())
Example Response:
{
    "invoice": {
        "id": "308976",
        "status": "Paid",
        "date": "2016-12-30",
        "duedate": "2017-01-06",
        "paybefore": "2017-01-06",
        "datepaid": "2016-12-30 12:40:47",
        "subtotal": 16.24,
        "credit": 0,
        "tax": 3.41,
        "taxrate": 21,
        "tax2": 0,
        "taxrate2": 0,
        "taxexempt": "0",
        "total": 19.65,
        "rate": 1,
        "rate2": 0,
        "rate3": 1,
        "notes": "",
        "items": [
            {
                "id": "12305",
                "invoice_id": "308976",
                "type": "Other",
                "item_id": "0",
                "description": "Example Service",
                "amount": "15.00",
                "taxed": "1",
                "qty": "1.00",
                "linetotal": "15.00"
            },
            {
                "id": "12309",
                "invoice_id": "308976",
                "type": "Other",
                "item_id": "-2",
                "description": "PayPal Payment Fee",
                "amount": "1.24",
                "taxed": "1",
                "qty": "1.00",
                "linetotal": "1.24"
            }
        ],
        "client": {
            "id": "26",
            "email": "api@example.com",
            "firstname": "Joe",
            "lastname": "Doe",
            "companyname": "",
            "address1": "Pretty View Lane",
            "address2": "3194",
            "city": "Santa Rosa",
            "state": "California",
            "postcode": "95401",
            "country": "US",
            "phonenumber": "+1.24123123"
        },
        "number": "2016\/12\/1",
        "currency": "USD"
    }
}

HTTP Request

GET /invoice/@id

Query Parameters

Parameter Type Description
id int

Apply credit

Apply account credit to invoice

POST_DATA="{
    \"amount\": \"amountValue\"
}"

curl -X POST "https://my.royaserver.com/api/invoice/@id/credit" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "amount" => "amountValue"
    ]
]
$resp = $client->post('invoice/@id/credit', $options);
echo $resp->getBody();
payload = {
    'amount': "amountValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/invoice/@id/credit', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "success": true,
    "invoice_status": "Paid",
    "applied": 2.1
}

HTTP Request

POST /invoice/@id/credit

Query Parameters

Parameter Type Description
id int
amount number

Optional credit amount, when no value is specified maximum amount to fully pay the invoice will be used

Payment Methods

List available payment methods


curl -X GET "https://my.royaserver.com/api/payment" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('payment');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/payment', auth=auth)
print(req.json())
Example Response:
{
    "payments": {
        "10": "BankTransfer",
        "9": "PayPal"
    }
}

HTTP Request

GET /payment

Payment Methods Fees

List available payment methods with fees


curl -X GET "https://my.royaserver.com/api/payment/fees" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('payment/fees');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/payment/fees', auth=auth)
print(req.json())
Example Response:
{
    "payments": [
        {
            "id": 1,
            "name": "Bank Transfer",
            "fixed_fee": "0.0",
            "percent_fee": "0.0",
        },
        {
            "id": 2,
            "name": "Stripe",
            "fixed_fee": "0.5",
            "percent_fee": "2.9",
        },
        {
            "id": 4,
            "name": "Credit Card",
            "fixed_fee": "0.1",
            "percent_fee": "2.4"
        },
        {
            "id": 5,
            "name": "PayPal",
            "fixed_fee": "0.3",
            "percent_fee": "2.9"
        }
    ]
}

HTTP Request

GET /payment/fees

Support

List Tickets

List support tickets under my account


curl -X GET "https://my.royaserver.com/api/tickets" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('tickets');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/tickets', auth=auth)
print(req.json())
Example Response:
{
    "tickets": [
        {
            "client_read": "1",
            "ticket_number": "736633",
            "date": "2016-12-30 12:48:13",
            "deptname": "Billing",
            "subject": "Lore Ipsum",
            "status": "Open"
        }
    ]
}

HTTP Request

GET /tickets

Ticket details

Get ticket details, including all replies


curl -X GET "https://my.royaserver.com/api/tickets/@number" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('tickets/@number');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/tickets/@number', auth=auth)
print(req.json())
Example Response:
{
    "ticket": {
        "date": "2016-12-30 12:48:13",
        "ticket_number": "736633",
        "name": "Joe Doe",
        "email": "api@example.com",
        "subject": "Lore Ipsum",
        "body": "Donec sollicitudin molestie malesuada. \r\nSed porttitor lectus nibh. Vivamus magna justo, \r\nlacinia eget consectetur sed, convallis at tellus.",
        "status": "Answered",
        "client_read": "1",
        "deptname": "Billing"
    },
    "replies": [
        {
            "id": "929",
            "name": "Suppport Staff",
            "date": "2016-12-30 12:51:04",
            "body": "Vestibulum ac diam sit amet quam \r\nvehicula elementum sed sit amet dui. \r\nPraesent sapien massa\r\n\r\n-- Maecenas efficitur elit est --",
            "status": "Sent",
            "type": "Admin"
        }
    ]
}

HTTP Request

GET /tickets/@number

Query Parameters

Parameter Type Description
number int

Ticket number

Ticket attachment

Get ticket attachment


curl -X GET "https://my.royaserver.com/api/ticket/attachment/@file" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('ticket/attachment/@file');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/ticket/attachment/@file', auth=auth)
print(req.json())

HTTP Request

GET /ticket/attachment/@file

Query Parameters

Parameter Type Description
number int

Ticket number

file string

Attachment id

Create Ticket

Submit new ticket

POST_DATA="{
    \"dept_id\": 1,
    \"subject\": \"Subject\",
    \"body\": \"Message ...\"
}"

curl -X POST "https://my.royaserver.com/api/tickets" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "dept_id" => 1,
        "subject" => "Subject",
        "body" => "Message ..."
    ]
]
$resp = $client->post('tickets', $options);
echo $resp->getBody();
payload = {
    'dept_id': 1,
    'subject': "Subject",
    'body': "Message ..."
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/tickets', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "ticket": 865650
}

HTTP Request

POST /tickets

Query Parameters

Parameter Type Description
dept_id int

Department id

subject string

Ticket subject

body string

Ticket message

Create Reply

Reply to ticket

POST_DATA="{
    \"body\": \"reply text ..\"
}"

curl -X POST "https://my.royaserver.com/api/tickets/@number" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "body" => "reply text .."
    ]
]
$resp = $client->post('tickets/@number', $options);
echo $resp->getBody();
payload = {
    'body': "reply text .."
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/tickets/@number', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "info": [
        "reply_added"
    ]
}

HTTP Request

POST /tickets/@number

Query Parameters

Parameter Type Description
number int

Ticket number

body string

Reply message

Re-open ticket

Try to re-open closed ticket


curl -X PUT "https://my.royaserver.com/api/tickets/@number/open" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('tickets/@number/open');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/tickets/@number/open', auth=auth)
print(req.json())
Example Response:
{
    "status": true
}

HTTP Request

PUT /tickets/@number/open

Query Parameters

Parameter Type Description
number int

Ticket number

Close ticket

Send request to close a ticket


curl -X PUT "https://my.royaserver.com/api/tickets/@number/close" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('tickets/@number/close');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/tickets/@number/close', auth=auth)
print(req.json())
Example Response:
{
    "status": true
}

HTTP Request

PUT /tickets/@number/close

Query Parameters

Parameter Type Description
number int

Ticket number

List ticket departments

Get the list of ticket departments


curl -X GET "https://my.royaserver.com/api/ticket/departments" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('ticket/departments');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/ticket/departments', auth=auth)
print(req.json())

HTTP Request

GET /ticket/departments

Domains

List Domains

List domains under your account


curl -X GET "https://my.royaserver.com/api/domain" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain', auth=auth)
print(req.json())
Example Response:
{
    "domains": [
        {
            "id": "47",
            "name": "testname.com",
            "expires": "2017-12-30",
            "recurring_amount": "15.00",
            "date_created": "2016-12-30",
            "status": "Active",
            "period": "1",
            "autorenew": "1",
            "daytoexpire": "365"
        }
    ]
}

HTTP Request

GET /domain

Domain details

Get domain details


curl -X GET "https://my.royaserver.com/api/domain/@id" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id', auth=auth)
print(req.json())
Example Response:
{
    "details": {
        "id": "47",
        "name": "testname.com",
        "date_created": "2016-12-30",
        "firstpayment": "10.00",
        "recurring_amount": "15.00",
        "period": "1",
        "expires": "2017-12-30",
        "status": "Active",
        "next_due": "2017-12-30",
        "next_invoice": "2017-11-30",
        "idprotection": "0",
        "nameservers": [
            "ns1.example.com",
            "ns2.example.com",
            "ns3.example.com",
            "ns4.example.com"
        ],
        "autorenew": "1"
    }
}

HTTP Request

GET /domain/@id

Query Parameters

Parameter Type Description
id int

Domain id

Domain details by name

Get domain details by name


curl -X GET "https://my.royaserver.com/api/domain/name/@name" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/name/@name');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/name/@name', auth=auth)
print(req.json())
Example Response:
{
    "details": [
        {
            "id": "47",
            "name": "testname.com",
            "date_created": "2016-12-30",
            "firstpayment": "10.00",
            "recurring_amount": "15.00",
            "period": "1",
            "expires": "2017-12-30",
            "status": "Active",
            "next_due": "2017-12-30",
            "next_invoice": "2017-11-30",
            "idprotection": "0",
            "nameservers": [
                "ns1.example.com",
                "ns2.example.com",
                "ns3.example.com",
                "ns4.example.com"
            ],
            "autorenew": "1"
        },
        {
            "id": "48",
            "name": "testname.com",
            "date_created": "2016-05-30",
            "firstpayment": "10.00",
            "recurring_amount": "15.00",
            "period": "1",
            "expires": "2017-05-30",
            "status": "Expired",
            "next_due": "2017-05-30",
            "next_invoice": "2017-04-30",
            "idprotection": "0",
            "nameservers": [
                "ns1.example.com",
                "ns2.example.com",
                "ns3.example.com",
                "ns4.example.com"
            ],
            "autorenew": "1"
        },
    ]
}

HTTP Request

GET /domain/name/@name

Query Parameters

Parameter Type Description
name string

Domain name

Get domain nameservers


curl -X GET "https://my.royaserver.com/api/domain/@id/ns" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/ns');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/ns', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/ns

Query Parameters

Parameter Type Description
id int

Domain id

Update domain nameservers

Change domain nameservers, if $nameservers is left empty, default namesevers will be used

POST_DATA="{
    \"nameservers\": \"nameserversValue\"
}"

curl -X PUT "https://my.royaserver.com/api/domain/@id/ns" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "nameservers" => "nameserversValue"
    ]
]
$resp = $client->put('domain/@id/ns', $options);
echo $resp->getBody();
payload = {
    'nameservers': "nameserversValue"
}

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/ns', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "info": [
        "success_changes_save"
    ]
}

HTTP Request

PUT /domain/@id/ns

Query Parameters

Parameter Type Description
id int

Domain id

nameservers array

List of nameservers to use

Register domain nameservers


curl -X POST "https://my.royaserver.com/api/domain/@id/reg" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('domain/@id/reg');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/domain/@id/reg', auth=auth)
print(req.json())

HTTP Request

POST /domain/@id/reg

Query Parameters

Parameter Type Description
id int

Domain id

DNS RecordsDNS Records

List DNS records


curl -X GET "https://my.royaserver.com/api/domain/@id/dns" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/dns');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/dns', auth=auth)
print(req.json())
Example Response:
{
    "records": [
        {
            "id": 1,
            "name": "test",
            "ttl": 0,
            "priority": 0,
            "type": "A",
            "content": "100.100.10.1"
        }
    ]
}

HTTP Request

GET /domain/@id/dns

Query Parameters

Parameter Type Description
id int

Domain id

Create DNS Records

Add a new DNS record

POST_DATA="{
    \"name\": \"nameValue\",
    \"type\": \"typeValue\",
    \"priority\": \"priorityValue\",
    \"content\": \"contentValue\"
}"

curl -X POST "https://my.royaserver.com/api/domain/@id/dns" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "name" => "nameValue",
        "type" => "typeValue",
        "priority" => "priorityValue",
        "content" => "contentValue"
    ]
]
$resp = $client->post('domain/@id/dns', $options);
echo $resp->getBody();
payload = {
    'name': "nameValue",
    'type': "typeValue",
    'priority': "priorityValue",
    'content': "contentValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/domain/@id/dns', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "info": [
        "DNS Management updated successfully"
    ]
}

HTTP Request

POST /domain/@id/dns

Query Parameters

Parameter Type Description
id int

Domain id

name string

Reord name

type string

Reord type

priority string

Reord priority

content string

Reord content eg. IP addres for A records

Update DNS Records

Change a DNS record

POST_DATA="{
    \"name\": \"nameValue\",
    \"type\": \"typeValue\",
    \"priority\": \"priorityValue\",
    \"content\": \"contentValue\"
}"

curl -X PUT "https://my.royaserver.com/api/domain/@id/dns/@index" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "name" => "nameValue",
        "type" => "typeValue",
        "priority" => "priorityValue",
        "content" => "contentValue"
    ]
]
$resp = $client->put('domain/@id/dns/@index', $options);
echo $resp->getBody();
payload = {
    'name': "nameValue",
    'type': "typeValue",
    'priority': "priorityValue",
    'content': "contentValue"
}

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/dns/@index', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "info": [
        "DNS Management updated successfully"
    ]
}

HTTP Request

PUT /domain/@id/dns/@index

Query Parameters

Parameter Type Description
id int

Domain id

record_id int

Recod index

name string

Record name

type string

Record type

priority string

Record priority

content string

Record content eg. IP address for A records

Remove DNS Records

Remove a DNS record


curl -X DELETE "https://my.royaserver.com/api/domain/@id/dns/@index" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->delete('domain/@id/dns/@index');
echo $resp->getBody();

auth=('username', 'password')

req = requests.delete('https://my.royaserver.com/api/domain/@id/dns/@index', auth=auth)
print(req.json())
Example Response:
{
    "info": [
        "DNS Management updated successfully"
    ]
}

HTTP Request

DELETE /domain/@id/dns/@index

Query Parameters

Parameter Type Description
id int

Domain id

record_id int

Recod index

DNS Records Types

List supported records type


curl -X GET "https://my.royaserver.com/api/domain/@id/dns/types" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/dns/types');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/dns/types', auth=auth)
print(req.json())
Example Response:
{
    "types": [
        "A",
        "CNAME",
        "URL",
        "FRAME",
        "MX",
        "MXE",
        "TXT"
    ]
}

HTTP Request

GET /domain/@id/dns/types

Query Parameters

Parameter Type Description
id int

Domain id

Get domain EPP Code


curl -X GET "https://my.royaserver.com/api/domain/@id/epp" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/epp');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/epp', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/epp

Query Parameters

Parameter Type Description
id int

Domain id

Synchronize domain


curl -X GET "https://my.royaserver.com/api/domain/@id/sync" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/sync');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/sync', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/sync

Query Parameters

Parameter Type Description
id int

Domain id

Get domain lock


curl -X GET "https://my.royaserver.com/api/domain/@id/reglock" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/reglock');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/reglock', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/reglock

Query Parameters

Parameter Type Description
id int

Domain id

Update domain lock


curl -X PUT "https://my.royaserver.com/api/domain/@id/reglock" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('domain/@id/reglock');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/reglock', auth=auth)
print(req.json())

HTTP Request

PUT /domain/@id/reglock

Query Parameters

Parameter Type Description
id int

Domain id

Update domain ID Protection


curl -X PUT "https://my.royaserver.com/api/domain/@id/idprotection" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('domain/@id/idprotection');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/idprotection', auth=auth)
print(req.json())

HTTP Request

PUT /domain/@id/idprotection

Query Parameters

Parameter Type Description
id int

Domain id

Get domain contact info


curl -X GET "https://my.royaserver.com/api/domain/@id/contact" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/contact');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/contact', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/contact

Query Parameters

Parameter Type Description
id int

Domain id

Update domain contact info


curl -X PUT "https://my.royaserver.com/api/domain/@id/contact" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('domain/@id/contact');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/contact', auth=auth)
print(req.json())

HTTP Request

PUT /domain/@id/contact

Query Parameters

Parameter Type Description
id int

Domain id

Get email forwarding


curl -X GET "https://my.royaserver.com/api/domain/@id/emforwarding" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/emforwarding');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/emforwarding', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/emforwarding

Query Parameters

Parameter Type Description
id int

Domain id

Update email forwarding


curl -X PUT "https://my.royaserver.com/api/domain/@id/emforwarding" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('domain/@id/emforwarding');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/emforwarding', auth=auth)
print(req.json())

HTTP Request

PUT /domain/@id/emforwarding

Query Parameters

Parameter Type Description
id int

Domain id

Update domain forwarding


curl -X PUT "https://my.royaserver.com/api/domain/@id/forwarding" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('domain/@id/forwarding');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/forwarding', auth=auth)
print(req.json())

HTTP Request

PUT /domain/@id/forwarding

Query Parameters

Parameter Type Description
id int

Domain id

Get domain autorenew


curl -X GET "https://my.royaserver.com/api/domain/@id/autorenew" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/autorenew');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/autorenew', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/autorenew

Query Parameters

Parameter Type Description
id int

Domain id

Enable/disable domain autorenew


curl -X PUT "https://my.royaserver.com/api/domain/@id/autorenew" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('domain/@id/autorenew');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/autorenew', auth=auth)
print(req.json())

HTTP Request

PUT /domain/@id/autorenew

Query Parameters

Parameter Type Description
id int

Domain id

Returns the available flags


curl -X GET "https://my.royaserver.com/api/domain/@id/dnssec/flags" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/dnssec/flags');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/dnssec/flags', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/dnssec/flags

Query Parameters

Parameter Type Description
id int

Domain id

Returns the list of DNSSEC keys


curl -X GET "https://my.royaserver.com/api/domain/@id/dnssec" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/@id/dnssec');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/@id/dnssec', auth=auth)
print(req.json())

HTTP Request

GET /domain/@id/dnssec

Query Parameters

Parameter Type Description
id int

Domain id

Adds the DNSSEC key


curl -X PUT "https://my.royaserver.com/api/domain/@id/dnssec" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->put('domain/@id/dnssec');
echo $resp->getBody();

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/domain/@id/dnssec', auth=auth)
print(req.json())

HTTP Request

PUT /domain/@id/dnssec

Query Parameters

Parameter Type Description
id int

Domain id


curl -X DELETE "https://my.royaserver.com/api/domain/@id/dnssec/@key" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->delete('domain/@id/dnssec/@key');
echo $resp->getBody();

auth=('username', 'password')

req = requests.delete('https://my.royaserver.com/api/domain/@id/dnssec/@key', auth=auth)
print(req.json())

HTTP Request

DELETE /domain/@id/dnssec/@key

Query Parameters

Parameter Type Description
id int

Domain id

key string

Domain availability

Check if domain is available for registration. Returns status: "ok" if domain is available, empty response otherwise

POST_DATA="{
    \"name\": \"example.com\"
}"

curl -X POST "https://my.royaserver.com/api/domain/lookup" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "name" => "example.com"
    ]
]
$resp = $client->post('domain/lookup', $options);
echo $resp->getBody();
payload = {
    'name': "example.com"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/domain/lookup', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "available": false,
    "name": "example.com",
    "premium": false,
    "periods": [
        {
            "id": "6",
            "period": "1",
            "register": "10.00",
            "transfer": "0.00",
            "renew": "15.00",
            "redemption": "40.00"
        },
        {
            "id": "6",
            "period": "2",
            "register": "20.00",
            "transfer": "20.00",
            "renew": "20.00",
            "redemption": "80.00"
        }
    ]
}

HTTP Request

POST /domain/lookup

Query Parameters

Parameter Type Description
name string

Domain name

Available TLDs

List TLDs available for registration and transfer


curl -X GET "https://my.royaserver.com/api/domain/order" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/order');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/order', auth=auth)
print(req.json())
Example Response:
{
    "tlds": [
        {
            "id": "6",
            "tld": ".com",
            "periods": [
                {
                    "period": "1",
                    "register": "10.00",
                    "transfer": "0.00",
                    "renew": "15.00",
                    "redemption": "40.00"
                },
                {
                    "period": "2",
                    "register": "20.00",
                    "transfer": "20.00",
                    "renew": "30.00",
                    "redemption": "80.00"
                }
            ]
        },
        (...)
    ]
}

HTTP Request

GET /domain/order

Additinal data for TLD

Get additional forms required for some TLDs


curl -X GET "https://my.royaserver.com/api/domain/order/@id/form" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('domain/order/@id/form');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/domain/order/@id/form', auth=auth)
print(req.json())
Example Response:
{
    "forms": [
        {
            "type": "domaindnssupport",
            "title": "DNS Management",
            "id": "1424",
            "firstItemId": 9067,
            "description": "",
            "name": "custom[1424][9067]",
            "required": false,
            "multiple": false,
            "config": {
                "enableddefault": 0
            },
            "value": [],
            "textvalue": [],
            "price": 0,
            "recurring_price": 0,
            "setup": 0,
            "prorata_date": null,
            "items": [
                {
                    "title": "",
                    "value": 1,
                    "id": 9067,
                    "price": 4,
                    "setup": 0,
                    "selected": false
                }
            ]
        },
        {
            "type": "select",
            "title": "Language",
            "id": "1755",
            "firstItemId": 10952,
            "description": "",
            "name": "custom[1755]",
            "required": false,
            "multiple": false,
            "config": {
                "conditionals": []
            },
            "value": [],
            "textvalue": [],
            "price": 0,
            "recurring_price": 0,
            "setup": 0,
            "prorata_date": null,
            "items": [
                {
                    "title": "AFR",
                    "value": 1,
                    "id": 10952,
                    "price": 0,
                    "setup": 0,
                    "selected": false
                },
                {
                    "title": "ALB",
                    "value": 1,
                    "id": 10953,
                    "price": 0,
                    "setup": 0,
                    "selected": false
                },
                (...)
            ]
        }
    ]
}

HTTP Request

GET /domain/order/@id/form

Query Parameters

Parameter Type Description
tld_id int

TLD ID

Order new domain

Create new order for a domain, please check if requested domain is available first, otherwise your order may get cancelled.

POST_DATA="{
    \"name\": \"example.com\",
    \"years\": \"yearsValue\",
    \"action\": \"actionValue\",
    \"tld_id\": \"tld_idValue\",
    \"pay_method\": \"pay_methodValue\",
    \"epp\": \"eppValue\",
    \"nameservers\": \"nameserversValue\",
    \"registrant\": \"registrantValue\",
    \"admin\": \"adminValue\",
    \"tech\": \"techValue\",
    \"billing\": \"billingValue\",
    \"data\": \"dataValue\"
}"

curl -X POST "https://my.royaserver.com/api/domain/order" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "name" => "example.com",
        "years" => "yearsValue",
        "action" => "actionValue",
        "tld_id" => "tld_idValue",
        "pay_method" => "pay_methodValue",
        "epp" => "eppValue",
        "nameservers" => "nameserversValue",
        "registrant" => "registrantValue",
        "admin" => "adminValue",
        "tech" => "techValue",
        "billing" => "billingValue",
        "data" => "dataValue"
    ]
]
$resp = $client->post('domain/order', $options);
echo $resp->getBody();
payload = {
    'name': "example.com",
    'years': "yearsValue",
    'action': "actionValue",
    'tld_id': "tld_idValue",
    'pay_method': "pay_methodValue",
    'epp': "eppValue",
    'nameservers': "nameserversValue",
    'registrant': "registrantValue",
    'admin': "adminValue",
    'tech': "techValue",
    'billing': "billingValue",
    'data': "dataValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/domain/order', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "order_num": 563647679,
    "invoice_id": "308977",
    "total": "10.00",
    "items": {
        "id": "10",
        "type": "Domain Register",
        "name": "test.com",
        "product_id": "3"
    }
}

HTTP Request

POST /domain/order

Query Parameters

Parameter Type Description
name string

Domain name

years string

Number of years

action string

register|transfer

tld_id string

TLD id

pay_method int

Payment method ID

epp string

EPP Transfer code, required when transfering some domains

nameservers array

Optional array with 2 - 4 nameservers that you want to use

registrant int

Optional contact ID to use for registrant contact this domain

admin int

Optional contact ID to use for admin contact this domain

tech int

Optional contact ID to use for tech contact this domain

billing int

Optional contact ID to use for billing contact this domain

data array

Addditional data required for some TLDs

Renew domain

Create new renew order for a domain, please check if requested domain is available first, otherwise your order may get cancelled.

POST_DATA="{
    \"years\": \"yearsValue\",
    \"pay_method\": \"pay_methodValue\"
}"

curl -X POST "https://my.royaserver.com/api/domain/@id/renew" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "years" => "yearsValue",
        "pay_method" => "pay_methodValue"
    ]
]
$resp = $client->post('domain/@id/renew', $options);
echo $resp->getBody();
payload = {
    'years': "yearsValue",
    'pay_method': "pay_methodValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/domain/@id/renew', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /domain/@id/renew

Query Parameters

Parameter Type Description
id int
years string

Number of years

pay_method int

Payment method ID

Services

List services

List all services under your account


curl -X GET "https://my.royaserver.com/api/service" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service', auth=auth)
print(req.json())
Example Response:
{
    "services": [
        {
            "id": "301",
            "domain": "examplename.com",
            "total": "9.99",
            "status": "Pending",
            "billingcycle": "Monthly",
            "next_due": "2017-12-30",
            "category": "Hosting",
            "category_url": "hosting",
            "name": "Starter Hosting"
        }
    ]
}

HTTP Request

GET /service

Service details

Return details for service @id


curl -X GET "https://my.royaserver.com/api/service/@id" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id', auth=auth)
print(req.json())
Example Response:
{
    "service": {
        "id": "301",
        "date_created": "2016-12-30",
        "domain": "examplename.com",
        "firstpayment": "9.99",
        "total": "9.99",
        "billingcycle": "Monthly",
        "next_due": "2017-12-30",
        "next_invoice": "2017-01-27",
        "status": "Active",
        "label": "",
        "username": "examplen",
        "password": "pdtzc",
        "name": "Starter Hosting"
    }
}

HTTP Request

GET /service/@id

Query Parameters

Parameter Type Description
id int

Service id

List service methods

List methods available for service


curl -X GET "https://my.royaserver.com/api/service/@id/methods" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/methods');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/methods', auth=auth)
print(req.json())
Example Response:
{
    "methods": [
        {
            "name": "Upgrade Request",
            "method": "POST",
            "route": "\/service\/@id\/upgrade"
        },
        {
            "name": "Upgrade Options",
            "method": "GET",
            "route": "\/service\/@id\/upgrade"
        },
        {
            "name": "Change service label",
            "method": "POST",
            "route": "\/service\/@id\/label"
        },
        {
            "name": "Service label",
            "method": "GET",
            "route": "\/service\/@id\/label"
        },
        {
            "name": "Cancel Service",
            "method": "POST",
            "route": "\/service\/@id\/cancel"
        }
    ]
}

HTTP Request

GET /service/@id/methods

Query Parameters

Parameter Type Description
id int

Upgrade Options

List upgrade options


curl -X GET "https://my.royaserver.com/api/service/@id/upgrade" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/upgrade');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/upgrade', auth=auth)
print(req.json())
Example Response:
{
    "resources": [
        {
            "id": 1557,
            "name": "Bandwidth",
            "type": "select",
            "items": [
                {
                    "id": "9953",
                    "name": "100 GB",
                    "price": 1,
                    "setup_price": 0,
                    "selected": true
                },
                {
                    "id": "10103",
                    "name": "500 GB",
                    "price": 5,
                    "setup_price": 0,
                    "selected": false
                },
                {
                    "id": "10104",
                    "name": "1 TB",
                    "price": 10,
                    "setup_price": 0,
                    "selected": false
                }
            ]
        }
    ],
    "package": []
}

HTTP Request

GET /service/@id/upgrade

Query Parameters

Parameter Type Description
id int

Upgrade Request

Estimate or request upgrade

// Format of ''resources'' paremeter
{
    "resource_id" : "qty_value", // sliders & qty fields
    "resource_id" : "item_id", // dropdown & radio fields
    "resource_id" : {
        "item_id": "qty_value" // dropdown with qty field
    }
}
POST_DATA="{
    \"resources\": \"resourcesValue\",
    \"package\": \"packageValue\",
    \"cycle\": \"cycleValue\",
    \"send\": \"sendValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/upgrade" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "resources" => "resourcesValue",
        "package" => "packageValue",
        "cycle" => "cycleValue",
        "send" => "sendValue"
    ]
]
$resp = $client->post('service/@id/upgrade', $options);
echo $resp->getBody();
payload = {
    'resources': "resourcesValue",
    'package': "packageValue",
    'cycle': "cycleValue",
    'send': "sendValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/upgrade', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/upgrade

Query Parameters

Parameter Type Description
id int

Service id

resources array

array with resource values

package int

New package id, optonal when upgrading resources

cycle string

New billing cycle, optonal when upgrading resources

send boolean

Set to true when you want to send your upgrade request

Cancel Service

Request service cancellation

POST_DATA="{
    \"immediate\": \"immediateValue\",
    \"reason\": \"reasonValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/cancel" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "immediate" => "immediateValue",
        "reason" => "reasonValue"
    ]
]
$resp = $client->post('service/@id/cancel', $options);
echo $resp->getBody();
payload = {
    'immediate': "immediateValue",
    'reason': "reasonValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/cancel', json=payload, auth=auth)
print(req.json())
Example Response:
{
  "info": [
    "cancell_sent"
  ]
}

HTTP Request

POST /service/@id/cancel

Query Parameters

Parameter Type Description
id int

Service id

immediate string

set to false to terminate service at the end of billing date, true - terminate immediately

reason string

Reason for this request

Service label

Show current service label


curl -X GET "https://my.royaserver.com/api/service/@id/label" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/label');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/label', auth=auth)
print(req.json())
Example Response:
{
    "label": "example"
}

HTTP Request

GET /service/@id/label

Query Parameters

Parameter Type Description
id int

Service id

Change service label

Set new custom label to identify this service

POST_DATA="{
    \"label\": \"labelValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/label" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "label" => "labelValue"
    ]
]
$resp = $client->post('service/@id/label', $options);
echo $resp->getBody();
payload = {
    'label': "labelValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/label', json=payload, auth=auth)
print(req.json())
Example Response:
{
    "success": true,
    "info": [
        "label_updated"
    ]
}

HTTP Request

POST /service/@id/label

Query Parameters

Parameter Type Description
id int

Service id

label string

New label

List VMs

List virtual servers


curl -X GET "https://my.royaserver.com/api/service/@id/vms" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vms');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vms', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vms

Query Parameters

Parameter Type Description
id int

Get VM Details

Get the details of a particular virtual server


curl -X GET "https://my.royaserver.com/api/service/@id/vms/@vmid" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vms/@vmid');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vms/@vmid', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vms/@vmid

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Create VM

Add new virtual server

POST_DATA="{
    \"label\": \"labelValue\",
    \"template\": \"templateValue\",
    \"flavor\": \"flavorValue\",
    \"disk\": \"diskValue\",
    \"security_group\": \"security_groupValue\",
    \"keypair\": \"keypairValue\",
    \"password\": \"passwordValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/vms" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "label" => "labelValue",
        "template" => "templateValue",
        "flavor" => "flavorValue",
        "disk" => "diskValue",
        "security_group" => "security_groupValue",
        "keypair" => "keypairValue",
        "password" => "passwordValue"
    ]
]
$resp = $client->post('service/@id/vms', $options);
echo $resp->getBody();
payload = {
    'label': "labelValue",
    'template': "templateValue",
    'flavor': "flavorValue",
    'disk': "diskValue",
    'security_group': "security_groupValue",
    'keypair': "keypairValue",
    'password': "passwordValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms

Query Parameters

Parameter Type Description
id int
label string

VM label

template string

Template ID

flavor string

Flavor describing VM cpu and memory size

disk string

Disk Space in GB

security_group string

Network security group

keypair string

SSH Key name

password string

Password for root user

Stop VM

Stop virtual server


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/stop" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/stop');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/stop', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/stop

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Start VM

Start virtual servers


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/start" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/start');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/start', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/start

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Reboot VM

Reboot virtual servers


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/reboot" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/reboot');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/reboot', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/reboot

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Rescue VM

Reboot virtual servers into rescue mode.


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/rescue" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/rescue');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/rescue', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/rescue

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Unrescue VM

Disable rescue mode for server.


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/unrescue" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/unrescue');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/unrescue', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/unrescue

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Rebuild VM

Rebuild server, you can get list of templates supported by this server using '''/service/$id/vms/$vmid/rebuild'''

POST_DATA="{
    \"template\": \"templateValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/rebuild" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "template" => "templateValue"
    ]
]
$resp = $client->post('service/@id/vms/@vmid/rebuild', $options);
echo $resp->getBody();
payload = {
    'template': "templateValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/rebuild', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/rebuild

Query Parameters

Parameter Type Description
id int
vmid int
template string

Template ID

List OS templates

List templates that can be used to create virtual server


curl -X GET "https://my.royaserver.com/api/service/@id/templates" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/templates');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/templates', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/templates

Query Parameters

Parameter Type Description
id int

Resources

Show available and used resources


curl -X GET "https://my.royaserver.com/api/service/@id/resources" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/resources');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/resources', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/resources

Query Parameters

Parameter Type Description
id int

List OS templates and recipes

Lists templates that can be installed on server. Lists recipes that can be used for additional configuration, check usablefor key to find which templates are supported by recipe.


curl -X GET "https://my.royaserver.com/api/service/@id/reinstall/templates" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/reinstall/templates');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/reinstall/templates', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/reinstall/templates

Query Parameters

Parameter Type Description
id int

Reinstall Status

Get reinstall operation status


curl -X GET "https://my.royaserver.com/api/service/@id/reinstall" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/reinstall');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/reinstall', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/reinstall

Query Parameters

Parameter Type Description
id int

Reinstall

Start reinstall operation on a server

POST_DATA="{
    \"hostname\": \"hostnameValue\",
    \"template\": \"templateValue\",
    \"recipe\": \"recipeValue\",
    \"password\": \"passwordValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/reinstall" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "hostname" => "hostnameValue",
        "template" => "templateValue",
        "recipe" => "recipeValue",
        "password" => "passwordValue"
    ]
]
$resp = $client->post('service/@id/reinstall', $options);
echo $resp->getBody();
payload = {
    'hostname': "hostnameValue",
    'template': "templateValue",
    'recipe': "recipeValue",
    'password': "passwordValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/reinstall', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/reinstall

Query Parameters

Parameter Type Description
id int
hostname string

New hostname for server

template string

Template ID

recipe string

Recipe ID [Optional]

password string

New password for server [Optional, will be generated automatically if left empty]

Cancel Diagnostics

Cancel this operation


curl -X POST "https://my.royaserver.com/api/service/@id/diag/cancel" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/diag/cancel');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/diag/cancel', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/diag/cancel

Query Parameters

Parameter Type Description
id int

List Diagnostics templates

List templates that can be used fr diagnostics operation


curl -X GET "https://my.royaserver.com/api/service/@id/diag/templates" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/diag/templates');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/diag/templates', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/diag/templates

Query Parameters

Parameter Type Description
id int

Diagnostics Status

Show diagnostic operation status


curl -X GET "https://my.royaserver.com/api/service/@id/diag" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/diag');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/diag', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/diag

Query Parameters

Parameter Type Description
id int

Run Diagnostics

Start new diagnostic operation

POST_DATA="{
    \"template\": \"templateValue\",
    \"clearhdd\": \"clearhddValue\",
    \"fullhddclear\": \"fullhddclearValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/diag" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "template" => "templateValue",
        "clearhdd" => "clearhddValue",
        "fullhddclear" => "fullhddclearValue"
    ]
]
$resp = $client->post('service/@id/diag', $options);
echo $resp->getBody();
payload = {
    'template': "templateValue",
    'clearhdd': "clearhddValue",
    'fullhddclear': "fullhddclearValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/diag', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/diag

Query Parameters

Parameter Type Description
id int
template string

Diagnostic Template ID

clearhdd bool

Clear disks

fullhddclear bool

Full hard drive erase ($clearhdd also has to be set to True)

List Rescue templates

List templates that can be used start rescue operation


curl -X GET "https://my.royaserver.com/api/service/@id/rescue/templates" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/rescue/templates');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/rescue/templates', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/rescue/templates

Query Parameters

Parameter Type Description
id int

Rescue Status

Show rescue operation status


curl -X GET "https://my.royaserver.com/api/service/@id/rescue" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/rescue');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/rescue', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/rescue

Query Parameters

Parameter Type Description
id int

Rescue

Start rescue operation on a server

POST_DATA="{
    \"template\": \"templateValue\",
    \"password\": \"passwordValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/rescue" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "template" => "templateValue",
        "password" => "passwordValue"
    ]
]
$resp = $client->post('service/@id/rescue', $options);
echo $resp->getBody();
payload = {
    'template': "templateValue",
    'password': "passwordValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/rescue', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/rescue

Query Parameters

Parameter Type Description
id int
template string

Rescue Template ID

password string

Password for rescue operation

Cancel Rescue

Cancel rescue operation


curl -X POST "https://my.royaserver.com/api/service/@id/rescue/cancel" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/rescue/cancel');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/rescue/cancel', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/rescue/cancel

Query Parameters

Parameter Type Description
id int

Server Info

Get server hardware and os details


curl -X GET "https://my.royaserver.com/api/service/@id/info" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/info');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/info', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/info

Query Parameters

Parameter Type Description
id int

Update Hostname

Update server hostname

POST_DATA="{
    \"hostname\": \"hostnameValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/hostname" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "hostname" => "hostnameValue"
    ]
]
$resp = $client->post('service/@id/hostname', $options);
echo $resp->getBody();
payload = {
    'hostname': "hostnameValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/hostname', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/hostname

Query Parameters

Parameter Type Description
id int
hostname string

New Hostname

List IPs

List server ips


curl -X GET "https://my.royaserver.com/api/service/@id/ips" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/ips');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/ips', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/ips

Query Parameters

Parameter Type Description
id int

List VLANs

List available VLANs


curl -X GET "https://my.royaserver.com/api/service/@id/vlans" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vlans');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vlans', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vlans

Query Parameters

Parameter Type Description
id int

Add IP

Add new ip to server

POST_DATA="{
    \"vlan\": \"vlanValue\",
    \"domain\": \"domainValue\",
    \"num\": \"numValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/ips" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "vlan" => "vlanValue",
        "domain" => "domainValue",
        "num" => "numValue"
    ]
]
$resp = $client->post('service/@id/ips', $options);
echo $resp->getBody();
payload = {
    'vlan': "vlanValue",
    'domain': "domainValue",
    'num': "numValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/ips', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/ips

Query Parameters

Parameter Type Description
id int
vlan string

VLAN ID

domain string

IP Domain

num string

Number of IPs to add [Optional]

IP Details

Get details about IP


curl -X GET "https://my.royaserver.com/api/service/@id/ips/@ip" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/ips/@ip');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/ips/@ip', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/ips/@ip

Query Parameters

Parameter Type Description
id int
ip string

IP Address ID

Edit IP

Update IP domain

POST_DATA="{
    \"domain\": \"domainValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/ips/@ip" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "domain" => "domainValue"
    ]
]
$resp = $client->post('service/@id/ips/@ip', $options);
echo $resp->getBody();
payload = {
    'domain': "domainValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/ips/@ip', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/ips/@ip

Query Parameters

Parameter Type Description
id int
ip string

IP Address ID

domain string

Domain name

Delete IP

Remove IP from server


curl -X DELETE "https://my.royaserver.com/api/service/@id/ips/@ip" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->delete('service/@id/ips/@ip');
echo $resp->getBody();

auth=('username', 'password')

req = requests.delete('https://my.royaserver.com/api/service/@id/ips/@ip', auth=auth)
print(req.json())

HTTP Request

DELETE /service/@id/ips/@ip

Query Parameters

Parameter Type Description
id int
ip string

IP Address ID

Reboot

Request server reboot


curl -X POST "https://my.royaserver.com/api/service/@id/reboot" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/reboot');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/reboot', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/reboot

Query Parameters

Parameter Type Description
id int

Power OFF

Power off server


curl -X POST "https://my.royaserver.com/api/service/@id/poweroff" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/poweroff');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/poweroff', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/poweroff

Query Parameters

Parameter Type Description
id int

Power ON

Power on server


curl -X POST "https://my.royaserver.com/api/service/@id/poweron" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/poweron');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/poweron', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/poweron

Query Parameters

Parameter Type Description
id int

Destroy VM

Remove virtual server


curl -X DELETE "https://my.royaserver.com/api/service/@id/vms/@vmid" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->delete('service/@id/vms/@vmid');
echo $resp->getBody();

auth=('username', 'password')

req = requests.delete('https://my.royaserver.com/api/service/@id/vms/@vmid', auth=auth)
print(req.json())

HTTP Request

DELETE /service/@id/vms/@vmid

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Resize VM

Edit a virtual server

POST_DATA="{
    \"memory\": \"memoryValue\",
    \"cpu\": \"cpuValue\"
}"

curl -X PUT "https://my.royaserver.com/api/service/@id/vms/@vmid" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "memory" => "memoryValue",
        "cpu" => "cpuValue"
    ]
]
$resp = $client->put('service/@id/vms/@vmid', $options);
echo $resp->getBody();
payload = {
    'memory': "memoryValue",
    'cpu': "cpuValue"
}

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/service/@id/vms/@vmid', json=payload, auth=auth)
print(req.json())

HTTP Request

PUT /service/@id/vms/@vmid

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

memory string

Amount of RAM in MB

cpu string

Amount of CPU cores

Shutdown VM

Perform graceful shutdown


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/shutdown" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/shutdown');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/shutdown', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/shutdown

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Reset VM

Reset virtual servers power


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/reset" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/reset');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/reset', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/reset

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

List IPs

List virtual machine IPs


curl -X GET "https://my.royaserver.com/api/service/@id/vms/@vmid/ips" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vms/@vmid/ips');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vms/@vmid/ips', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vms/@vmid/ips

Query Parameters

Parameter Type Description
id int
vmid int
type

string ipv4 or ipv6

iface

int Interface number [optional]

bridge

string Bridge name [optional, ignored if interface provided]

List IPs

List virtual machine IPs


curl -X GET "https://my.royaserver.com/api/service/@id/vms/@vmid/ippool" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vms/@vmid/ippool');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vms/@vmid/ippool', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vms/@vmid/ippool

Query Parameters

Parameter Type Description
id int
vmid int
iface

int Interface number [optional]

bridge

string Bridge name [optional, ignored if interface provided]

Assign IPs

Assign new IP for network interface.

POST_DATA="{
    \"type\": \"typeValue\",
    \"iface\": \"ifaceValue\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/ippool/@pool" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "type" => "typeValue",
        "iface" => "ifaceValue"
    ]
]
$resp = $client->post('service/@id/vms/@vmid/ippool/@pool', $options);
echo $resp->getBody();
payload = {
    'type': "typeValue",
    'iface': "ifaceValue"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/ippool/@pool', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/ippool/@pool

Query Parameters

Parameter Type Description
id int
vmid int
pool

string|int List ID to allocate new IP from

type

string ipv4 or ipv6

iface

int Interface number

List VM Network Interfaces

Get network Interfaces assigned to virtual servers


curl -X GET "https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vms/@vmid/interfaces');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vms/@vmid/interfaces

Query Parameters

Parameter Type Description
id int
vmid int

Get Network Interfaces

Get network Interface details


curl -X GET "https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces/@iface" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vms/@vmid/interfaces/@iface');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces/@iface', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vms/@vmid/interfaces/@iface

Query Parameters

Parameter Type Description
id int
vmid int
iface

string Interface name or id, ie '0' or 'net0'

Update Network Interfaces

Update network interface details

POST_DATA="{
    \"firewall\": \"firewallValue\",
    \"ipv4\": \"ipv4Value\",
    \"ipv6\": \"ipv6Value\"
}"

curl -X PUT "https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces/@iface" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "firewall" => "firewallValue",
        "ipv4" => "ipv4Value",
        "ipv6" => "ipv6Value"
    ]
]
$resp = $client->put('service/@id/vms/@vmid/interfaces/@iface', $options);
echo $resp->getBody();
payload = {
    'firewall': "firewallValue",
    'ipv4': "ipv4Value",
    'ipv6': "ipv6Value"
}

auth=('username', 'password')

req = requests.put('https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces/@iface', json=payload, auth=auth)
print(req.json())

HTTP Request

PUT /service/@id/vms/@vmid/interfaces/@iface

Query Parameters

Parameter Type Description
id int
vmid int
iface

int Interface number

firewall

int Enable or disable firewall (may require specific permissions)

ipv4

int[] List of IP v4 IDs

ipv6

int[] List of IP v6 IDs

Add Network Interface

Add new network interface to VM

POST_DATA="{
    \"firewall\": \"firewallValue\",
    \"ipv4\": \"ipv4Value\",
    \"ipv6\": \"ipv6Value\"
}"

curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces" \
   -u user:pass \
   -H "Content-Type: application/json" \
   -d "${POST_DATA}"
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);

$options = [
    'json' => [
        "firewall" => "firewallValue",
        "ipv4" => "ipv4Value",
        "ipv6" => "ipv6Value"
    ]
]
$resp = $client->post('service/@id/vms/@vmid/interfaces', $options);
echo $resp->getBody();
payload = {
    'firewall': "firewallValue",
    'ipv4': "ipv4Value",
    'ipv6': "ipv6Value"
}

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces', json=payload, auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/interfaces

Query Parameters

Parameter Type Description
id int
vmid int
firewall

int Enable or disable firewall (may require specific permissions)

ipv4

int[] List of IP v4 IDs

ipv6

int[] List of IP v6 IDs

Remove Network Interface

Remove network interface from VM


curl -X DELETE "https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces/@iface" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->delete('service/@id/vms/@vmid/interfaces/@iface');
echo $resp->getBody();

auth=('username', 'password')

req = requests.delete('https://my.royaserver.com/api/service/@id/vms/@vmid/interfaces/@iface', auth=auth)
print(req.json())

HTTP Request

DELETE /service/@id/vms/@vmid/interfaces/@iface

Query Parameters

Parameter Type Description
id int
vmid int
iface string
list

string|int List to allocate new IP from

Suspend VM

Suspend virtual server


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/suspend" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/suspend');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/suspend', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/suspend

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Unsuspend VM

Unsuspend virtual servers


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/unsuspend" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/unsuspend');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/unsuspend', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/unsuspend

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

Reset VM password

Reset root password for VM


curl -X POST "https://my.royaserver.com/api/service/@id/vms/@vmid/resetpwd" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->post('service/@id/vms/@vmid/resetpwd');
echo $resp->getBody();

auth=('username', 'password')

req = requests.post('https://my.royaserver.com/api/service/@id/vms/@vmid/resetpwd', auth=auth)
print(req.json())

HTTP Request

POST /service/@id/vms/@vmid/resetpwd

Query Parameters

Parameter Type Description
id int
vmid string

Virtual server id

List Rebuild templates


curl -X GET "https://my.royaserver.com/api/service/@id/vms/@vmid/rebuild" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/vms/@vmid/rebuild');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/vms/@vmid/rebuild', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/vms/@vmid/rebuild

Query Parameters

Parameter Type Description
id int
vmid int
template string

Template ID

DNS

List DNS for service

Returns a list of DNS zones under the service


curl -X GET "https://my.royaserver.com/api/service/@service_id/dns" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@service_id/dns');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@service_id/dns', auth=auth)
print(req.json())
Example Response:
{
    "error": [
        "invalid method"
    ]
}

HTTP Request

GET /service/@service_id/dns

Query Parameters

Parameter Type Description
service_id int

Service ID

Cart

Most of API methods found here will require service @id, you can lookup your service ids with /service method

Get server state

Return details about server power state


curl -X GET "https://my.royaserver.com/api/service/@id/status" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('service/@id/status');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/service/@id/status', auth=auth)
print(req.json())

HTTP Request

GET /service/@id/status

Query Parameters

Parameter Type Description
id int

List Servers In-stock

Rebuild the network for a particular virtual server


curl -X GET "https://my.royaserver.com/api/serverstock" \
   -u user:pass 
use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://my.royaserver.com/api/',
    'auth' => ['username', 'password']
]);


$resp = $client->get('serverstock');
echo $resp->getBody();

auth=('username', 'password')

req = requests.get('https://my.royaserver.com/api/serverstock', auth=auth)
print(req.json())

HTTP Request

GET /serverstock