opened image

API - Retrieving information about available rates and their parameters

To work with Cloud VPS services via API, Zomro provides a convenient interface for obtaining information about available plans. Using the function v2.instances.order.pricelist, you can get a complete list of plans with brief descriptions and prices. Then, using the function v2.instances.order.param with the specified plan ID and order period, you can get detailed characteristics of the selected plan. Below are examples of requests and the response structure for each function. This information will help you effectively manage your cloud servers through the Zomro API.

To get all available plans for the Cloud VPS service, you can use the following function:

v2.instances.order.pricelist

 

Request structure:
URL: 

https://api.zomro.com/

Request method: POST
Request body (form-data):

 

ParameterExample valueValue description
funcv2.instances.order.pricelistFunction to get available plans for order
auth21fc199...c43f71Session token. This is one of the authorization options. More about other options is described here
outjsonExpected response structure

 

Here is an example of a request that can be executed from the console:

curl --location 'https://api.zomro.com/' \
--form 'func="v2.instances.order.pricelist"' \
--form 'auth="19c8130ac494a5e7c162d246"' \
--form 'out="json"'

 

After executing the request, we need the data located in the following nesting:
 

doc.list.elem

 

Here is an example of one of the elements we get:
 

...,
{
"buttons": {
    "button": {
        "$name": "order",
        "$type": "func",
        "$key": "pricelist",
        "$theme": "primary",
        "$func": "v2.instances.order.param"
    }
},
"description": {},
"detail": [
    {
        "name": {
            "$": "network"
        },
        "value": {
            "$": "IPv4 NL-2"
        }
    },
    {
        "name": {
            "$": "CPU count"
        },
        "value": {
            "$": "1"
        }
    },
    {
        "name": {
            "$": "Memory"
        },
        "value": {
            "$": "2 Gb"
        }
    },
    {
        "name": {
            "$": "Disk space"
        },
        "value": {
            "$": "12 Gb"
        }
    },
    {
        "name": {
            "$": "Port speed"
        },
        "value": {
            "$": "1 Gbit/s."
        }
    },
    {
        "name": {
            "$": "Bandwidth"
        },
        "value": {
            "$": "Unmetered traffic"
        }
    }
],
"flabel": {
    "tag": [
        {
            "$": "72866a3690e44679070d48b8ffa2c963"
        },
        {
            "$": "a362f6fd19c99d07441692bf4cce537c"
        }
    ]
},
"id": {
    "$": "6740"
},
"pricelist": {
    "$": "6740"
},
"prices": {
    "$key": "period_6740",
    "price": {
        "$special_price": "no",
        "cost": {
            "$": "0.13"
        },
        "currency": {
            "$": "EUR"
        },
        "period": {
            "$": "-50"
        }
    }
},
"title": {
    "$": "Cloud Essential"
}
},
...

 

With this data, you can find out the plan ID. In our case, the value is "6740", and brief information about the plan. To get full details about the plan, you need to use the function: 

v2.instances.order.param

and the plan ID and order period. 

 

Request structure:

URL: 

https://api.zomro.com/

Request method: POST
Request body (form-data):

ParameterExample valueValue description
funcv2.instances.order.paramFunction to get additional data about the plan
auth21fc199...c43f71Session token. This is one of the authorization options. More about other options is described here
outjsonExpected response structure
order_period-50The period for which the service can be ordered
pricelist6740ID of the service to be ordered

Here is an example of a request that can be executed from the console:

curl --location 'https://api.zomro.com/' \
--form 'func="v2.instances.order.param"' \
--form 'auth="579ea10f7790f5e7de91357c"' \
--form 'out="json"' \
--form 'order_period="-50"' \
--form 'pricelist="6740"'

After executing the request, we need the data located in the following nesting:

doc.slist

Here are the values obtained as a result of the request:

