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: