Hetzner Cloud API mit cURL
Hetzner hat eine saubere REST-API mit der man Server, Firewalls, DNS und mehr per Script verwalten kann.
Praktisch für automatisierte Setups oder wenn man mal schnell einen Server hochziehen will.
API-Token erstellen
In der Hetzner Cloud Console unter Security → API Tokens einen neuen Token mit Read+Write erstellen.
Einfache Bash-Funktion
HCLOUD_TOKEN="mein-api-token"
hcloud() {
local method="$1"
local endpoint="$2"
local data="${3:-}"
curl -s \
-X "$method" \
-H "Authorization: Bearer $HCLOUD_TOKEN" \
-H "Content-Type: application/json" \
${data:+-d "$data"} \
"https://api.hetzner.cloud/v1/$endpoint"
}
Alle Server auflisten
hcloud GET servers | jq '.servers[] | {id: .id, name: .name, ip: .public_net.ipv4.ip, status: .status}'
Neuen Server erstellen
hcloud POST servers '{
"name": "web-01",
"server_type": "cx22",
"image": "debian-12",
"location": "nbg1",
"ssh_keys": ["mein-ssh-key"]
}'
Server löschen
hcloud DELETE servers/12345678
Firewall-Regeln abrufen
hcloud GET firewalls | jq '.firewalls[].name'
DNS über Hetzner DNS API
curl -s \
-H "Auth-API-Token: $HDNS_TOKEN" \
"https://dns.hetzner.com/api/v1/zones" \
| jq '.zones[].name'
Das ist eine separate API mit eigenem Token — nicht mit dem Cloud-Token verwechseln.