В этом документе мы расскажем, как авторизовать запросы и пройдем по процессу создания новой услуги VPS, включающем в себя размещение и оплату заказа.
is*hosting API позволяет автоматизировать базовые действия, такие как:
- Создание заказов
- Оплата инвойсов
- Проверка статуса услуг
- Управление услугами
Эти действия можно выполнять с помощью HTTP запросов по адресу:
Примеры запросов будут приведены в виде curl команд. cURL (client URL) – утилита, по умолчанию доступная для операционных систем Linux и macOS. Она позволяет работать с HTTP протоколом с помощью командной строки. Если вы используете Windows, примеры можно легко конвертировать в команды для PowerShell с помощью любого онлайн конвертера.
Swagger версия спецификации API is*hosting доступна в личном кабинете. Также тут можно протестировать и сгенерировать в виде curl команд любой запрос из API is*hosting. Для этого достаточно нажать кнопку «Try it out».
Для запросов действуют ограничения:
- 150 запросов за 10 секунд (в случае превышения - блокировка на 1 час)
- 300 запросов за 1 минуту (проверка СF managedChallenge)
Авторизация
Для получения доступа необходим API-ключ, который можно сгенерировать в личном кабинете.
Для того, чтобы добавить API-ключ, выполните следующие шаги:
- В личном кабинете в разделе «API» нажмите «Add API key».
- Ключ добавляется в запрос в виде заголовка:
-H 'X-Authorization: YOUR_API_KEY'
Срок действия ключа – 6048000 секунд или 70 суток.
Выбор услуги
Чтобы оформить заказ, нам нужно знать тип услуги и тарифный план.
- Тип услуги – параметр «type». Он может принимать значения: vps, storage, dedicated, vpn, ssl.
- Код тарифного плана – параметр "plan". Информацию о тарифных планах VPS можно получить по запросу:
https://api.ishosting.com/services/vps/planscurl -X 'GET' \
'https://api.ishosting.com/services/list' \
-H 'accept: application/json' \
-H 'X-Api-Token: YOUR_API_KEY' \
-H 'Accept-Language: en'
Указанный выше запрос выдает список тарифных планов с кодами и описаниями. Выдачу можно ограничить по следующим параметрам:
- «locations» – страна размещения дата центра. Значение: буквенный код страны. Например: NL, PL, EE.
- «platforms» – платформа операционной системы. Значение: windows, linux.
- «period» – платежный цикл. Значение: 1m, 3m, 6m, 1y.
Также мы можем модифицировать опции тарифного плана, дописывая альтернативные опции в параметр «additions». Список альтернативных опций можно получить по запросу:
https://api.ishosting.com/services/vps/configs/:code, где параметр «code» – код тарифного плана. Запрос возвращает список доступных альтернативных опций тарифного плана.
curl -X 'GET' \
'https://api.ishosting.com/vps/configs/29_6m' \
-H 'accept: application/json' \
-H 'X-Api-Token: YOUR_API_KEY' \
-H 'Accept-Language: en'
Подсказка: Также код тарифного плана можно посмотреть в личном кабинете в процессе заказа услуги:
Пример:
Для примера возьмем:
- услуга VPS
- тарифный план Lite – Linux NVMe
- в локации Нидерланды
- с платежным циклом 6 месяцев
По умолчанию в тарифный план входят:
- ноль дополнительных IP адресов
- 1Гб оперативной памяти
- операционная система Ubuntu 22 x64
Выбираем альтернативные опции:
- 4 дополнительных IP адреса
- 2 Гб оперативной памяти
- операционная система Debian 12 x64
С помощью запроса https://api.ishosting.com/services/vps/plans узнаем код тарифного плана: 29_6m.
С помощью запроса https://api.ishosting.com/services/vps/configs/:code получаем необходимые нам альтернативные опции тарифного плана:
-
{"quantity": 4,"category": "ip"}
-
{"code": "2g","category": "ram"}
-
{"code": "linux/debian11#64", "category": "os"}
Размещение заказа
Из полученных выше данных собираем тело запроса на размещение заказа в формате JSON:
- Базовый тарифный план без модификаций:
{
"items": [
{
"action": "new",
"type": "vps",
"plan": "29_6m"
}
]
} - Модифицированный тарифный план:
{
"items": [
{
"action": "new",
"type": "vps",
"plan": "29_6m",
"additions": [
{
"code": "linux/debian11#64",
"category": "os"
},
{
"quantity": 4,
"category": "ip"
},
{
"code": "2g",
"category": "ram"
}
]
}
]
}
Опционально: перед размещением заказа можно запросить детальную информацию, включающую текущие цены, чтобы удостовериться, что заказ вас утраивает. Для этого используем запрос:
https://api.ishosting.com/billing/validate
curl -X 'POST' \
'https://api.ishosting.com/billing/order/validate' \
-H 'accept: application/json' \
-H 'X-Api-Token: YOUR_API_KEY' \
-H 'Accept-Language: en' \
-H 'Content-Type: application/json' \
-d '{
"items": [
{
"action": "new",
"type": "vps",
"plan": "29_6m"
}
]
}
' - Если все в порядке, размещаем заказ с помощью запроса:
https://api.ishosting.com/billing/order
curl -X 'POST' \
'https://api.ishosting.com/billing/order' \
-H 'accept: application/json' \
-H 'X-Api-Token: YOUR_API_KEY' \
-H 'Accept-Language: en' \
-H 'Content-Type: application/json' \
-d '{
"items": [
{
"action": "new",
"type": "vps",
"plan": "29_6m"
}
]
}
' - Если все в порядке и заказ размещен – ответ содержит подробную информацию о заказе и номер инвойса для оплаты в параметре «id».
Внимание! Инвойс действителен 3 дня. По истечению трех дней – неоплаченный заказ/инвойс автоматически отменяется.
Оплата заказа
Зная номер инвойса, мы можем оплатить его с помощью запроса:
https://api.ishosting.com/billing/invoice/:id/pay
Для того, чтобы оплатить заказ, выполните следующее:
- Введите номер инвойса при помощи запроса https://api.ishosting.com/billing/invoice/:id/pay.
curl -X 'POST' \
'https://api.ishosting.com/billing/invoice/YOUR_INVOICE_ID/pay' \
-H 'accept: application/json' \
-H 'X-Api-Token: YOUR_API_KEY' \
-H 'Accept-Language: en' \
-H 'Content-Type: application/json' \
-d '{
"balance": "true",
"renew": "false",
"method": "not set",
"redirect": "not set"
}
' - Для того, чтобы оплатить с баланса, используйте следующий JSON:
{
"balance": "true",
"renew": "false",
"method": "not set",
"redirect": "not set"
} - Если не возникло ошибок – заказ отправляется на активацию и VPS станет доступен в ближайшее время.
Заключение
Мы надеемся, что эта статья поможет вам легко разобраться с размещением заказов с помощью is*hosting API.
Если у вас остались какие-либо вопросы или есть пожелания по доработке – мы будем благодарны за обратную связь. Вы можете задать вопросы в онлайн чате в правом нижнем углу сайта или тикетом в техподдержку с темой «Вопросы по API», и мы обязательно обратим внимание на ваше пожелание.
Спасибо за внимание и приятного пользования нашими услугами,
Команда is*hosting