# Overview This is the official documentation for the Hetzner Cloud API. ## Introduction The Hetzner Cloud API operates over HTTPS and uses JSON as its data format. The API is a RESTful API and utilizes HTTP methods and HTTP status codes to specify requests and responses. As an alternative to working directly with our API you may also consider to use: - Our CLI program [hcloud](https://github.com/hetznercloud/cli) - Our [library for Go](https://github.com/hetznercloud/hcloud-go) - Our [library for Python](https://github.com/hetznercloud/hcloud-python) You can find even more libraries, tools an
naftiko: 1.0.0-alpha2
info:
label: Hetzner Cloud API
description: '# Overview This is the official documentation for the Hetzner Cloud API. ## Introduction The Hetzner Cloud
API operates over HTTPS and uses JSON as its data format. The API is a RESTful API and utilizes HTTP methods and HTTP
status codes to specify requests and responses. As an alternative to working directly with our API you may also consider
to use: - Our CLI program [hcloud](https://github.com/hetznercloud/cli) - Our [library for Go](https://github.com/hetznercloud/hcloud-go)
- Our [library for Python](https://github.com/hetznercloud/hcloud-python) You can find even more libraries, tools an'
tags:
- Hetzner
- API
created: '2026-05-06'
modified: '2026-05-06'
capability:
consumes:
- type: http
namespace: hetzner
baseUri: https://api.hetzner.cloud/v1
description: Hetzner Cloud API HTTP API.
authentication:
type: bearer
token: '{{HETZNER_TOKEN}}'
resources:
- name: actions
path: /actions
operations:
- name: get-actions
method: GET
description: Get multiple Actions
inputParameters:
- name: id
in: query
type: array
required: true
description: Filter the actions by ID. May be used multiple times. The response will only contain actions matching
the specified IDs.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: actions-id
path: /actions/{id}
operations:
- name: get-action
method: GET
description: Get an Action
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: certificates
path: /certificates
operations:
- name: list-certificates
method: GET
description: List Certificates
inputParameters:
- name: sort
in: query
type: array
description: Sort resources by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: name
in: query
type: string
description: Filter resources by their name. The response will only contain the resources matching exactly the specified
name.
- name: label_selector
in: query
type: string
description: Filter resources by labels. The response will only contain resources matching the label selector. For
more information, see "[Label Selector](#description/label
- name: type
in: query
type: array
description: Filter resources by type. May be used multiple times. The response will only contain the resources
with the specified type.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: create-certificate
method: POST
description: Create a Certificate
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: certificates-actions
path: /certificates/actions
operations:
- name: list-certificates-actions
method: GET
description: List Actions
inputParameters:
- name: id
in: query
type: array
description: Filter the actions by ID. May be used multiple times. The response will only contain actions matching
the specified IDs.
- name: sort
in: query
type: array
description: Sort actions by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: status
in: query
type: array
description: Filter the actions by status. May be used multiple times. The response will only contain actions matching
the specified statuses.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: certificates-actions-id
path: /certificates/actions/{id}
operations:
- name: get-certificates-action
method: GET
description: Get an Action
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: certificates-id
path: /certificates/{id}
operations:
- name: get-certificate
method: GET
description: Get a Certificate
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Certificate.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: update-certificate
method: PUT
description: Update a Certificate
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Certificate.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: delete-certificate
method: DELETE
description: Delete a Certificate
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Certificate.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: certificates-id-actions
path: /certificates/{id}/actions
operations:
- name: list-certificate-actions
method: GET
description: List Actions for a Certificate
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Certificate.
- name: sort
in: query
type: array
description: Sort actions by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: status
in: query
type: array
description: Filter the actions by status. May be used multiple times. The response will only contain actions matching
the specified statuses.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: certificates-id-actions-retry
path: /certificates/{id}/actions/retry
operations:
- name: retry-certificate
method: POST
description: Retry Issuance or Renewal
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Certificate.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: certificates-id-actions-action-id
path: /certificates/{id}/actions/{action_id}
operations:
- name: get-certificate-action
method: GET
description: Get an Action for a Certificate
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Certificate.
- name: action_id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: datacenters
path: /datacenters
operations:
- name: list-datacenters
method: GET
description: List Data Centers
inputParameters:
- name: name
in: query
type: string
description: Filter resources by their name. The response will only contain the resources matching exactly the specified
name.
- name: sort
in: query
type: array
description: Sort resources by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: datacenters-id
path: /datacenters/{id}
operations:
- name: get-datacenter
method: GET
description: Get a Data Center
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Data Center.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls
path: /firewalls
operations:
- name: list-firewalls
method: GET
description: List Firewalls
inputParameters:
- name: sort
in: query
type: array
description: Sort resources by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: name
in: query
type: string
description: Filter resources by their name. The response will only contain the resources matching exactly the specified
name.
- name: label_selector
in: query
type: string
description: Filter resources by labels. The response will only contain resources matching the label selector. For
more information, see "[Label Selector](#description/label
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: create-firewall
method: POST
description: Create a Firewall
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-actions
path: /firewalls/actions
operations:
- name: list-firewalls-actions
method: GET
description: List Actions
inputParameters:
- name: id
in: query
type: array
description: Filter the actions by ID. May be used multiple times. The response will only contain actions matching
the specified IDs.
- name: sort
in: query
type: array
description: Sort actions by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: status
in: query
type: array
description: Filter the actions by status. May be used multiple times. The response will only contain actions matching
the specified statuses.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-actions-id
path: /firewalls/actions/{id}
operations:
- name: get-firewalls-action
method: GET
description: Get an Action
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-id
path: /firewalls/{id}
operations:
- name: get-firewall
method: GET
description: Get a Firewall
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: update-firewall
method: PUT
description: Update a Firewall
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: delete-firewall
method: DELETE
description: Delete a Firewall
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-id-actions
path: /firewalls/{id}/actions
operations:
- name: list-firewall-actions
method: GET
description: List Actions for a Firewall
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
- name: sort
in: query
type: array
description: Sort actions by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: status
in: query
type: array
description: Filter the actions by status. May be used multiple times. The response will only contain actions matching
the specified statuses.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-id-actions-apply-to-resources
path: /firewalls/{id}/actions/apply_to_resources
operations:
- name: apply-firewall-to-resources
method: POST
description: Apply to Resources
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-id-actions-remove-from-resources
path: /firewalls/{id}/actions/remove_from_resources
operations:
- name: remove-firewall-from-resources
method: POST
description: Remove from Resources
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-id-actions-set-rules
path: /firewalls/{id}/actions/set_rules
operations:
- name: set-firewall-rules
method: POST
description: Set Rules
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: firewalls-id-actions-action-id
path: /firewalls/{id}/actions/{action_id}
operations:
- name: get-firewall-action
method: GET
description: Get an Action for a Firewall
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Firewall.
- name: action_id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips
path: /floating_ips
operations:
- name: list-floating-ips
method: GET
description: List Floating IPs
inputParameters:
- name: name
in: query
type: string
description: Filter resources by their name. The response will only contain the resources matching exactly the specified
name.
- name: label_selector
in: query
type: string
description: Filter resources by labels. The response will only contain resources matching the label selector. For
more information, see "[Label Selector](#description/label
- name: sort
in: query
type: array
description: Sort resources by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: create-floating-ip
method: POST
description: Create a Floating IP
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-actions
path: /floating_ips/actions
operations:
- name: list-floating-ips-actions
method: GET
description: List Actions
inputParameters:
- name: id
in: query
type: array
description: Filter the actions by ID. May be used multiple times. The response will only contain actions matching
the specified IDs.
- name: sort
in: query
type: array
description: Sort actions by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: status
in: query
type: array
description: Filter the actions by status. May be used multiple times. The response will only contain actions matching
the specified statuses.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-actions-id
path: /floating_ips/actions/{id}
operations:
- name: get-floating-ips-action
method: GET
description: Get an Action
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-id
path: /floating_ips/{id}
operations:
- name: get-floating-ip
method: GET
description: Get a Floating IP
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: update-floating-ip
method: PUT
description: Update a Floating IP
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: delete-floating-ip
method: DELETE
description: Delete a Floating IP
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-id-actions
path: /floating_ips/{id}/actions
operations:
- name: list-floating-ip-actions
method: GET
description: List Actions for a Floating IP
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
- name: sort
in: query
type: array
description: Sort actions by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: status
in: query
type: array
description: Filter the actions by status. May be used multiple times. The response will only contain actions matching
the specified statuses.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-id-actions-assign
path: /floating_ips/{id}/actions/assign
operations:
- name: assign-floating-ip
method: POST
description: Assign a Floating IP to a Server
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-id-actions-change-dns-ptr
path: /floating_ips/{id}/actions/change_dns_ptr
operations:
- name: change-floating-ip-dns-ptr
method: POST
description: Change reverse DNS records for a Floating IP
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-id-actions-change-protection
path: /floating_ips/{id}/actions/change_protection
operations:
- name: change-floating-ip-protection
method: POST
description: Change Floating IP Protection
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-id-actions-unassign
path: /floating_ips/{id}/actions/unassign
operations:
- name: unassign-floating-ip
method: POST
description: Unassign a Floating IP
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: floating-ips-id-actions-action-id
path: /floating_ips/{id}/actions/{action_id}
operations:
- name: get-floating-ip-action
method: GET
description: Get an Action for a Floating IP
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Floating IP.
- name: action_id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: images
path: /images
operations:
- name: list-images
method: GET
description: List Images
inputParameters:
- name: sort
in: query
type: array
description: Sort resources by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: type
in: query
type: array
description: Filter resources by type. May be used multiple times. The response will only contain the resources
with the specified type.
- name: status
in: query
type: array
description: Filter resources by status. May be used multiple times. The response will only contain the resources
with the specified status.
- name: bound_to
in: query
type: array
description: Filter Images by their linked Server ID. May be used multiple times. Only available for Images of type
`backup`.
- name: include_deprecated
in: query
type: boolean
description: Include deprecated Images.
- name: name
in: query
type: string
description: Filter resources by their name. The response will only contain the resources matching exactly the specified
name.
- name: label_selector
in: query
type: string
description: Filter resources by labels. The response will only contain resources matching the label selector. For
more information, see "[Label Selector](#description/label
- name: architecture
in: query
type: string
description: Filter resources by cpu architecture. The response will only contain the resources with the specified
cpu architecture.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: images-actions
path: /images/actions
operations:
- name: list-images-actions
method: GET
description: List Actions
inputParameters:
- name: id
in: query
type: array
description: Filter the actions by ID. May be used multiple times. The response will only contain actions matching
the specified IDs.
- name: sort
in: query
type: array
description: Sort actions by field and direction. May be used multiple times. For more information, see "[Sorting](#description/sorting)".
- name: status
in: query
type: array
description: Filter the actions by status. May be used multiple times. The response will only contain actions matching
the specified statuses.
- name: page
in: query
type: integer
description: Page number to return. For more information, see "[Pagination](#description/pagination)".
- name: per_page
in: query
type: integer
description: Maximum number of entries returned per page. For more information, see "[Pagination](#description/pagination)".
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: images-actions-id
path: /images/actions/{id}
operations:
- name: get-images-action
method: GET
description: Get an Action
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Action.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: images-id
path: /images/{id}
operations:
- name: get-image
method: GET
description: Get an Image
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Image.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: update-image
method: PUT
description: Update an Image
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Image.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: delete-image
method: DELETE
description: Delete an Image
inputParameters:
- name: id
in: path
type: integer
required: true
description: ID of the Image.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: images-id-actions
path: /images/{id}/actions
# --- truncated at 32 KB (103 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hetzner/refs/heads/main/capabilities/hetzner-capability.yaml