API

is*hosting API

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

is*hosting API позволяет автоматизировать базовые действия, такие как:

  • Создание заказов
  • Оплата инвойсов
  • Проверка статуса услуг
  • Управление услугами

Эти действия можно выполнять с помощью HTTP запросов по адресу: 

https://api.ishosting.com

Примеры запросов будут приведены в виде curl команд. cURL (client URL) – утилита, по умолчанию доступная для операционных систем Linux и macOS. Она позволяет работать с HTTP протоколом с помощью командной строки. Если вы используете Windows, примеры можно легко конвертировать в команды для PowerShell с помощью любого онлайн конвертера.

Swagger версия спецификации API is*hosting доступна в личном кабинете. Также тут можно протестировать и сгенерировать в виде curl команд любой запрос из API is*hosting. Для этого достаточно нажать кнопку «Try it out».

1

Для запросов действуют ограничения:

  • 150 запросов за 10 секунд (в случае превышения - блокировка на 1 час)
  • 300 запросов за 1 минуту (проверка СF managedChallenge)

Авторизация

Для получения доступа необходим API-ключ, который можно сгенерировать в личном кабинете.

Для того, чтобы добавить API-ключ, выполните следующие шаги:

  1. В личном кабинете в разделе «API» нажмите «Add API key».
    2
  2. Ключ добавляется в запрос в виде заголовка:
    -H 'X-Authorization: YOUR_API_KEY'

Срок действия ключа – 6048000 секунд или 70 суток.

Выбор услуги

Чтобы оформить заказ, нам нужно знать тип услуги и тарифный план.

  • Тип услуги – параметр «type». Он может принимать значения: vps, storage, dedicated, vpn, ssl.
  • Код тарифного плана – параметр "plan". Информацию о тарифных планах VPS можно получить по запросу: 
    https://api.ishosting.com/services/vps/plans
    curl -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'

Подсказка: Также код тарифного плана можно посмотреть в личном кабинете в процессе заказа услуги:

3

Пример:

Для примера возьмем:

  • услуга 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:

  1. Базовый тарифный план без модификаций:
    {

     "items": [

       {

         "action": "new",

         "type": "vps",

         "plan": "29_6m"

        

       }

     ]

    }
  2. Модифицированный тарифный план:
    {

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

        

       }

     ]

    }

    '
  3. Если все в порядке, размещаем заказ с помощью запроса:
    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"

        

       }

     ]

    }

    '

     

  4. Если все в порядке и заказ размещен – ответ содержит подробную информацию о заказе и номер инвойса для оплаты в параметре «id». 

Внимание! Инвойс действителен 3 дня. По истечению трех дней – неоплаченный заказ/инвойс автоматически отменяется.

Оплата заказа

Зная номер инвойса, мы можем оплатить его с помощью запроса:

https://api.ishosting.com/billing/invoice/:id/pay

Для того, чтобы оплатить заказ, выполните следующее:

  1. Введите номер инвойса при помощи запроса 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"

    }

    '
  2. Для того, чтобы оплатить с баланса, используйте следующий JSON:
    {

       "balance": "true",

       "renew": "false",

       "method": "not set",

     "redirect": "not set"

    }
  3. Если не возникло ошибок – заказ отправляется на активацию и VPS станет доступен в ближайшее время.

Заключение

Мы надеемся, что эта статья поможет вам легко разобраться с размещением заказов с помощью is*hosting API. 

Если у вас остались какие-либо вопросы или есть пожелания по доработке – мы будем благодарны за обратную связь. Вы можете задать вопросы в онлайн чате в правом нижнем углу сайта или тикетом в техподдержку с темой «Вопросы по API», и мы обязательно обратим внимание на ваше пожелание.

 

Спасибо за внимание и приятного пользования нашими услугами,

Команда is*hosting