{
"$name": "instances_os",
"val": [
    {
        "$key": "18d0ee2e-4d57-4f40-9b56-03c1773b5831",
        "$": "AlmaLinux 8"
    },
    {
        "$key": "5da4ad83-45f6-4c0e-9a7e-7a7c18b2be6c",
        "$": "AlmaLinux 9"
    },
    {
        "$key": "3d9d9db6-325a-4d91-9bdb-6c48ad291cb6",
        "$": "CentOS Stream 8"
    },
    {
        "$key": "7d7911e3-7178-4f36-a308-d841db5fe654",
        "$": "CentOS Stream 9"
    },
    {
        "$key": "0bf4deb2-855c-4863-8518-6006d804adbb",
        "$": "Debian 10"
    },
    {
        "$key": "3010ae60-0185-4021-98da-f50013147ebd",
        "$": "Debian 11"
    },
    {
        "$key": "93878ba5-6b9e-4924-a4be-34edb623f808",
        "$": "Debian 12"
    },
    {
        "$key": "1d9dda4c-34b0-4304-a90a-8f3018722fa2",
        "$": "Rocky-Linux-8"
    },
    {
        "$key": "a8b7bcb3-6698-4264-b413-f2b866a46a70",
        "$": "Rocky-Linux-9"
    },
    {
        "$key": "479c96f1-ccc6-47a2-952c-c9e3bbdc8d07",
        "$": "Ubuntu 20.04"
    },
    {
        "$key": "f8f2573f-56c4-44c5-8469-84eee4aa64e7",
        "$": "Ubuntu 22.04"
    },
    {
        "$key": "92fabac2-69cc-46ad-8439-c377e0c90632",
        "$": "Ubuntu 23.04"
    },
    {
        "$key": "6f8476f9-93f0-4ddd-b0fd-624e930ffacd",
        "$": "Ubuntu 23.10"
    }
]
},
{
"$name": "addon_6746",
"val": [
    {
        "$key": "259",
        "$": "IPv4 NL-2 (0.04 EUR)"
    },
    {
        "$key": "260",
        "$": "IPv6 NL-2 (0.00 EUR)"
    }
]
},
{
"$name": "addon_6745",
"val": [
    {
        "$key": "58",
        "$": "1 (0.00 EUR)"
    }
]
},
{
"$name": "addon_6744",
"val": [
    {
        "$key": "42",
        "$": "2 Gb (0.00 EUR)"
    }
]
},
{
"$name": "addon_6743",
"val": [
    {
        "$key": "143",
        "$": "12 Gb (0.00 EUR)"
    }
]
},
{
"$name": "addon_6742",
"val": [
    {
        "$key": "246",
        "$": "1 Gbit/s. (0.00 EUR)"
    }
]
},
{
"$name": "addon_6741",
"val": [
    {
        "$key": "244",
        "$": "Unmetered traffic (0.00 EUR)"
    }
]
},
{
"$name": "order_period",
"val": [
    {
        "$msg": "yes",
        "$key": "-50",
        "$": "Day"
    }
]
},
{
"$name": "instances_ssh_keys",
"val": [
    {
        "$key": "283",
        "$": "new"
    },
    {
        "$key": "471",
        "$": "111"
    },
    {
        "$key": "490",
        "$": "1115"
    }
]
}

 

This entry provides the following data:

 

Parameter nameParameter description
instances_osPossible OS that are available for installation for this plan
addon_6746Which type of IP to use. If you choose only IPv6, IPv4 will not be issued for the server. In the case of IPv4, both IPv6 and IPv4 will be issued. The cost of the service will increase accordingly.
addon_6745Number of CPUs available for order
addon_6744Amount of RAM available for order
addon_6743Disk space size on the server
addon_6742Internet traffic speed on the server
addon_6741Internet traffic limit on the server
order_periodAvailable service payment periods
instances_ssh_keysSSH keys added in the personal account

Using these parameters, you can use them to order the service. 


We also suggest studying articles that may be useful for interacting with Cloud VPS products using the API: