Changelog
v2.22.0
Datacenters resource is now deprecated
The endpoints GET /v1/datacenters and GET /v1/datacenters/{id} are now deprecated and will be removed after 1 Oct. 2026. After this date, requests to these endpoints will return HTTP 410 Gone.
The DatacentersClient, Datacenter and related classes are now deprecated.
See the changelog for more details.
Features
deprecate datacenters (#656)
v2.21.0
Features
retry requests on api bad_gateway error (#658)
v2.20.0
Load Balancer HTTP Services now support timeout_idle
HTTP Services now support the field timeout_idle, which controls the time a HTTP connection is allowed to idle before it is being dropped.
See the changelog for more information.
Features
load-balancer: support
timeout_idlehttp service field (#649)
v2.19.0
Primary IPs assignee_type behavior change
In the create Primary IP call, the assignee_type argument is now only send when the assignee_id argument is set. The assignee_type argument will stop defaulting to server in the near future, consider explicitly setting this argument when needed.
As of 1 August 2026, the behavior of the Primary IP assignee_type property will change, and will return unassigned when the Primary IP is not assigned (when assignee_id is null). The goal is to eventually assign Primary IPs to other resource types, not only to server.
See the changelog for more details.
In addition, the Primary IP request body assignee_type property of the operation POST /v1/primary_ips is now optional. Primary IPs created without assignee_type return server until 1 August 2026, after this date, its value will be unassigned.
See the changelog for more details.
Features
primary-ip:
assignee_typebehavior changed when creating a primary ip (#647)
v2.18.0
Available and recommended Server Types have been moved
Datacenter.server_types has been deprecated in favor of the new ServerType.locations[].available and ServerType.locations[].recommended properties.
See the changelog for more details.
Features
datacenter, server_type: move available and recommended to server_type (#645)
v2.17.1
Bug Fixes
missing
__api_properties__on LoadBalancerService (#639)
v2.17.0
Features
parse nested load balancer
label_selectortargets (#633)
v2.16.0
Storage Boxes support is now generally available
The experimental phase for Storage Boxes is over, and Storage Boxes support is now generally available.
Features
servers: allow setting user_data for rebuild (#627)
Storage Box support no longer experimental (#626)
v2.15.0
Features
add name to Storage Box Subaccount (#621)
v2.14.0
Features
retry requests when the api returns a
timeouterror (#617)
v2.13.0
Features
add per primary ip actions list operations (#608)
deprecate datacenter in
primary ipsandservers(#609)
v2.12.0
Storage Box API Experimental
This release adds support for the Storage Box API.
The Storage Box integration will be introduced as an experimental feature. This experimental phase is expected to last at least until 12 January 2026. During this period, upcoming minor releases of the project may include breaking changes to features related to Storage Boxes.
This release includes all changes from the recent Storage Box API changelog entry.
Examples
response = client.storage_boxes.create(
name="string",
location=Location(name="fsn1"),
storage_box_type=StorageBoxType(name="bx11"),
labels={
"environment": "prod",
"example.com/my": "label",
"just-a-key": "",
},
password="my-password",
access_settings=StorageBoxAccessSettings(
reachable_externally=False,
samba_enabled=False,
ssh_enabled=False,
webdav_enabled=False,
zfs_enabled=False,
),
ssh_keys=[SSHKey(public_key="ssh-rsa AAAjjk76kgf...Xt")],
)
response.action.wait_until_finished()
storage_box = response.storage_box
Features
add update rrset records action to zone client (#597)
add support for Storage Boxes (#524)
v2.11.1
Bug Fixes
support reloading sub resource bound models (#590)
v2.11.0
DNS API is now generally available
The DNS API is now generally available, as well as support for features in this project that are related to the DNS API.
To migrate existing zones to the new DNS API, see the DNS migration guide.
See the changelog for more details.
Features
DNS support is now generally available (#581)
v2.10.0
Features
exp: add zone format txt record helper (#578)
add server and load balancer
private_net_forhelper method (#580)
v2.9.0
Features
support python 3.14 (#566)
drop support for python 3.9 (#574)
v2.8.0
DNS API Beta
This release adds support for the new DNS API.
The DNS API is currently in beta, which will likely end on 10 November 2025. After the beta ended, it will no longer be possible to create new zones in the old DNS system. See the DNS Beta FAQ for more details.
Future minor releases of this project may include breaking changes for features that are related to the DNS API.
See the DNS API Beta changelog for more details.
Examples
resp = client.zones.create(
name="example.com",
mode="primary",
labels={"key": "value"},
rrsets=[
ZoneRRSet(
name="@",
type="A",
records=[
ZoneRecord(value="201.180.75.2", comment="server1")
],
)
],
)
resp.action.wait_until_finished()
zone = resp.zone
Features
add new
ip_rangeparam to load balancerattach_to_network(#562)add new
ip_rangeparam to serverattach_to_network(#561)support the new DNS API (#568)
Bug Fixes
source_ips property is optional in firewall rule (#567)
v2.7.0
Server Types now depend on Locations.
We added a new
locationsproperty to the Server Types resource. The new property defines a list of supported Locations and additional per Locations details such as deprecations information.We deprecated the
deprecationproperty from the Server Types resource. The property will gradually be phased out as per Locations deprecations are being announced. Please use the new per Locations deprecation information instead.
See our changelog for more details.
Upgrading
# Before
def validate_server_type(server_type: ServerType):
if server_type.deprecation is not None:
raise ValueError(f"server type {server_type.name} is deprecated")
# After
def validate_server_type(server_type: ServerType, location: Location):
found = [o for o in server_type.locations if location.name == o.location.name]
if not found:
raise ValueError(
f"server type {server_type.name} is not supported in location {location.name}"
)
server_type_location = found[0]
if server_type_location.deprecation is not None:
raise ValueError(
f"server type {server_type.name} is deprecated in location {location.name}"
)
Features
per location server types (#558)
v2.6.0
Features
add category property to server type (#549)
Bug Fixes
rename
ClientEntityBasetoResourceClientBase(#532)
v2.5.4
Bug Fixes
typo in
LoadBalancerHealthCheckHttpclass name (#511)equality for some domain classes (#510)
use valid license identifier (SPDX) (#514)
v2.5.3
Bug Fixes
invalid placement group id casting (#501)
handle string id when checking has_id_or_name (#504)
v2.5.2
Bug Fixes
listing page result always provide meta (#496)
v2.5.1
Bug Fixes
missing slots and api_properties for FirewallResourceLabelSelector (#492)
v2.5.0
Features
improve exception messages (#488)
v2.4.0
Features
drop support for python 3.8 (#458)
add equality checks to domains (#481)
Bug Fixes
server public ipv4 and ipv6 properties are nullable (#455)
2.3.0 (2024-10-09)
Features
Bug Fixes
2.2.1 (2024-08-19)
Bug Fixes
2.2.0 (2024-08-06)
Features
Bug Fixes
2.1.1 (2024-07-30)
Bug Fixes
Documentation
2.1.0 (2024-07-25)
API Changes for Traffic Prices and Server Type Included Traffic
There will be a breaking change in the API regarding Traffic Prices and Server Type Included Traffic on 2024-08-05. This release marks the affected fields as Deprecated. Please check if this affects any of your code and switch to the replacement fields where necessary.
You can learn more about this change in our changelog.
Features
2.0.1 (2024-07-03)
Bug Fixes
2.0.0 (2024-07-03)
⚠ BREAKING CHANGES
return full rebuild response in
Client.servers.rebuild(#406)make
datacenterargument optional when creating a primary ip (#363)remove deprecated
include_wildcard_architectureargument inIsosClient.get_listandIsosClient.get_all(#402)make
Client.requesttriesa private argument (#399)make
Client.poll_intervala private property (#398)return empty dict on empty responses in
Client.request(#400)remove deprecated
hcloud.hcloudmodule (#401)move
hcloud.__version__.VERSIONtohcloud.__version__(#397)
Features
allow using a custom poll_interval function (#403) (93eb56b)
make
Client.poll_intervala private property (#398) (d5f24db)make
Client.requesttriesa private argument (#399) (428ea7e)move
hcloud.__version__.VERSIONtohcloud.__version__(#397) (4e3f638), closes #234remove deprecated
include_wildcard_architectureargument inIsosClient.get_listandIsosClient.get_all(#402) (6b977e2)return empty dict on empty responses in
Client.request(#400) (9f46adb)return full rebuild response in
Client.servers.rebuild(#406) (1970d84)
Bug Fixes
Dependencies
update pre-commit hook asottile/pyupgrade to v3.16.0 (0ce5fbc)
update pre-commit hook pre-commit/pre-commit-hooks to v4.6.0 (5ef25ab)
update pre-commit hook psf/black-pre-commit-mirror to v24.4.0 (0941fbf)
update pre-commit hook psf/black-pre-commit-mirror to v24.4.1 (fec08c5)
update pre-commit hook psf/black-pre-commit-mirror to v24.4.2 (#389) (2b2e21f)
update pre-commit hook pycqa/flake8 to v7.1.0 (3bc651d)
Documentation
1.35.0 (2024-04-02)
Features
Bug Fixes
1.34.0 (2024-03-27)
Features
1.33.3 (2024-03-27)
Bug Fixes
Dependencies
update pre-commit hook asottile/pyupgrade to v3.15.1 (#362) (dd2a521)
update pre-commit hook asottile/pyupgrade to v3.15.2 (3d02ad7)
update pre-commit hook psf/black-pre-commit-mirror to v24 (#356) (b46397d)
update pre-commit hook psf/black-pre-commit-mirror to v24.1.1 (#358) (7e4645e)
update pre-commit hook psf/black-pre-commit-mirror to v24.2.0 (#361) (5b56ace)
update pre-commit hook psf/black-pre-commit-mirror to v24.3.0 (3bbac5d)
update pypa/gh-action-pypi-publish action to v1.8.12 (#365) (55db255)
update pypa/gh-action-pypi-publish action to v1.8.14 (#367) (0cb615f)
1.33.2 (2024-01-02)
Bug Fixes
publish package to PyPI using OIDC auth (1a0e93b)
1.33.1 (2024-01-02)
Bug Fixes
Dependencies
1.33.0 (2023-12-19)
Features
Bug Fixes
Dependencies
1.32.0 (2023-11-17)
Features
Dependencies
1.31.0 (2023-10-23)
Features
Dependencies
1.30.0 (2023-10-13)
Features
Dependencies
1.29.1 (2023-09-26)
Bug Fixes
1.29.0 (2023-09-25)
Features
Bug Fixes
Dependencies
update pre-commit hook asottile/pyupgrade to v3.11.0 (#298) (4bbd0cc)
update pre-commit hook asottile/pyupgrade to v3.11.1 (#299) (2f9fcd7)
update pre-commit hook asottile/pyupgrade to v3.13.0 (#301) (951dbf3)
update pre-commit hook pre-commit/mirrors-prettier to v3.0.3 (#294) (381e336)
update pre-commit hook psf/black to v23.9.1 (#296) (4374a7b)
Documentation
1.28.0 (2023-08-17)
Features
Dependencies
Documentation
1.27.2 (2023-08-09)
Documentation
1.27.1 (2023-08-08)
Bug Fixes
1.27.0 (2023-08-08)
Features
Bug Fixes
Dependencies
Documentation
1.26.0 (2023-07-19)
Features
1.25.0 (2023-07-14)
Features
Dependencies
1.24.0 (2023-07-03)
Features
Dependencies
1.23.1 (2023-06-30)
Bug Fixes
1.23.0 (2023-06-26)
Features
Bug Fixes
Dependencies
1.22.0 (2023-06-22)
Features
Dependencies
1.21.0 (2023-06-19)
Features
Bug Fixes
Documentation
1.20.0 (2023-05-12)
Features
v1.19.0 (2023-04-12)
v1.18.2 (2022-12-27)
v1.18.1 (2022-10-25)
v1.18.0 (2022-08-17)
Remove use of external mock module by @s-t-e-v-e-n-k in #162
document installation path via conda-forge by @s-m-e in #149
Drop # – coding: utf-8 – from files by @jonasdlindner in #154
Simplify Requirement Constraints by @LKaemmerling in #163
Add validation helper for Label Values/Keys by @LKaemmerling in #164
v1.17.0 (2022-06-29)
Add primary IP support by @LKaemmerling in #160
v1.16.0 (2021-08-17)
Feature: Add support for Load Balancer DNS PTRs
v1.15.0 (2021-08-16)
Feature: Add support for Placement Groups
v1.14.1 (2021-08-10)
Bugfix: Fix crash on extra fields in public_net response
Improvement: Format code with black
v1.14.0 (2021-08-03)
Feature: Add support for Firewall rule descriptions
v1.13.0 (2021-07-16)
Feature: Add support for Firewall Protocols ESP and GRE
Feature: Add support for Image Type APP
Feature: Add support for creating Firewalls with Firewalls
Feature: Add support for Label Selectors in Firewalls
Improvement: Improve handling of underlying TCP connections. Now for every client instance a single TCP connection is used instead of one per call.
Note: Support for Python 2.7 and Python 3.5 was removed
v1.12.0 (2021-04-06)
Feature: Add support for managed Certificates
v1.11.0 (2021-03-11)
Feature: Add support for Firewalls
Feature: Add
primary_disk_sizetoServerDomain
v1.10.0 (2020-11-03)
Feature: Add
include_deprecatedfilter toget_listandget_allonImagesClientFeature: Add vSwitch support to
add_subnetonNetworksClientFeature: Add subnet type constants to
NetworkSubnetdomain (NetworkSubnet.TYPE_CLOUD,NetworkSubnet.TYPE_VSWITCH)
v1.9.1 (2020-08-11)
Bugfix: BoundLoadBalancer serialization failed when using IP targets
v1.9.0 (2020-08-10)
Feature: Add
included_traffic,outgoing_trafficandingoing_trafficproperties to Load Balancer domainFeature: Add
change_type-method toLoadBalancersClientFeature: Add support for
LoadBalancerTargetLabelSelectorFeature: Add support for
LoadBalancerTargetLabelSelector
v1.8.2 (2020-07-20)
Fix: Loosen up the requirements.
v1.8.1 (2020-06-29)
Fix Load Balancer Client.
Fix: Unify setting of request parameters within
get_listmethods.
1.8.0 (2020-06-22)
Feature: Add Load Balancers Attention: The Load Balancer support in v1.8.0 is kind of broken. Please use v1.8.1
Feature: Add Certificates
1.7.1 (2020-06-15)
Feature: Add requests 2.23 support
1.7.0 (2020-06-05)
Feature: Add support for the optional ‘networks’ parameter on server creation.
Feature: Add python 3.9 support
Feature: Add subnet type
cloud
1.6.3 (2020-01-09)
Feature: Add ‘created’ property to SSH Key domain
Fix: Remove ISODatetime Descriptor because it leads to wrong dates
1.6.2 (2019-10-15)
Fix: future dependency requirement was too strict
1.6.1 (2019-10-01)
Fix: python-dateutil dependency requirement was too strict
1.6.0 (2019-09-17)
Feature: Add missing
get_by_nameonFloatingIPsClient
1.5.0 (2019-09-16)
Fix: ServersClient.create_image fails when specifying the
labelsFeature: Add support for
nameon Floating IPs
1.4.1 (2019-08-19)
Fix: Documentation for
NetworkRoutedomain was missingFix:
requestsdependency requirement was to strict
1.4.0 (2019-07-29)
Feature: Add
mac_addressto Server PrivateNet domainFeature: Add python 3.8 support
1.3.0 (2019-07-10)
Feature: Add status filter for servers, images and volumes
Feature: Add ‘created’ property to Floating IP domain
Feature: Add ‘Networks’ support
1.2.1 (2019-03-13)
Fix: BoundVolume.server server property now casted to the ‘BoundServer’.
1.2.0 (2019-03-06)
Feature: Add
get_by_fingerprint-method for ssh keysFix: Create Floating IP with location raises an error because no action was given.
1.1.0 (2019-02-27)
Feature: Add
STATUS-constants for server and volume status
1.0.1 (2019-02-22)
Fix: Ignore unknown fields in API response instead of raising an error
1.0.0 (2019-02-21)
First stable release.
You can find the documentation under https://hcloud-python.readthedocs.io/en/stable/
0.1.0 (2018-12-20)
First release on GitHub.