productivity
Hetzner Cloud Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Hetzner Cloud KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.hetzner.*.
Use lua_read_doc("integrations.hetzner") inside KosmoKrator to discover the same reference at runtime.
Call Lua from the Headless CLI
Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic
Hetzner Cloud workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.hetzner.get_multiple_actions({}))' --json kosmo integrations:lua --eval 'print(docs.read("hetzner"))' --json
kosmo integrations:lua --eval 'print(docs.read("hetzner.get_multiple_actions"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local hetzner = app.integrations.hetzner
local result = hetzner.get_multiple_actions({})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.hetzner, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.hetzner.default.* or app.integrations.hetzner.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Hetzner Cloud, use the narrower mcp:lua command.
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json Agent-Facing Lua Docs
This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.
Hetzner Cloud Lua API Reference
Namespace: hetzner
This integration exposes generated coverage for the official Hetzner Cloud OpenAPI document at https://docs.hetzner.cloud/cloud.spec.json.
Authentication uses a Hetzner Cloud project API token. Read-only tokens can call GET tools. Read-write tokens are required for create, update, delete, and action tools.
Common Tools
hetzner_list_serversmaps toGET /servers.hetzner_get_servermaps toGET /servers/{id}.hetzner_create_servermaps toPOST /servers.hetzner_list_volumesmaps toGET /volumes.hetzner_list_networksmaps toGET /networks.hetzner_list_ssh_keysmaps toGET /ssh_keys.
The generated catalog also covers actions, certificates, datacenters, firewalls, floating IPs, images, ISOs, load balancers, locations, networks, placement groups, primary IPs, pricing, server types, volumes, DNS zones, DNS record sets, and resource-specific action endpoints.
Arguments
Path and query parameters use names from Hetzner’s OpenAPI document. Snake-case aliases are also accepted.
For example, both per_page and perPage can be supplied when the upstream parameter is represented that way by a tool. Path IDs are URL encoded automatically.
Tools with a JSON request body accept a body table. If you omit body, non-path/query/header arguments are collected into the JSON body.
Examples
local servers = hetzner.hetzner_list_servers({
per_page = 25,
page = 1
})
local server = hetzner.hetzner_get_server({
id = 123456
})
local created = hetzner.hetzner_create_server({
body = {
name = "agent-demo",
server_type = "cx22",
image = "ubuntu-24.04",
location = "fsn1",
ssh_keys = { "agent-key" }
}
})
local action = hetzner.hetzner_poweron_server({
id = 123456
})
Return Shapes
Responses are Hetzner Cloud’s parsed JSON responses. Pagination responses usually include a meta.pagination object. Mutating endpoints often return an action, a resource object, or both depending on the endpoint.
Non-JSON responses return:
{
body = "...",
content_type = "text/plain"
}
The old hetzner_get_current_user helper is intentionally not part of the generated catalog because the current official Cloud API spec does not expose a /user endpoint. Use a lightweight read tool such as hetzner_list_locations to verify token access.
Raw agent markdown
# Hetzner Cloud Lua API Reference
Namespace: `hetzner`
This integration exposes generated coverage for the official Hetzner Cloud OpenAPI document at `https://docs.hetzner.cloud/cloud.spec.json`.
Authentication uses a Hetzner Cloud project API token. Read-only tokens can call `GET` tools. Read-write tokens are required for create, update, delete, and action tools.
## Common Tools
- `hetzner_list_servers` maps to `GET /servers`.
- `hetzner_get_server` maps to `GET /servers/{id}`.
- `hetzner_create_server` maps to `POST /servers`.
- `hetzner_list_volumes` maps to `GET /volumes`.
- `hetzner_list_networks` maps to `GET /networks`.
- `hetzner_list_ssh_keys` maps to `GET /ssh_keys`.
The generated catalog also covers actions, certificates, datacenters, firewalls, floating IPs, images, ISOs, load balancers, locations, networks, placement groups, primary IPs, pricing, server types, volumes, DNS zones, DNS record sets, and resource-specific action endpoints.
## Arguments
Path and query parameters use names from Hetzner's OpenAPI document. Snake-case aliases are also accepted.
For example, both `per_page` and `perPage` can be supplied when the upstream parameter is represented that way by a tool. Path IDs are URL encoded automatically.
Tools with a JSON request body accept a `body` table. If you omit `body`, non-path/query/header arguments are collected into the JSON body.
## Examples
```lua
local servers = hetzner.hetzner_list_servers({
per_page = 25,
page = 1
})
```
```lua
local server = hetzner.hetzner_get_server({
id = 123456
})
```
```lua
local created = hetzner.hetzner_create_server({
body = {
name = "agent-demo",
server_type = "cx22",
image = "ubuntu-24.04",
location = "fsn1",
ssh_keys = { "agent-key" }
}
})
```
```lua
local action = hetzner.hetzner_poweron_server({
id = 123456
})
```
## Return Shapes
Responses are Hetzner Cloud's parsed JSON responses. Pagination responses usually include a `meta.pagination` object. Mutating endpoints often return an `action`, a resource object, or both depending on the endpoint.
Non-JSON responses return:
```lua
{
body = "...",
content_type = "text/plain"
}
```
The old `hetzner_get_current_user` helper is intentionally not part of the generated catalog because the current official Cloud API spec does not expose a `/user` endpoint. Use a lightweight read tool such as `hetzner_list_locations` to verify token access. local result = app.integrations.hetzner.get_multiple_actions({})
print(result) Functions
get_multiple_actions Read
Returns multiple Action objects specified by the `id` parameter. **Note**: This endpoint previously allowed listing all actions in the project. This functionality was deprecated in July 2023 and removed on 30 January 2025. - Announcement: https://docs.hetzner.cloud/changelog#2023-07-20-actions-list-endpoint-is-deprecated - Removal: https://docs.hetzner.cloud/changelog#2025-01-30-listing-arbitrary-actions-in-the-actions-list-endpoint-is-removed
- Lua path
app.integrations.hetzner.get_multiple_actions- Full name
hetzner.hetzner_get_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a specific Action object.
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_certificates Read
Returns all Certificate objects.
- Lua path
app.integrations.hetzner.list_certificates- Full name
hetzner.hetzner_list_certificates
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_certificate Write
Creates a new Certificate. The default type **uploaded** allows for uploading your existing `certificate` and `private_key` in PEM format. You have to monitor its expiration date and handle renewal yourself. In contrast, type **managed** requests a new Certificate from *Let's Encrypt* for the specified `domain_names`. Only domains managed by *Hetzner DNS* are supported. We handle renewal and timely alert the project owner via email if problems occur. For type `managed` Certificates the `action` key of the response contains the Action that allows for tracking the issuance process. For type `uploaded` Certificates the `action` is always null.
- Lua path
app.integrations.hetzner.create_certificate- Full name
hetzner.hetzner_create_certificate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Returns all Action objects. You can `sort` the results by using the sort URI parameter, and filter them with the `status` and `id` parameter.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_certificates_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a specific Action object.
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_certificates_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_certificate Read
Gets a specific Certificate object.
- Lua path
app.integrations.hetzner.get_certificate- Full name
hetzner.hetzner_get_certificate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_certificate Write
Updates the Certificate properties. Note: if the Certificate object changes during the request, the response will be a "conflict" error.
- Lua path
app.integrations.hetzner.update_certificate- Full name
hetzner.hetzner_update_certificate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_certificate Write
Deletes a Certificate.
- Lua path
app.integrations.hetzner.delete_certificate- Full name
hetzner.hetzner_delete_certificate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_certificate Read
Returns all Action objects for a Certificate. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter. Only type `managed` Certificates can have Actions. For type `uploaded` Certificates the `actions` key will always contain an empty array.
- Lua path
app.integrations.hetzner.list_actions_certificate- Full name
hetzner.hetzner_list_certificate_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
retry_issuance_or_renewal Write
Retry a failed Certificate issuance or renewal. Only applicable if the type of the Certificate is `managed` and the issuance or renewal status is `failed`. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | | `caa_record_does_not_allow_ca` | CAA record does not allow certificate authority | | | `ca_dns_validation_failed` | Certificate Authority: DNS validation failed | | | `ca_too_many_authorizations_failed_recently` | Certificate Authority: Too many authorizations failed recently | | | `ca_too_many_certificates_issued_for_registered_domain` | Certificate Authority: Too many certificates issued for registered domain | | | `ca_too_many_duplicate_certificates` | Certificate Authority: Too many duplicate certificates | | | `could_not_verify_domain_delegated_to_zone` | Could not verify domain delegated to zone | | | `dns_zone_not_found` | DNS zone not found | | | `dns_zone_is_secondary_zone` | DNS zone is a secondary zone |
- Lua path
app.integrations.hetzner.retry_issuance_or_renewal- Full name
hetzner.hetzner_retry_certificate
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_certificate Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific Action for a Certificate. Only type `managed` Certificates have Actions.
- Lua path
app.integrations.hetzner.get_action_certificate- Full name
hetzner.hetzner_get_certificate_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_data_centers Read
Returns all [Data Centers](#tag/data-centers).
- Lua path
app.integrations.hetzner.list_data_centers- Full name
hetzner.hetzner_list_datacenters
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_data_center Read
Returns a single [Data Center](#tag/data-centers).
- Lua path
app.integrations.hetzner.get_data_center- Full name
hetzner.hetzner_get_datacenter
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_firewalls Read
Returns all [Firewalls](#tag/firewalls). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_firewalls- Full name
hetzner.hetzner_list_firewalls
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_firewall Write
Create a [Firewall](#tag/firewalls). #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `server_already_added` | The [Server](#tag/servers) was applied more than once. | | `422` | `incompatible_network_type` | The resources network type is not supported by [Firewalls](#tag/firewalls). | | `422` | `firewall_resource_not_found` | The resource the [Firewall](#tag/firewalls) should be attached to was not found. |
- Lua path
app.integrations.hetzner.create_firewall- Full name
hetzner.hetzner_create_firewall
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Returns all [Actions](#tag/actions) for [Firewalls](#tag/firewalls). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_firewalls_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns the specific [Action](#tag/actions).
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_firewalls_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_firewall Read
Returns a single [Firewall](#tag/firewalls).
- Lua path
app.integrations.hetzner.get_firewall- Full name
hetzner.hetzner_get_firewall
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_firewall Write
Update a [Firewall](#tag/firewalls). In case of a parallel running change on the [Firewall](#tag/firewalls) a `conflict` error will be returned.
- Lua path
app.integrations.hetzner.update_firewall- Full name
hetzner.hetzner_update_firewall
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_firewall Write
Deletes the [Firewall](#tag/firewalls). #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `resource_in_use` | [Firewall](#tag/firewalls) still applied to a resource |
- Lua path
app.integrations.hetzner.delete_firewall- Full name
hetzner.hetzner_delete_firewall
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_firewall Read
Returns all [Actions](#tag/actions) for the [Firewall](#tag/firewalls). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions_firewall- Full name
hetzner.hetzner_list_firewall_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
apply_resources Write
Applies a [Firewall](#tag/firewalls) to multiple resources. Supported resources: - [Servers](#tag/servers) (with a public network interface) - [Label Selectors](#description/label-selector) A [Server](#tag/servers) can be applied to [a maximum of 5 Firewalls](https://docs.hetzner.com/cloud/firewalls/overview#limits). This limit applies to [Servers](#tag/servers) applied via a matching [Label Selector](#description/label-selector) as well. Updates to resources matching or no longer matching a [Label Selector](#description/label-selector) can take up to a few seconds to be processed. A [Firewall](#tag/firewalls) is applied to a resource once the related [Action](#tag/actions) with command `apply_firewall` successfully finished. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `404` | `firewall_resource_not_found` | The resource the [Firewall](#tag/firewalls) should be applied to was not found | | `422` | `firewall_already_applied` | [Firewall](#tag/firewalls) is already applied to resource | | `422` | `incompatible_network_type` | The network type of the resource is not supported by [Firewalls](#tag/firewalls) | | `422` | `private_net_only_server` | The [Server](#tag/servers) the [Firewall](#tag/firewalls) should be applied to has no public interface |
- Lua path
app.integrations.hetzner.apply_resources- Full name
hetzner.hetzner_apply_firewall_to_resources
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
remove_from_resources Write
Removes a [Firewall](#tag/firewalls) from multiple resources. Supported resources: - [Servers](#tag/servers) (with a public network interface) A [Firewall](#tag/firewalls) is removed from a resource once the related [Action](#tag/actions) with command `remove_firewall` successfully finished. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `404` | `firewall_resource_not_found` | The resource the [Firewall](#tag/firewalls) should be removed from was not found | | `422` | `firewall_managed_by_label_selector` | [Firewall](#tag/firewall) is applied via a [Label Selector](#description/label-selector) and cannot be removed manually |
- Lua path
app.integrations.hetzner.remove_from_resources- Full name
hetzner.hetzner_remove_firewall_from_resources
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
set_rules Write
Set the rules of a [Firewall](#tag/firewalls). Overwrites the existing rules with the given ones. Pass an empty array to remove all rules. Rules are limited to 50 entries per [Firewall](#tag/firewalls) and [500 effective rules](https://docs.hetzner.com/cloud/firewalls/overview#limits).
- Lua path
app.integrations.hetzner.set_rules- Full name
hetzner.hetzner_set_firewall_rules
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_firewall Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific [Action](#tag/actions) for a [Firewall](#tag/firewalls).
- Lua path
app.integrations.hetzner.get_action_firewall- Full name
hetzner.hetzner_get_firewall_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_floating_ips Read
List multiple [Floating IPs](#tag/floating-ips). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_floating_ips- Full name
hetzner.hetzner_list_floating_ips
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_floating_ip Write
Create a [Floating IP](#tag/floating-ips). Provide the `server` attribute to assign the [Floating IP](#tag/floating-ips) to that server or provide a `home_location` to locate the [Floating IP](#tag/floating-ips) at. Note that the [Floating IP](#tag/floating-ips) can be assigned to a [Server](#tag/servers) in any [Location](#tag/locations) later on. For optimal routing it is advised to use the [Floating IP](#tag/floating-ips) in the same [Location](#tag/locations) it was created in.
- Lua path
app.integrations.hetzner.create_floating_ip- Full name
hetzner.hetzner_create_floating_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Lists multiple [Actions](#tag/actions). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_floating_ips_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a single [Action](#tag/actions).
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_floating_ips_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_floating_ip Read
Returns a single [Floating IP](#tag/floating-ips).
- Lua path
app.integrations.hetzner.get_floating_ip- Full name
hetzner.hetzner_get_floating_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_floating_ip Write
Update a [Floating IP](#tag/floating-ips).
- Lua path
app.integrations.hetzner.update_floating_ip- Full name
hetzner.hetzner_update_floating_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_floating_ip Write
Deletes a [Floating IP](#tag/floating-ips). If assigned to a [Server](#tag/servers) the [Floating IP](#tag/floating-ips) will be unassigned automatically until 1 May 2026. After this date, the [Floating IP](#tag/floating-ips) needs to be unassigned before it can be deleted. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `must_be_unassigned` | Error when IP is still assigned to a Resource. This error will appear as of 1 May 2026. |
- Lua path
app.integrations.hetzner.delete_floating_ip- Full name
hetzner.hetzner_delete_floating_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_floating_ip Read
Lists [Actions](#tag/actions) for a [Floating IP](#tag/floating-ips). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions_floating_ip- Full name
hetzner.hetzner_list_floating_ip_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
assign_floating_ip_server Write
Assigns a [Floating IP](#tag/floating-ips) to a [Server](#tag/servers). #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `floating_ip_assigned` | The [Floating IP](#tag/floating-ips) is already assigned |
- Lua path
app.integrations.hetzner.assign_floating_ip_server- Full name
hetzner.hetzner_assign_floating_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_reverse_dns_records_floating_ip Write
Change the reverse DNS records for this [Floating IP](#tag/floating-ips). Allows to modify the PTR records set for the IP address.
- Lua path
app.integrations.hetzner.change_reverse_dns_records_floating_ip- Full name
hetzner.hetzner_change_floating_ip_dns_ptr
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_floating_ip_protection Write
Changes the protection settings configured for the [Floating IP](#tag/floating-ips).
- Lua path
app.integrations.hetzner.change_floating_ip_protection- Full name
hetzner.hetzner_change_floating_ip_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
unassign_floating_ip Write
Unassigns a [Floating IP](#tag/floating-ips). Results in the IP being unreachable. Can be assigned to another resource again.
- Lua path
app.integrations.hetzner.unassign_floating_ip- Full name
hetzner.hetzner_unassign_floating_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_floating_ip Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific [Action](#tag/actions) for a [Floating IP](#tag/floating-ips).
- Lua path
app.integrations.hetzner.get_action_floating_ip- Full name
hetzner.hetzner_get_floating_ip_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_images Read
Returns all Image objects. You can select specific Image types only and sort the results by using URI parameters.
- Lua path
app.integrations.hetzner.list_images- Full name
hetzner.hetzner_list_images
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Returns all Action objects. You can `sort` the results by using the sort URI parameter, and filter them with the `status` and `id` parameter.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_images_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a specific Action object.
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_images_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_image Read
Returns a specific Image object.
- Lua path
app.integrations.hetzner.get_image- Full name
hetzner.hetzner_get_image
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_image Write
Updates the Image. You may change the description, convert a Backup Image to a Snapshot Image or change the Image labels. Only Images of type `snapshot` and `backup` can be updated.
- Lua path
app.integrations.hetzner.update_image- Full name
hetzner.hetzner_update_image
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_image Write
Deletes an Image. Only Images of type `snapshot` and `backup` can be deleted.
- Lua path
app.integrations.hetzner.delete_image- Full name
hetzner.hetzner_delete_image
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_image Read
Returns all Action objects for an Image. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter.
- Lua path
app.integrations.hetzner.list_actions_image- Full name
hetzner.hetzner_list_image_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_image_protection Write
Changes the protection configuration of the Image. Can only be used on snapshots.
- Lua path
app.integrations.hetzner.change_image_protection- Full name
hetzner.hetzner_change_image_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_image Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific Action for an Image.
- Lua path
app.integrations.hetzner.get_action_image- Full name
hetzner.hetzner_get_image_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_isos Read
Returns all available ISO objects.
- Lua path
app.integrations.hetzner.list_isos- Full name
hetzner.hetzner_list_isos
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_iso Read
Returns a specific ISO object.
- Lua path
app.integrations.hetzner.get_iso- Full name
hetzner.hetzner_get_iso
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_load_balancer_types Read
Gets all Load Balancer type objects.
- Lua path
app.integrations.hetzner.list_load_balancer_types- Full name
hetzner.hetzner_list_load_balancer_types
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_load_balancer_type Read
Gets a specific Load Balancer type object.
- Lua path
app.integrations.hetzner.get_load_balancer_type- Full name
hetzner.hetzner_get_load_balancer_type
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_load_balancers Read
Gets all existing Load Balancers that you have available.
- Lua path
app.integrations.hetzner.list_load_balancers- Full name
hetzner.hetzner_list_load_balancers
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_load_balancer Write
Creates a Load Balancer. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `412` | `source_port_already_used` | The source port you are trying to add is already in use | | `422` | `ip_not_owned` | The IP is not owned by the owner of the project of the Load Balancer | | `422` | `load_balancer_not_attached_to_network` | The Load Balancer is not attached to a network | | `422` | `resolve_cloud_private_targets_error` | The server you are trying to add as a target is not attached to the same network as the Load Balancer | | `422` | `resolve_cloud_public_targets_error` | The server that you are trying to add as a public target does not have a public IPv4 address | | `422` | `target_already_defined` | The Load Balancer target you are trying to define is already defined |
- Lua path
app.integrations.hetzner.create_load_balancer- Full name
hetzner.hetzner_create_load_balancer
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Returns all Action objects. You can `sort` the results by using the sort URI parameter, and filter them with the `status` and `id` parameter.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_load_balancers_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a specific Action object.
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_load_balancers_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_load_balancer Read
Gets a specific Load Balancer object.
- Lua path
app.integrations.hetzner.get_load_balancer- Full name
hetzner.hetzner_get_load_balancer
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_load_balancer Write
Updates a Load Balancer. You can update a Load Balancer's name and a Load Balancer's labels. Note: if the Load Balancer object changes during the request, the response will be a "conflict" error.
- Lua path
app.integrations.hetzner.update_load_balancer- Full name
hetzner.hetzner_update_load_balancer
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_load_balancer Write
Deletes a Load Balancer.
- Lua path
app.integrations.hetzner.delete_load_balancer- Full name
hetzner.hetzner_delete_load_balancer
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_load_balancer Read
Returns all Action objects for a Load Balancer. You can sort the results by using the `sort` URI parameter, and filter them with the `status` parameter.
- Lua path
app.integrations.hetzner.list_actions_load_balancer- Full name
hetzner.hetzner_list_load_balancer_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
add_service Write
Adds a service to a Load Balancer. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `412` | `source_port_already_used` | The source port you are trying to add is already in use |
- Lua path
app.integrations.hetzner.add_service- Full name
hetzner.hetzner_add_load_balancer_service
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
add_target Write
Adds a target to a Load Balancer. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `ip_not_in_vswitch_subnet` | The IP you are trying to add does not belong to the vswitch subnet of the attached network | | `422` | `ip_not_owned` | The IP you are trying to add as a target is not owned by the Project owner | | `422` | `load_balancer_public_interface_disabled` | The Load Balancer's public network interface is disabled | | `422` | `load_balancer_not_attached_to_network` | The Load Balancer is not attached to a network | | `422` | `network_has_no_vswitch_subnet` | The given IP is private but attached network does not have a vswitch subnet | | `422` | `resolve_cloud_private_targets_error` | The server you are trying to add as a target is not attached to the same network as the Load Balancer | | `422` | `resolve_cloud_public_targets_error` | The server that you are trying to add as a public target does not have a public IPv4 address | | `422` | `target_already_defined` | The Load Balancer target you are trying to define is already defined |
- Lua path
app.integrations.hetzner.add_target- Full name
hetzner.hetzner_add_load_balancer_target
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
attach_load_balancer_network Write
Attach a Load Balancer to a Network. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `load_balancer_already_attached` | The Load Balancer is already attached to a network | | `422` | `ip_not_available` | The provided Network IP is not available | | `422` | `no_subnet_available` | No Subnet or IP is available for the Load Balancer within the network |
- Lua path
app.integrations.hetzner.attach_load_balancer_network- Full name
hetzner.hetzner_attach_load_balancer_to_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_algorithm Write
Change the algorithm that determines to which target new requests are sent.
- Lua path
app.integrations.hetzner.change_algorithm- Full name
hetzner.hetzner_change_load_balancer_algorithm
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_reverse_dns_entry_this_load_balancer Write
Changes the hostname that will appear when getting the hostname belonging to the public IPs (IPv4 and IPv6) of this Load Balancer. Floating IPs assigned to the Server are not affected by this.
- Lua path
app.integrations.hetzner.change_reverse_dns_entry_this_load_balancer- Full name
hetzner.hetzner_change_load_balancer_dns_ptr
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_load_balancer_protection Write
Changes the protection configuration of a Load Balancer.
- Lua path
app.integrations.hetzner.change_load_balancer_protection- Full name
hetzner.hetzner_change_load_balancer_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_type_load_balancer Write
Changes the type (Max Services, Max Targets and Max Connections) of a Load Balancer. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `invalid_load_balancer_type` | The Load Balancer type does not fit for the given Load Balancer |
- Lua path
app.integrations.hetzner.change_type_load_balancer- Full name
hetzner.hetzner_change_load_balancer_type
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_service Write
Delete a service of a Load Balancer.
- Lua path
app.integrations.hetzner.delete_service- Full name
hetzner.hetzner_delete_load_balancer_service
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
detach_load_balancer_from_network Write
Detaches a Load Balancer from a network.
- Lua path
app.integrations.hetzner.detach_load_balancer_from_network- Full name
hetzner.hetzner_detach_load_balancer_from_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
disable_public_interface_load_balancer Write
Disable the public interface of a Load Balancer. The Load Balancer will be not accessible from the internet via its public IPs. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `load_balancer_not_attached_to_network` | The Load Balancer is not attached to a network | | `422` | `targets_without_use_private_ip` | The Load Balancer has targets that use the public IP instead of the private IP |
- Lua path
app.integrations.hetzner.disable_public_interface_load_balancer- Full name
hetzner.hetzner_disable_load_balancer_public_interface
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
enable_public_interface_load_balancer Write
Enable the public interface of a Load Balancer. The Load Balancer will be accessible from the internet via its public IPs.
- Lua path
app.integrations.hetzner.enable_public_interface_load_balancer- Full name
hetzner.hetzner_enable_load_balancer_public_interface
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
remove_target Write
Removes a target from a Load Balancer.
- Lua path
app.integrations.hetzner.remove_target- Full name
hetzner.hetzner_remove_load_balancer_target
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_service Write
Updates a Load Balancer Service. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `source_port_already_used` | The source port you are trying to add is already in use |
- Lua path
app.integrations.hetzner.update_service- Full name
hetzner.hetzner_update_load_balancer_service
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_load_balancer Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific Action for a Load Balancer.
- Lua path
app.integrations.hetzner.get_action_load_balancer- Full name
hetzner.hetzner_get_load_balancer_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_metrics_loadbalancer Read
You must specify the type of metric to get: `open_connections`, `connections_per_second`, `requests_per_second` or `bandwidth`. You can also specify more than one type by comma separation, e.g. `requests_per_second,bandwidth`. Depending on the type you will get different time series data: |Type | Timeseries | Unit | Description | |---- |------------|------|-------------| | open_connections | open_connections | number | Open connections | | connections_per_second | connections_per_second | connections/s | Connections per second | | requests_per_second | requests_per_second | requests/s | Requests per second | | bandwidth | bandwidth.in | bytes/s | Ingress bandwidth | || bandwidth.out | bytes/s | Egress bandwidth | Metrics are available for the last 30 days only. If you do not provide the step argument we will automatically adjust it so that 200 samples are returned. We limit the number of samples to a maximum of 500 and will adjust the step parameter accordingly.
- Lua path
app.integrations.hetzner.get_metrics_loadbalancer- Full name
hetzner.hetzner_get_load_balancer_metrics
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_locations Read
Returns all [Locations](#tag/locations).
- Lua path
app.integrations.hetzner.list_locations- Full name
hetzner.hetzner_list_locations
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_location Read
Returns a [Location](#tag/locations).
- Lua path
app.integrations.hetzner.get_location- Full name
hetzner.hetzner_get_location
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_networks Read
List multiple [Networks](#tag/networks). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_networks- Full name
hetzner.hetzner_list_networks
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_network Write
Creates a [Network](#tag/networks). The provided `ip_range` can only be extended later on, but not reduced. Subnets can be added now or later on using the [add subnet action](#tag/network-actions/add_network_subnet). If you do not specify an `ip_range` for the subnet the first available /24 range will be used. Routes can be added now or later by using the [add route action](#tag/network-actions/add_network_route).
- Lua path
app.integrations.hetzner.create_network- Full name
hetzner.hetzner_create_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Lists multiple [Actions](#tag/actions). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_networks_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a single [Action](#tag/actions).
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_networks_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_network Read
Get a specific [Network](#tag/networks).
- Lua path
app.integrations.hetzner.get_network- Full name
hetzner.hetzner_get_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_network Write
Update a [Network](#tag/networks). If a change is currently being performed on this [Network](#tag/networks), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.update_network- Full name
hetzner.hetzner_update_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_network Write
Deletes a [Network](#tag/networks). Attached resources will be detached automatically.
- Lua path
app.integrations.hetzner.delete_network- Full name
hetzner.hetzner_delete_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_network Read
Lists [Actions](#tag/actions) for a [Network](#tag/networks). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions_network- Full name
hetzner.hetzner_list_network_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
add_route_network Write
Adds a route entry to a [Network](#tag/networks). If a change is currently being performed on this [Network](#tag/networks), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.add_route_network- Full name
hetzner.hetzner_add_network_route
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
add_subnet_network Write
Adds a new subnet to the [Network](#tag/networks). If the subnet `ip_range` is not provided, the first available `/24` IP range will be used. If a change is currently being performed on this [Network](#tag/networks), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.add_subnet_network- Full name
hetzner.hetzner_add_network_subnet
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_ip_range_network Write
Changes the IP range of a [Network](#tag/networks). The following restrictions apply to changing the IP range: - IP ranges can only be extended and never shrunk. - IPs can only be added to the end of the existing range, therefore only the netmask is allowed to be changed. To update the routes on the connected [Servers](#tag/servers), they need to be rebooted or the routes to be updated manually. For example if the [Network](#tag/networks) has a range of `10.0.0.0/16` to extend it the new range has to start with the IP `10.0.0.0` as well. The netmask `/16` can be changed to a smaller one then `16` therefore increasing the IP range. A valid entry would be `10.0.0.0/15`, `10.0.0.0/14` or `10.0.0.0/13` and so on. If a change is currently being performed on this [Network](#tag/networks), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.change_ip_range_network- Full name
hetzner.hetzner_change_network_ip_range
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_network_protection Write
Changes the protection settings of a [Network](#tag/networks). If a change is currently being performed on this [Network](#tag/networks), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.change_network_protection- Full name
hetzner.hetzner_change_network_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_route_from_network Write
Delete a route entry from a [Network](#tag/networks). If a change is currently being performed on this [Network](#tag/networks), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.delete_route_from_network- Full name
hetzner.hetzner_delete_network_route
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_subnet_from_network Write
Deletes a single subnet entry from a [Network](#tag/networks). Subnets containing attached resources can not be deleted, they must be detached beforehand. If a change is currently being performed on this [Network](#tag/networks), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.delete_subnet_from_network- Full name
hetzner.hetzner_delete_network_subnet
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_network Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific [Action](#tag/actions) for a [Network](#tag/networks).
- Lua path
app.integrations.hetzner.get_action_network- Full name
hetzner.hetzner_get_network_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_placement_groups Read
Returns all Placement Group objects.
- Lua path
app.integrations.hetzner.list_placement_groups- Full name
hetzner.hetzner_list_placement_groups
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_placementgroup Write
Creates a new Placement Group.
- Lua path
app.integrations.hetzner.create_placementgroup- Full name
hetzner.hetzner_create_placement_group
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_placementgroup Read
Gets a specific Placement Group object.
- Lua path
app.integrations.hetzner.get_placementgroup- Full name
hetzner.hetzner_get_placement_group
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_placementgroup Write
Updates the Placement Group properties. Note: if the Placement Group object changes during the request, the response will be a "conflict" error.
- Lua path
app.integrations.hetzner.update_placementgroup- Full name
hetzner.hetzner_update_placement_group
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_placementgroup Write
Deletes a Placement Group.
- Lua path
app.integrations.hetzner.delete_placementgroup- Full name
hetzner.hetzner_delete_placement_group
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_all_prices Read
Returns prices for all resources available on the platform. VAT and currency of the Project owner are used for calculations. Both net and gross prices are included in the response.
- Lua path
app.integrations.hetzner.get_all_prices- Full name
hetzner.hetzner_get_pricing
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_primary_ips Read
List multiple [Primary IPs](#tag/primary-ips). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_primary_ips- Full name
hetzner.hetzner_list_primary_ips
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_primary_ip Write
Create a new [Primary IP](#tag/primary-ips). Can optionally be assigned to a resource by providing an `assignee_id` and `assignee_type`. If not assigned to a resource the `location` key needs to be provided. This can be either the ID or the name of the [Location](#tag/locations) this [Primary IP](#tag/primary-ips) shall be created in. A [Primary IP](#tag/primary-ips) can only be assigned to resource in the same [Location](#tag/locations) later on. The `datacenter` key is deprecated in favor of `location` and will be removed after 01 July 2026. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `server_not_stopped` | The specified [Server](#tag/servers) is running, but needs to be powered off | | `422` | `server_has_ipv4` | The [Server](#tag/servers) already has an ipv4 address | | `422` | `server_has_ipv6` | The [Server](#tag/servers) already has an ipv6 address |
- Lua path
app.integrations.hetzner.create_primary_ip- Full name
hetzner.hetzner_create_primary_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Lists multiple [Actions](#tag/actions). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_primary_ips_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a single [Action](#tag/actions).
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_primary_ips_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_primary_ip Read
Returns all [Actions](#tag/actions) for a [Primary IP](#tag/primary-ips). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions_primary_ip- Full name
hetzner.hetzner_list_primary_ip_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_primary_ip Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific [Action](#tag/actions) for a [Primary IP](#tag/primary-ips).
- Lua path
app.integrations.hetzner.get_action_primary_ip- Full name
hetzner.hetzner_get_primary_ip_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_primary_ip Read
Returns a [Primary IP](#tag/primary-ips).
- Lua path
app.integrations.hetzner.get_primary_ip- Full name
hetzner.hetzner_get_primary_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_primary_ip Write
Update a [Primary IP](#tag/primary-ips). If another change is concurrently performed on this [Primary IP](#tag/primary-ips), a error response with code `conflict` will be returned.
- Lua path
app.integrations.hetzner.update_primary_ip- Full name
hetzner.hetzner_update_primary_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_primary_ip Write
Deletes a [Primary IP](#tag/primary-ips). The [Server](#tag/servers) must be powered off (status `off`) in order for this operation to succeed. If assigned to a [Server](#tag/servers) the [Primary IP](#tag/primary-ips) will be unassigned automatically until 1 May 2026. After this date, the [Primary IP](#tag/primary-ips) needs to be unassigned before it can be deleted. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `must_be_unassigned` | Error when IP is still assigned to a Resource. This error will appear as of 1 May 2026. |
- Lua path
app.integrations.hetzner.delete_primary_ip- Full name
hetzner.hetzner_delete_primary_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
assign_primary_ip_resource Write
Assign a [Primary IP](#tag/primary-ips) to a resource. A [Server](#tag/servers) can only have one [Primary IP](#tag/primary-ips) of type `ipv4` and one of type `ipv6` assigned. If you need more IPs use [Floating IPs](#tag/floating-ips). A [Server](#tag/servers) must be powered off (status `off`) in order for this operation to succeed. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `server_not_stopped` | The [Server](#tag/servers) is running, but needs to be powered off | | `422` | `primary_ip_already_assigned` | [Primary IP](#tag/primary-ips) is already assigned to a different [Server](#tag/servers) | | `422` | `server_has_ipv4` | The [Server](#tag/servers) already has an IPv4 address | | `422` | `server_has_ipv6` | The [Server](#tag/servers) already has an IPv6 address |
- Lua path
app.integrations.hetzner.assign_primary_ip_resource- Full name
hetzner.hetzner_assign_primary_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_reverse_dns_records_primary_ip Write
Change the reverse DNS records for this [Primary IP](#tag/primary-ips). Allows to modify the PTR records set for the IP address.
- Lua path
app.integrations.hetzner.change_reverse_dns_records_primary_ip- Full name
hetzner.hetzner_change_primary_ip_dns_ptr
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_primary_ip_protection Write
Changes the protection configuration of a [Primary IP](#tag/primary-ips). A [Primary IPs](#tag/primary-ips) deletion protection can only be enabled if its `auto_delete` property is set to `false`.
- Lua path
app.integrations.hetzner.change_primary_ip_protection- Full name
hetzner.hetzner_change_primary_ip_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
unassign_primary_ip_from_resource Write
Unassign a [Primary IP](#tag/primary-ips) from a resource. A [Server](#tag/servers) must be powered off (status `off`) in order for this operation to succeed. A [Server](#tag/servers) requires at least one network interface (public or private) to be powered on. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `server_not_stopped` | The [Server](#tag/servers) is running, but needs to be powered off | | `422` | `server_is_load_balancer_target` | The [Server](#tag/servers) IPv4 address is a loadbalancer target |
- Lua path
app.integrations.hetzner.unassign_primary_ip_from_resource- Full name
hetzner.hetzner_unassign_primary_ip
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_server_types Read
Gets all Server type objects.
- Lua path
app.integrations.hetzner.list_server_types- Full name
hetzner.hetzner_list_server_types
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_server_type Read
Gets a specific Server type object.
- Lua path
app.integrations.hetzner.get_server_type- Full name
hetzner.hetzner_get_server_type
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_servers Read
Returns all existing Server objects.
- Lua path
app.integrations.hetzner.list_servers- Full name
hetzner.hetzner_list_servers
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_server Write
Creates a new Server. Returns preliminary information about the Server as well as an Action that covers progress of creation. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `412` | `primary_ip_version_mismatch` | The specified Primary IP has the wrong IP Version | | `422` | `placement_error` | An error during the placement occurred | | `422` | `primary_ip_assigned` | The specified Primary IP is already assigned to a server | | `422` | `primary_ip_datacenter_mismatch` | he specified Primary IP is in a different datacenter |
- Lua path
app.integrations.hetzner.create_server- Full name
hetzner.hetzner_create_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Returns all Action objects. You can `sort` the results by using the sort URI parameter, and filter them with the `status` and `id` parameter.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_servers_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a specific Action object.
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_servers_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_server Read
Returns a specific Server object. The Server must exist inside the Project.
- Lua path
app.integrations.hetzner.get_server- Full name
hetzner.hetzner_get_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_server Write
Updates a Server. You can update a Server's name and a Server's labels. Please note that Server names must be unique per Project and valid hostnames as per RFC 1123 (i.e. may only contain letters, digits, periods, and dashes).
- Lua path
app.integrations.hetzner.update_server- Full name
hetzner.hetzner_update_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_server Write
Deletes a Server. This immediately removes the Server from your account, and it is no longer accessible. Any resources attached to the server (like Volumes, Primary IPs, Floating IPs, Firewalls, Placement Groups) are detached while the server is deleted.
- Lua path
app.integrations.hetzner.delete_server- Full name
hetzner.hetzner_delete_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_server Read
Returns all Action objects for a Server. You can `sort` the results by using the sort URI parameter, and filter them with the `status` parameter.
- Lua path
app.integrations.hetzner.list_actions_server- Full name
hetzner.hetzner_list_server_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
add_server_placement_group Write
Adds a Server to a Placement Group. Server must be powered off for this command to succeed. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `server_not_stopped` | The action requires a stopped server | | `422` | `already_in_placement_group` | The server is already part of a placement group |
- Lua path
app.integrations.hetzner.add_server_placement_group- Full name
hetzner.hetzner_add_server_to_placement_group
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
attach_iso_server Write
Attaches an ISO to a Server. The Server will immediately see it as a new disk. An already attached ISO will automatically be detached before the new ISO is attached. Servers with attached ISOs have a modified boot order: They will try to boot from the ISO first before falling back to hard disk.
- Lua path
app.integrations.hetzner.attach_iso_server- Full name
hetzner.hetzner_attach_server_iso
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
attach_server_network Write
Attaches a Server to a network. This will complement the fixed public Server interface by adding an additional ethernet interface to the Server which is connected to the specified network. The Server will get an IP auto assigned from a subnet of type `server` in the same `network_zone`. Using the `alias_ips` attribute you can also define one or more additional IPs to the Servers. Please note that you will have to configure these IPs by hand on your Server since only the primary IP will be given out by DHCP. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `server_already_attached` | The server is already attached to the network | | `422` | `ip_not_available` | The provided Network IP is not available | | `422` | `no_subnet_available` | No Subnet or IP is available for the Server within the network | | `422` | `networks_overlap` | The network IP range overlaps with one of the server networks |
- Lua path
app.integrations.hetzner.attach_server_network- Full name
hetzner.hetzner_attach_server_to_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_alias_ips_network Write
Changes the alias IPs of an already attached Network. Note that the existing aliases for the specified Network will be replaced with these provided in the request body. So if you want to add an alias IP, you have to provide the existing ones from the Network plus the new alias IP in the request body.
- Lua path
app.integrations.hetzner.change_alias_ips_network- Full name
hetzner.hetzner_change_server_alias_ips
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_reverse_dns_entry_this_server Write
Changes the hostname that will appear when getting the hostname belonging to the primary IPs (IPv4 and IPv6) of this Server. Floating IPs assigned to the Server are not affected by this.
- Lua path
app.integrations.hetzner.change_reverse_dns_entry_this_server- Full name
hetzner.hetzner_change_server_dns_ptr
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_server_protection Write
Changes the protection configuration of the Server.
- Lua path
app.integrations.hetzner.change_server_protection- Full name
hetzner.hetzner_change_server_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_type_server Write
Changes the type (Cores, RAM and disk sizes) of a Server. Server must be powered off for this command to succeed. This copies the content of its disk, and starts it again. You can only migrate to Server types with the same `storage_type` and equal or bigger disks. Shrinking disks is not possible as it might destroy data. If the disk gets upgraded, the Server type can not be downgraded any more. If you plan to downgrade the Server type, set `upgrade_disk` to `false`. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `invalid_server_type` | The server type does not fit for the given server or is deprecated | | `422` | `server_not_stopped` | The action requires a stopped server |
- Lua path
app.integrations.hetzner.change_type_server- Full name
hetzner.hetzner_change_server_type
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_image_from_server Write
Creates an Image (snapshot) from a Server by copying the contents of its disks. This creates a snapshot of the current state of the disk and copies it into an Image. If the Server is currently running you must make sure that its disk content is consistent. Otherwise, the created Image may not be readable. To make sure disk content is consistent, we recommend to shut down the Server prior to creating an Image. You can either create a `backup` Image that is bound to the Server and therefore will be deleted when the Server is deleted, or you can create a `snapshot` Image which is completely independent of the Server it was created from and will survive Server deletion. Backup Images are only available when the backup option is enabled for the Server. Snapshot Images are billed on a per GB basis.
- Lua path
app.integrations.hetzner.create_image_from_server- Full name
hetzner.hetzner_create_server_image
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
detach_server_from_network Write
Detaches a Server from a network. The interface for this network will vanish.
- Lua path
app.integrations.hetzner.detach_server_from_network- Full name
hetzner.hetzner_detach_server_from_network
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
detach_iso_from_server Write
Detaches an ISO from a Server. In case no ISO Image is attached to the Server, the status of the returned Action is immediately set to `success`.
- Lua path
app.integrations.hetzner.detach_iso_from_server- Full name
hetzner.hetzner_detach_server_iso
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
disable_backups_server Write
Disables the automatic backup option and deletes all existing Backups for a Server. No more additional charges for backups will be made. Caution: This immediately removes all existing backups for the Server!
- Lua path
app.integrations.hetzner.disable_backups_server- Full name
hetzner.hetzner_disable_server_backup
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
disable_rescue_mode_server Write
Disables the Hetzner Rescue System for a Server. This makes a Server start from its disks on next reboot. Rescue Mode is automatically disabled when you first boot into it or if you do not use it for 60 minutes. Disabling rescue mode will not reboot your Server - you will have to do this yourself.
- Lua path
app.integrations.hetzner.disable_rescue_mode_server- Full name
hetzner.hetzner_disable_server_rescue
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
enable_and_configure_backups_server Write
Enables and configures the automatic daily backup option for the Server. Enabling automatic backups will increase the price of the Server by 20%. In return, you will get seven slots where Images of type backup can be stored. Backups are automatically created daily.
- Lua path
app.integrations.hetzner.enable_and_configure_backups_server- Full name
hetzner.hetzner_enable_server_backup
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
enable_rescue_mode_server Write
Enable the Hetzner Rescue System for this Server. The next time a Server with enabled rescue mode boots it will start a special minimal Linux distribution designed for repair and reinstall. In case a Server cannot boot on its own you can use this to access a Server's disks. Rescue Mode is automatically disabled when you first boot into it or if you do not use it for 60 minutes. Enabling rescue mode will not [reboot](https://docs.hetzner.cloud/#server-actions-soft-reboot-a-server) your Server - you will have to do this yourself.
- Lua path
app.integrations.hetzner.enable_rescue_mode_server- Full name
hetzner.hetzner_enable_server_rescue
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
power_off_server Write
Cuts power to the Server. This forcefully stops it without giving the Server operating system time to gracefully stop. May lead to data loss, equivalent to pulling the power cord. Power off should only be used when shutdown does not work.
- Lua path
app.integrations.hetzner.power_off_server- Full name
hetzner.hetzner_poweroff_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
power_server Write
Starts a Server by turning its power on.
- Lua path
app.integrations.hetzner.power_server- Full name
hetzner.hetzner_poweron_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
soft_reboot_server Write
Reboots a Server gracefully by sending an ACPI request. The Server operating system must support ACPI and react to the request, otherwise the Server will not reboot.
- Lua path
app.integrations.hetzner.soft_reboot_server- Full name
hetzner.hetzner_reboot_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
rebuild_server_from_image Write
Rebuilds a Server overwriting its disk with the content of an Image, thereby **destroying all data** on the target Server The Image can either be one you have created earlier (`backup` or `snapshot` Image) or it can be a completely fresh `system` Image provided by us. You can get a list of all available Images with `GET /images`. Your Server will automatically be powered off before the rebuild command executes.
- Lua path
app.integrations.hetzner.rebuild_server_from_image- Full name
hetzner.hetzner_rebuild_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
remove_from_placement_group Write
Removes a Server from a Placement Group.
- Lua path
app.integrations.hetzner.remove_from_placement_group- Full name
hetzner.hetzner_remove_server_from_placement_group
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
request_console_server Write
Requests credentials for remote access via VNC over websocket to keyboard, monitor, and mouse for a Server. The provided URL is valid for 1 minute, after this period a new url needs to be created to connect to the Server. How long the connection is open after the initial connect is not subject to this timeout.
- Lua path
app.integrations.hetzner.request_console_server- Full name
hetzner.hetzner_request_server_console
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
reset_server Write
Cuts power to a Server and starts it again. This forcefully stops it without giving the Server operating system time to gracefully stop. This may lead to data loss, it's equivalent to pulling the power cord and plugging it in again. Reset should only be used when reboot does not work.
- Lua path
app.integrations.hetzner.reset_server- Full name
hetzner.hetzner_reset_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
reset_root_password_server Write
Resets the root password. Only works for Linux systems that are running the qemu guest agent. Server must be powered on (status `running`) in order for this operation to succeed. This will generate a new password for this Server and return it. If this does not succeed you can use the rescue system to netboot the Server and manually change your Server password by hand.
- Lua path
app.integrations.hetzner.reset_root_password_server- Full name
hetzner.hetzner_reset_server_password
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
shutdown_server Write
Shuts down a Server gracefully by sending an ACPI shutdown request. The Server operating system must support ACPI and react to the request, otherwise the Server will not shut down. Please note that the `action` status in this case only reflects whether the action was sent to the server. It does not mean that the server actually shut down successfully. If you need to ensure that the server is off, use the `poweroff` action.
- Lua path
app.integrations.hetzner.shutdown_server- Full name
hetzner.hetzner_shutdown_server
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_server Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific Action object for a Server.
- Lua path
app.integrations.hetzner.get_action_server- Full name
hetzner.hetzner_get_server_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_metrics_server Read
Get Metrics for specified Server. You must specify the type of metric to get: cpu, disk or network. You can also specify more than one type by comma separation, e.g. cpu,disk. Depending on the type you will get different time series data | Type | Timeseries | Unit | Description | |---------|-------------------------|-----------|------------------------------------------------------| | cpu | cpu | percent | Percent CPU usage | | disk | disk.0.iops.read | iop/s | Number of read IO operations per second | | | disk.0.iops.write | iop/s | Number of write IO operations per second | | | disk.0.bandwidth.read | bytes/s | Bytes read per second | | | disk.0.bandwidth.write | bytes/s | Bytes written per second | | network | network.0.pps.in | packets/s | Public Network interface packets per second received | | | network.0.pps.out | packets/s | Public Network interface packets per second sent | | | network.0.bandwidth.in | bytes/s | Public Network interface bytes/s received | | | network.0.bandwidth.out | bytes/s | Public Network interface bytes/s sent | Metrics are available for the last 30 days only. If you do not provide the step argument we will automatically adjust it so that a maximum of 200 samples are returned. We limit the number of samples returned to a maximum of 500 and will adjust the step parameter accordingly.
- Lua path
app.integrations.hetzner.get_metrics_server- Full name
hetzner.hetzner_get_server_metrics
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_ssh_keys Read
Returns all SSH key objects.
- Lua path
app.integrations.hetzner.list_ssh_keys- Full name
hetzner.hetzner_list_ssh_keys
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_ssh_key Write
Creates a new SSH key with the given `name` and `public_key`. Once an SSH key is created, it can be used in other calls such as creating Servers.
- Lua path
app.integrations.hetzner.create_ssh_key- Full name
hetzner.hetzner_create_ssh_key
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_ssh_key Read
Returns a specific SSH key object.
- Lua path
app.integrations.hetzner.get_ssh_key- Full name
hetzner.hetzner_get_ssh_key
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_ssh_key Write
Updates an SSH key. You can update an SSH key name and an SSH key labels.
- Lua path
app.integrations.hetzner.update_ssh_key- Full name
hetzner.hetzner_update_ssh_key
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_ssh_key Write
Deletes an SSH key. It cannot be used anymore.
- Lua path
app.integrations.hetzner.delete_ssh_key- Full name
hetzner.hetzner_delete_ssh_key
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_volumes Read
Gets all existing Volumes that you have available.
- Lua path
app.integrations.hetzner.list_volumes- Full name
hetzner.hetzner_list_volumes
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_volume Write
Creates a new Volume attached to a Server. If you want to create a Volume that is not attached to a Server, you need to provide the `location` key instead of `server`. This can be either the ID or the name of the Location this Volume will be created in. Note that a Volume can be attached to a Server only in the same Location as the Volume itself. Specifying the Server during Volume creation will automatically attach the Volume to that Server after it has been initialized. In that case, the `next_actions` key in the response is an array which contains a single `attach_volume` action. The minimum Volume size is 10GB and the maximum size is 10TB (10240GB). A volume's name can consist of alphanumeric characters, dashes, underscores, and dots, but has to start and end with an alphanumeric character. The total length is limited to 64 characters. Volume names must be unique per Project. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `no_space_left_in_location` | There is no volume space left in the given location |
- Lua path
app.integrations.hetzner.create_volume- Full name
hetzner.hetzner_create_volume
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Returns all Action objects. You can `sort` the results by using the sort URI parameter, and filter them with the `status` and `id` parameter.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_volumes_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a specific Action object.
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_volumes_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_volume Read
Gets a specific Volume object.
- Lua path
app.integrations.hetzner.get_volume- Full name
hetzner.hetzner_get_volume
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_volume Write
Updates the Volume properties.
- Lua path
app.integrations.hetzner.update_volume- Full name
hetzner.hetzner_update_volume
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_volume Write
Deletes a volume. All Volume data is irreversibly destroyed. The Volume must not be attached to a Server and it must not have delete protection enabled.
- Lua path
app.integrations.hetzner.delete_volume- Full name
hetzner.hetzner_delete_volume
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_volume Read
Returns all Action objects for a Volume. You can `sort` the results by using the sort URI parameter, and filter them with the `status` parameter.
- Lua path
app.integrations.hetzner.list_actions_volume- Full name
hetzner.hetzner_list_volume_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
attach_volume_server Write
Attaches a Volume to a Server. Works only if the Server is in the same Location as the Volume.
- Lua path
app.integrations.hetzner.attach_volume_server- Full name
hetzner.hetzner_attach_volume
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_volume_protection Write
Changes the protection configuration of a Volume.
- Lua path
app.integrations.hetzner.change_volume_protection- Full name
hetzner.hetzner_change_volume_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
detach_volume Write
Detaches a Volume from the Server it's attached to. You may attach it to a Server again at a later time.
- Lua path
app.integrations.hetzner.detach_volume- Full name
hetzner.hetzner_detach_volume
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
resize_volume Write
Changes the size of a Volume. Note that downsizing a Volume is not possible.
- Lua path
app.integrations.hetzner.resize_volume- Full name
hetzner.hetzner_resize_volume
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_volume Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific Action for a Volume.
- Lua path
app.integrations.hetzner.get_action_volume- Full name
hetzner.hetzner_get_volume_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_zones Read
Returns all [Zones](#tag/zones). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_zones- Full name
hetzner.hetzner_list_zones
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_zone Write
Creates a [Zone](#tag/zones). A default `SOA` and three `NS` resource records with the assigned Hetzner nameservers are created automatically.
- Lua path
app.integrations.hetzner.create_zone- Full name
hetzner.hetzner_create_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_zone Read
Returns a single [Zone](#tag/zones).
- Lua path
app.integrations.hetzner.get_zone- Full name
hetzner.hetzner_get_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_zone Write
Updates a [Zone](#tag/zones). To modify resource record sets ([RRSets](#tag/zone-rrsets)), use the [RRSet Actions endpoints](#tag/zone-rrset-actions).
- Lua path
app.integrations.hetzner.update_zone- Full name
hetzner.hetzner_update_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_zone Write
Deletes a [Zone](#tag/zones).
- Lua path
app.integrations.hetzner.delete_zone- Full name
hetzner.hetzner_delete_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
export_zone_file Read
Returns a generated [Zone](#tag/zones) file in BIND (RFC [1034](https://datatracker.ietf.org/doc/html/rfc1034)/[1035](https://datatracker.ietf.org/doc/html/rfc1035)) format. Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.export_zone_file- Full name
hetzner.hetzner_get_zone_zonefile
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions Read
Returns all [Zone](#tag/zones) [Actions](#tag/actions). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions- Full name
hetzner.hetzner_list_zones_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action Read
Returns a specific [Action](#tag/actions).
- Lua path
app.integrations.hetzner.get_action- Full name
hetzner.hetzner_get_zones_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_actions_zone Read
Returns all [Actions](#tag/actions) for a [Zone](#tag/zones). Use the provided URI parameters to modify the result.
- Lua path
app.integrations.hetzner.list_actions_zone- Full name
hetzner.hetzner_list_zone_actions
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_action_zone Read
**Deprecated**: This operation is deprecated, see our [changelog](https://docs.hetzner.cloud/changelog#2026-04-30-deprecate-get-resource-action-endpoints) for more details. Returns a specific [Action](#tag/actions) for a [Zone](#tag/zones).
- Lua path
app.integrations.hetzner.get_action_zone- Full name
hetzner.hetzner_get_zone_action
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_zone_primary_nameservers Write
Overwrites the primary nameservers of a [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in secondary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.change_zone_primary_nameservers- Full name
hetzner.hetzner_change_zone_primary_nameservers
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_zone_protection Write
Changes the protection configuration of a [Zone](#tag/zones).
- Lua path
app.integrations.hetzner.change_zone_protection- Full name
hetzner.hetzner_change_zone_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_zone_default_ttl Write
Changes the default Time To Live (TTL) of a [Zone](#tag/zones). This TTL is used for [RRSets](#tag/zone-rrsets) that do not explicitly define a TTL. Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.change_zone_default_ttl- Full name
hetzner.hetzner_change_zone_ttl
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
import_zone_file Write
Imports a zone file, replacing all resource record sets ([RRSets](#tag/zone-rrsets)). The import will fail if existing [RRSet](#tag/zone-rrsets) are `change` protected. See [Zone file import](#tag/zones/zone-file-import) for more details. Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.import_zone_file- Full name
hetzner.hetzner_import_zone_zonefile
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_rrsets Read
Returns all [RRSets](#tag/zone-rrsets) in the [Zone](#tag/zones). Use the provided URI parameters to modify the result. The maximum value for `per_page` on this endpoint is `100` instead of `50`. Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.list_rrsets- Full name
hetzner.hetzner_list_zone_rrsets
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_rrset Write
Create an [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.create_rrset- Full name
hetzner.hetzner_create_zone_rrset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_rrset Read
Returns a single [RRSet](#tag/zone-rrsets) from the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.get_rrset- Full name
hetzner.hetzner_get_zone_rrset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_rrset Write
Updates an [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.update_rrset- Full name
hetzner.hetzner_update_zone_rrset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_rrset Write
Deletes an [RRSet](#tag/zone-rrsets) from the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.delete_rrset- Full name
hetzner.hetzner_delete_zone_rrset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_rrset_protection Write
Changes the protection of an [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.change_rrset_protection- Full name
hetzner.hetzner_change_zone_rrset_protection
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
change_rrset_ttl Write
Changes the Time To Live (TTL) of an [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.change_rrset_ttl- Full name
hetzner.hetzner_change_zone_rrset_ttl
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
set_records_rrset Write
Overwrites the resource records (RRs) of an existing [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.set_records_rrset- Full name
hetzner.hetzner_set_zone_rrset_records
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
add_records_rrset Write
Adds resource records (RRs) to an [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). For convenience, the [RRSet](#tag/zone-rrsets) will be automatically created if it doesn't exist. Otherwise, the new records are appended to the existing [RRSet](#tag/zone-rrsets). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.add_records_rrset- Full name
hetzner.hetzner_add_zone_rrset_records
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
remove_records_from_rrset Write
Removes resource records (RRs) from an existing [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). For convenience, the [RRSet](#tag/zone-rrsets) will be automatically deleted if it doesn't contain any RRs afterwards. Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.remove_records_from_rrset- Full name
hetzner.hetzner_remove_zone_rrset_records
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_records_rrset Write
Updates resource records' (RRs) comments of an existing [RRSet](#tag/zone-rrsets) in the [Zone](#tag/zones). Only applicable for [Zones](#tag/zones) in primary mode. #### Operation specific errors | Status | Code | Description | | --- | --- | --- | | `422` | `incorrect_zone_mode` | This operation is not supported for this Zone's `mode`. |
- Lua path
app.integrations.hetzner.update_records_rrset- Full name
hetzner.hetzner_update_zone_rrset_records
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||