Page tree

Общая информация о работе с API

Доступ к API предоставляется по запросу и требует верификации аккаунта: предоставления копии паспорта (для юр.лиц — свидетельства ИНН) владельца аккаунта. После верификации вам будет выдан AppKey, необходимый для авторизации в сервисе.

Обращение к API выполняется GET- и POST-запросами к URL https://api.timeweb.ru

Синтаксис запросов для доступных действий — в инструкции ниже.

Обратите внимание! Для работы с API двухфакторная аутентификация в панель управления (опция "Отправлять код подтверждения при входе" в разделе "Безопасность") должна быть отключена.

Авторизация

Для авторизации в системе необходимы следующие данные:

  1. Логин аккаунта.
  2. Пароль аккаунта.
  3. AppKey — предоставляется по запросу в Службу поддержки.

В ответ на запрос авторизации будет предоставлен токен для последующей аутентификации при работе с API. 

AppKey и токен действуют без ограничений до блокировки или удаления аккаунта.

Запрос на авторизацию

curl -qkSsv -X POST https://api.timeweb.ru/v1.2/access \
    -H 'X-App-Key: <номер AppKey>' \
    -u <логин аккаунта>:<пароль аккаунта>

Пример ответа на запрос

Токен доступен в поле "token".

{
  "expires_in": 0,
  "password": "string",
  "registrationDate": "2020-04-21T12:56:57.125Z",
  "timestamp": 0,
  "token": "639Х89ee-259d-4dd5-9fХ0-8e7ХХ6d893ХХХ",
  "token_type": "bearer",
  "user": "string",
  "user_type": "vds"
}

Пример запроса с использованием токена

curl -X GET "https://api.timeweb.ru/v1.1/vds/account/cc83217/server" 
-H "accept: application/json" 
-H "x-app-key: 9d999b163fdc572524028201a02c9999" 
-H "Authorization: Bearer 639Х89ee-259d-4dd5-9fХ0-8e7ХХ6d893ХХХ"

Доступные операции

Получение списка VDS аккаунта

Запрос

GET/v1.1/vds/account/{login}/server
  • {login} - логин аккаунта

Пример запроса

curl -X GET "https://api.timeweb.ru/v1.1/vds/account/cn90632/server" 
-H "accept: application/json" 
-H "x-app-key: 9d999b163fdc572524028201a02c9999" 
-H "Authorization: Bearer 639Х89ee-259d-4dd5-9fХ0-8e7ХХ6d893ХХХ"

Пример ответа

В параметре "id" ("id": 293399 в этом примере) выведен идентификатор VDS, необходимый для управления сервером

[
  {
    "comment": "",
    "configuration": {
      "backup_size": 0,
      "caption": "Mysterious Prospero",
      "ddos_guard": false,
      "disk_size": 10,
      "network_bandwidth": 200,
      "os": "ubuntu-18.04",
      "os_id": 47,
      "software": [],
      "vds_boot": "std",
      "xen_cpu": 1,
      "xen_ram": 1024
    },
    "create_date": "2020-03-06 16:58:03+03:00",
    "group_id": 562,
    "group_position": 0,
    "id": 293399,
    "install_ssh_key": "",
    "ip": "176.57.220.188",
    "ipv6": "2a03:6f00:4::b039:dcbc",
    "is_busy": false,
    "name": "vds-cn90632",
    "preset_id": 94,
    "progress": 100,
    "start_time": 1583504076,
    "status": "on",
    "trial": false,
    "uptime": 3976222,
    "virt_type": "kvm",
    "vnc_password": "wLXxg9t3"
  },
  {
    "comment": "новый сервер",
    "configuration": {
      "backup_size": 5,
      "caption": "don`t delete vds",
      "ddos_guard": false,
      "disk_size": 5,
      "network_bandwidth": 100,
      "os": "centos-7",
      "os_id": 39,
      "software": [
        2
      ],
      "vds_boot": "std",
      "xen_cpu": 2,
      "xen_ram": 512
    },
    "create_date": "2016-10-20 13:37:15+03:00",
    "group_id": 562,
    "group_position": 1,
    "id": 62784,
    "install_ssh_key": "",
    "ip": "188.225.79.202",
    "ipv6": "2a03:6f00:4::bce1:4fca",
    "is_busy": false,
    "name": "vds-cn90632",
    "preset_id": null,
    "progress": 100,
    "start_time": 1583462230,
    "status": "on",
    "trial": false,
    "uptime": 4018049,
    "virt_type": "kvm",
    "vnc_password": "j9XxwH2L"
  },
  

Вывод сервера по идентификатору (VDS ID)

Запрос

GET/v1.1/vds/account/{login}/server/{vds_id}

Параметры:

  • {login} - логин аккаунта
  • {vds_id} - идентификатор сервера

Пример запроса

curl -X GET "https://api.timeweb.ru/v1.1/vds/account/cn90632/server/293399" 
-H "accept: application/json" 
-H "x-app-key: 9d999b163fdc572524028201a02c9999" 
-H "Authorization: Bearer 639Х89ee-259d-4dd5-9fХ0-8e7ХХ6d893ХХХ"

Пример ответа

{
  "comment": "",
  "configuration": {
    "backup_size": 0,
    "caption": "Mysterious Prospero",
    "ddos_guard": false,
    "disk_size": 10,
    "network_bandwidth": 200,
    "os": "ubuntu-18.04",
    "os_id": 47,
    "software": [],
    "vds_boot": "std",
    "xen_cpu": 1,
    "xen_ram": 1024
  },
  "create_date": "2020-03-06 16:58:03+03:00",
  "group_id": 562,
  "group_position": 0,
  "id": 293399,
  "install_ssh_key": "",
  "ip": "176.57.220.188",
  "ipv6": "2a03:6f00:4::b039:dcbc",
  "is_busy": false,
  "name": "vds-cn90632",
  "preset_id": 94,
  "progress": 100,
  "start_time": 1583504076,
  "status": "on",
  "trial": false,
  "uptime": 3976398,
  "virt_type": "kvm",
  "vnc_password": "wLXxg9t3"
}

Команды управления сервером

Запрос

 POST /v1.1/vds/account/{login}/server/{vds_id}/{action}

Параметры:

  • {login} - логин аккаунта
  • {vds_id} - идентификатор сервера 
  • {action} - команда серверу

Доступные команды:

  1. Установка сервера - install
  2. Запуск сервера  - start
  3. Выключение  - shutdown
  4. Принудительное выключение  - hard_shutdown
  5. Удаление  - remove
  6. Перезагрузка - reboot
  7. Клонирование  - clone
  8. Принудительная перезагрузка - hard_reboot
  9. Сброс пароля - reset_password

Пример запроса

curl -X POST "https://api.timeweb.ru/v1.1/vds/account/cn90632/server/293399/reboot" 
-H "accept: */*" 
-H "x-app-key: 9d999b163fdc572524028201a02c9999" 
-H "Authorization: Bearer 639Х89ee-259d-4dd5-9fХ0-8e7ХХ6d893ХХХ"

Ответ на запрос

access-control-allow-headers: accept,authorization,content-type,origin,x-app-key,x-client-ip,x-customer-id,x-requested-with  
access-control-allow-methods: HEAD,GET,POST,PUT,DELETE,PATCH,OPTIONS  
access-control-allow-origin: https://api.timeweb.ru  
connection: keep-alive  
content-length: 0  
content-type: application/json  
date: Tue, 21 Apr 2020 14:56:22 GMT  
server: nginx  
vary: accept 

Действия с доменами

Для работы с доменами и ресурсными записями применяются те же методы, что для виртуального хостинга:

  • No labels