Page tree

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

Мы предлагаем два варианта работы с API.

  • Если вам необходим API для мобильного или веб-приложения, рекомендуем использовать методы, описанные здесь: https://public-api.timeweb.com/swagger

    По ссылке вы найдете описание методов, примеры запросов, примеры ответов, форму авторизации и автоматического получения токена. Также обратите внимание на лимиты, описанные ниже.

  • В других случаях вам, вероятно, будет удобнее работать с API, используя запросы, описанные ниже в разделе Доступные операции.

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

Лимиты на количество запросов

Лимиты актуальны только при использовании методов, описанных на странице: https://public-api.timeweb.com/swagger.

1. Авторизация - 10 запросов в минуту.
2. Получение токена - 10 запросов в минуту.
3. Список пресетов - 10 запросов в минуту.
4. Список операционных систем - 10 запросов в минуту.
5. Получение ссылки на авторизацию через OAuth - 30 запросов в минуту.
6. Получение информации о пользователе через OAuth - 10 запросов в минуту.
7. Авторизация через OAuth - 2 запроса в минуту.
8. Регистрация нового аккаунта - 1 запрос в минуту.
9. Восстановление пароля - 1 запрос в минуту.

Лимиты привязаны к IP-адресу, с которого выполняется запрос. При превышении лимита будет возвращаться 429 Too many requests.

Авторизация и получение токена

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

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

Автоматически

1. На сайте https://public-api.timeweb.com/swagger в верхнем правом углу нажмите "Authorize" и введите логин и пароль от своего VDS-аккаунта.

2. Отправьте запрос через POST-метод /api/v2/auth с пустым телом запроса. В ответ будет предоставлен json-объект с полем access_token.

3. Полученный access_token можно использовать в заголовке или ввести его в этом же окне "Authorize" в поле Bearer.

По запросу

Потребуется верификация аккаунта — предоставление копии паспорта владельца аккаунта (для юр.лиц — свидетельства ИНН). После верификации вам будет выдан 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