ВОЙТИ
    opened image

    Чтобы получить все доступные тарифы для услуги Cloud VPS, можно воспользоваться следующей функцией:

    v2.instances.order.pricelist

     

    Структура запроса:
    URL: 

    https://api.zomro.com/

    Метод запроса: POST
    Тело запроса (form-data):

     

    Параметр Пример значения Описание значения
    func v2.instances.order.pricelist Функция для получения доступных тарифов для заказа
    auth 21fc199...c43f71 Токен сессии. Это один из вариантов авторизации. Подробнее о других вариантах описано здесь
    out json Структура ответа, которую ожидать

     

    Вот пример запроса, который можно выполнить из консоли:

    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):

    Параметр Пример значения Описание значения
    func v2.instances.order.param Функция для получения дополнительных данных о тарифе
    auth 21fc199...c43f71 Токен сессии. Это один из вариантов авторизации. Подробнее о других вариантах описано здесь
    out json Структура ответа, которую ожидать
    order_period -50 Период, на который можно заказать услугу
    pricelist 6740 ID услуги, которую нужно заказать

    Вот пример запроса, который можно выполнить из консоли:

    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_keys SSH ключи, которые добавлены в личном кабинете

    Используя эти параметры, можно использовать для заказа услуги. 
    Подробнее описано, как использовать дополнительные параметры описано здесь.

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