Hetzner · Документация

API Hetzner: Robot Webservice и Cloud API — частые вопросы

Обновлено

У Hetzner не один API, а как минимум два, и они независимы: Robot Webservice управляет выделенными серверами, а Cloud API — облачными ресурсами проекта в Hetzner Console. Ключи и адреса у них разные: токен из облака не подойдёт для Robot и наоборот. Ниже — как получить доступ, как выглядят запросы и как не допустить утечки ключей.

Cloud API

Адрес: https://api.hetzner.cloud/v1. Аутентификация — токен проекта в заголовке Authorization: Bearer. Токен создаётся в Hetzner Console: проект → Security → API tokens. Выберите права Read (только чтение) или Read & Write; токен показывается один раз.

export HCLOUD_TOKEN="…"
curl -H "Authorization: Bearer $HCLOUD_TOKEN" https://api.hetzner.cloud/v1/servers
curl -H "Authorization: Bearer $HCLOUD_TOKEN" https://api.hetzner.cloud/v1/ssh_keys

Ответ — JSON. Списки постраничные: используйте параметры page и per_page. Лимит запросов существует; при превышении API возвращает 429 — делайте паузу и повторяйте с задержкой.

Утилита hcloud

hcloud context create my-project   # попросит токен
hcloud server list
hcloud server-type list            # типы, доступные в вашем проекте
hcloud server create --name web1 --type TYPE --image ubuntu-24.04 --ssh-key my-key

Не зашивайте названия типов серверов в скрипты без проверки: линейки и доступность в 2026 году менялись (подробности).

Robot Webservice

HTTP-интерфейс к функциям Robot: список серверов, активация Rescue, сброс (reset), IP, vSwitch, межсетевой экран. Доступ — по логину и паролю отдельного пользователя веб-сервиса, которого создают в настройках Robot. Запросы идут с базовой HTTP-аутентификацией:

curl -u "#ws+XXXXXXXX:ПАРОЛЬ" https://robot-ws.your-server.de/server
curl -u "#ws+XXXXXXXX:ПАРОЛЬ" https://robot-ws.your-server.de/server/IP_СЕРВЕРА

Активация Rescue System через API (тип системы и архитектура в теле запроса):

curl -u "#ws+XXXXXXXX:ПАРОЛЬ" https://robot-ws.your-server.de/boot/IP_СЕРВЕРА/rescue -d os=linux -d arch=64

После активации сервер нужно перезагрузить — через Robot или метод reset: активация лишь планирует следующую загрузку в Rescue. Полный перечень методов — в документации Robot Webservice на docs.hetzner.com. Будьте осторожны с автоматизацией перезагрузок.

Вопросы безопасности

  • Не кладите токены в репозиторий и образы Docker; используйте переменные окружения и секреты CI.
  • Для автоматизации заведите отдельный проект и токен с минимальными правами.
  • Если токен попал в публичный доступ, сразу удалите его в консоли и выпустите новый.

Частые вопросы

Можно ли управлять облаком из Terraform или Ansible?

Да, для Hetzner Cloud существуют провайдер Terraform и коллекция Ansible; они используют тот же токен проекта.

Как включить Rescue System из скрипта?

Через Robot Webservice (метод boot/{ip}/rescue), затем перезагрузить сервер. Порядок установки ОС — в статье Rescue System и installimage.

Что значат ошибки 401 и 403?

401 — неверные данные или токен не от того API; 403 — недостаточно прав. Облачный токен годится только для api.hetzner.cloud, логин веб-сервиса — только для robot-ws.your-server.de.

Где узнавать об изменениях API?

В журнале изменений Hetzner Cloud и в документации Robot. Следите за пометками об устаревании образов и полей API, чтобы скрипты не ломались.