Changes for version 0.102 - 2026-10-21

  • The distribution declares LWP::Protocol::https, without it every https target fails
  • Fix: transport failures (connection refused, DNS, TLS, timeout) now croak with LWP's reason instead of a bare "Hetzner API error: 500"; non-JSON error bodies (e.g. a proxy's HTML 502) contribute their status and text to the error message
  • Fix: the debug log no longer prints password, private_key and user_data values of request bodies
  • New: WWW::Hetzner::Cloud::Costs, $cloud->costs(label_selector => ..., price => 'gross'|'net') sums the hourly and monthly cost per resource and in total for servers (plus the server backup surcharge when backup_window is set), volumes, primary IPs, floating IPs and load balancers, priced per location from /pricing. Gross by default; the result carries price and vat_rate. Where /pricing has no hourly price (volumes, floating IPs) hourly is derived as monthly/624 and flagged hourly_derived. Resources without a price warn and stay out of the totals
  • CLI: hcloud.pl costs [--label|-l SELECTOR] [--net] [--json]
  • Fix: Server and PrimaryIP read the location object current API responses carry instead of the dropped datacenter (datacenter kept as fallback); Server gains the backup_window attribute
  • Fix: Servers->create sent start_after_create, automount, enable_ipv4 and enable_ipv6 (also inside public_net) as JSON numbers, which the API rejected as invalid_input; they are now JSON booleans, as is change_type's upgrade_disk. The caller's public_net hash is no longer modified
  • Docs: WWW::Hetzner::Cloud::API::Datacenters is deprecated, Hetzner removed GET /v1/datacenters (410 deprecated_api_endpoint); use Locations. The hcloud.pl datacenter command and the datacenter parameter of Servers->create and PrimaryIPs->create are deprecated as well
  • Fix: Volumes->create and Volumes->attach send automount as a JSON boolean; a Perl 0 went out as the JSON number 0, which the API rejected as invalid_input, and attach turned every value into true
  • CLI: hcloud.pl server list and hcloud.pl primary-ip list show the column LOCATION instead of DATACENTER, the API no longer sends the datacenter field
  • New: the server type carries its locations, one entry per location with the name, the availability the datacenter used to deliver and the deprecation flag

Documentation

Hetzner Cloud CLI (Perl implementation)
Hetzner Robot CLI (Perl implementation)

Modules

Perl client for Hetzner APIs (Cloud, Storage, Robot)
Hetzner API action object
Hetzner Cloud CLI
Hetzner Cloud Certificate commands
Show the current running cost of the project
Hetzner Cloud Firewall commands
Apply a firewall to a server
Remove a firewall from a server
Hetzner Cloud Floating IP commands
Assign a floating IP to a server
Unassign a floating IP from its server
Hetzner Cloud Load Balancer commands
Load balancer type commands
Hetzner Cloud Network commands
Hetzner Cloud Placement Group commands
Hetzner Cloud Primary IP commands
Assign a primary IP to a server
Unassign a primary IP from its server
DNS Record commands
Rebuild a server with a new image
Enable or disable rescue mode
Shutdown a server (graceful)
Server type commands
Storage Box commands
Disable Storage Box delete protection
Enable Storage Box delete protection
Remove a label from a Storage Box
Roll a Storage Box back to a snapshot
Remove a label from a Storage Box snapshot
Storage Box subaccount commands
Attach a volume to a server
Detach a volume from a server
DNS Zone commands
CLI role that waits for a returned Action by default
Perl client for Hetzner Cloud API
Hetzner Cloud Actions API
Hetzner Cloud Certificates API
Hetzner Cloud Datacenters API
Hetzner Cloud Firewalls API
Hetzner Cloud Floating IPs API
Hetzner Cloud ISOs API
Hetzner Cloud Images API
Hetzner Cloud Load Balancer Types API
Hetzner Cloud Load Balancers API
Hetzner Cloud Locations API
Hetzner Cloud Networks API
Hetzner Cloud Placement Groups API
Hetzner Cloud Pricing API
Hetzner Cloud Primary IPs API
Hetzner Cloud DNS RRSets (Records) API
Hetzner Cloud SSH Keys API
Hetzner Cloud Server Types API
Hetzner Cloud Servers API
Hetzner Cloud Volumes API
Hetzner Cloud DNS Zones API
Hetzner Cloud Certificate object
Current running cost of a Hetzner Cloud project
Hetzner Cloud Datacenter object
Hetzner Cloud Firewall object
Hetzner Cloud Floating IP object
Hetzner Cloud ISO object
Hetzner Cloud Image object
Hetzner Cloud Load Balancer object
Hetzner Cloud LoadBalancerType object
Hetzner Cloud Location object
Hetzner Cloud Network object
Hetzner Cloud Placement Group object
Hetzner Cloud Pricing object
Hetzner Cloud Primary IP object
Hetzner Cloud DNS RRSet object
Hetzner Cloud SSHKey object
Hetzner Cloud Server object
Hetzner Cloud ServerType object
Hetzner Cloud Volume object
Hetzner Cloud DNS Zone object
HTTP request object for Hetzner API
HTTP response object for Hetzner API
Synchronous HTTP backend using LWP::UserAgent
Perl client for Hetzner Robot API (Dedicated Servers)
Hetzner Robot Boot Configuration API
Hetzner Robot Failover IP API
Hetzner Robot IPs API
Hetzner Robot SSH Keys API
Hetzner Robot Reverse DNS API
Hetzner Robot Server Reset API
Hetzner Robot Servers API
Hetzner Robot Traffic API
Hetzner Robot CLI
Robot boot configuration commands
Linux installation boot configuration
Rescue system boot configuration
VNC installation boot configuration
Windows installation boot configuration
Robot failover IP commands
Robot SSH key commands
Robot reverse DNS commands
Reset a dedicated server
Query traffic statistics
Send Wake-on-LAN to a server
Hetzner Robot failover IP entity
Hetzner Robot IP entity
Hetzner Robot SSH Key entity
Hetzner Robot reverse DNS entry entity
Hetzner Robot Server entity
HTTP client role for Hetzner API clients
Entity role exposing a creation action
Controller role wrapping raw hashes as Action objects
Interface role for pluggable HTTP backends
Helper role for JSON boolean values in the Hetzner API
Controller helper for collecting paginated API lists
Perl client for Hetzner Storage Box API
Hetzner Storage Box Actions API
Hetzner Storage Box Snapshots API
Hetzner Storage Box Types API
Hetzner Storage Boxes API
Hetzner Storage Box Subaccounts API
Hetzner Storage Box Snapshot object
Hetzner Storage Box object
Hetzner Storage Box Type object
Hetzner Storage Box Subaccount object