opened image

API - Отримання інформації про доступні тарифи та їх параметри

Для роботи з послугами Cloud VPS через API Zomro надає зручний інтерфейс для отримання інформації про доступні тарифи. За допомогою функції v2.instances.order.pricelist ви можете отримати повний список тарифів з коротким описом і цінами. Потім, використовуючи функцію v2.instances.order.param з вказанням ID тарифу і періоду замовлення, можна отримати детальні характеристики обраного тарифу. Нижче наведені приклади запитів і структура відповіді для кожної з функцій. Ця інформація допоможе вам ефективно керувати вашими хмарними серверами через API Zomro.

Щоб отримати всі доступні тарифи для послуги Cloud VPS, можна скористатися наступною функцією:

v2.instances.order.pricelist

 

Структура запиту:
URL: 

https://api.zomro.com/

Метод запиту: POST
Тіло запиту (form-data):

 

ПараметрПриклад значенняОпис значення
funcv2.instances.order.pricelistФункція для отримання доступних тарифів для замовлення
auth21fc199...c43f71Токен сесії. Це один з варіантів авторизації. Докладніше про інші варіанти описано тут
outjsonСтруктура відповіді, яку очікувати

 

Ось приклад запиту, який можна виконати з консолі:

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

 

Після виконання запиту, нам потрібні дані, які знаходяться в наступній вкладеності:
 

doc.list.elem

 

Ось приклад одного з елементів, який отримуємо:
 

...,
{
"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"
}
},
...

 

Маючи ці дані, можна дізнатися ID тарифу. У нашому випадку значення "6740", і короткі відомості про тариф. Щоб отримати повні дані про тариф, потрібно скористатися функцією: 

v2.instances.order.param

і ID тарифу та періодом замовлення. 

 

Структура запиту:

URL: 

https://api.zomro.com/

Метод запиту: POST
Тіло запиту (form-data):

ПараметрПриклад значенняОпис значення
funcv2.instances.order.paramФункція для отримання додаткових даних про тариф
auth21fc199...c43f71Токен сесії. Це один з варіантів авторизації. Докладніше про інші варіанти описано тут
outjsonСтруктура відповіді, яку очікувати
order_period-50Період, на який можна замовити послугу
pricelist6740ID послуги, яку потрібно замовити

Ось приклад запиту, який можна виконати з консолі:

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"'

Після виконання запиту, нам потрібні дані, які знаходяться в наступній вкладеності:

doc.slist

Ось значення, які отримані в результаті виконання запиту:

{
"$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"
    }
]
}

 

Цей запис надає наступні дані:

 

Назва параметраОпис параметра
instances_osМожливі ОС, які доступні для встановлення для даного тарифу
addon_6746Який тип IP використовувати. Якщо вибирати тільки IPv6, IPv4 не буде видано для сервера. У разі IPv4 - буде видано як IPv6, так і IPv4. Вартість послуги при цьому буде збільшена.
addon_6745Кількість CPU, доступних для замовлення
addon_6744Кількість RAM, доступних для замовлення
addon_6743Розмір дискового простору на сервері
addon_6742Пропускна швидкість інтернет-трафіку на сервері
addon_6741Обмеження кількості інтернет-трафіку на сервері
order_periodДоступні періоди оплати послуги
instances_ssh_keysSSH ключі, які додані в особистому кабінеті

Використовуючи ці параметри, можна замовити послугу. 


Також пропонуємо вивчити статті, які можуть бути корисними для взаємодії з продуктами Cloud VPS за допомогою API: