Hetzner Cloud API
  1. Volumes
Hetzner Cloud API
  • Actions
    • Get all Actions
      GET
    • Get an Action
      GET
  • Certificates
    • Get all Certificates
      GET
    • Create a Certificate
      POST
    • Delete a Certificate
      DELETE
    • Get a Certificate
      GET
    • Update a Certificate
      PUT
  • Certificate Actions
    • Get all Actions for a Certificate
      GET
    • Retry Issuance or Renewal
      POST
    • Get an Action for a Certificate
      GET
  • Datacenters
    • Get all Datacenters
      GET
    • Get a Datacenter
      GET
  • Firewalls
    • Get all Firewalls
      GET
    • Create a Firewall
      POST
    • Delete a Firewall
      DELETE
    • Get a Firewall
      GET
    • Update a Firewall
      PUT
  • Firewall Actions
    • Get all Actions for a Firewall
      GET
    • Apply to Resources
      POST
    • Remove from Resources
      POST
    • Set Rules
      POST
    • Get an Action for a Firewall
      GET
  • Floating IPs
    • Get all Floating IPs
    • Create a Floating IP
    • Delete a Floating IP
    • Get a Floating IP
    • Update a Floating IP
  • Floating IP Actions
    • Get all Actions for a Floating IP
    • Assign a Floating IP to a Server
    • Change reverse DNS entry for a Floating IP
    • Change Floating IP Protection
    • Unassign a Floating IP
    • Get an Action for a Floating IP
  • Images
    • Get all Images
    • Delete an Image
    • Get an Image
    • Update an Image
  • Image Actions
    • Get all Actions for an Image
    • Change Image Protection
    • Get an Action for an Image
  • ISOs
    • Get all ISOs
    • Get an ISO
  • Load Balancer Types
    • Get all Load Balancer Types
    • Get a Load Balancer Type
  • Load Balancers
    • Get all Load Balancers
    • Create a Load Balancer
    • Delete a Load Balancer
    • Get a Load Balancer
    • Update a Load Balancer
    • Get Metrics for a LoadBalancer
  • Load Balancer Actions
    • Get all Actions for a Load Balancer
    • Add Service
    • Add Target
    • Attach a Load Balancer to a Network
    • Change Algorithm
    • Change reverse DNS entry for this Load Balancer
    • Change Load Balancer Protection
    • Change the Type of a Load Balancer
    • Delete Service
    • Detach a Load Balancer from a Network
    • Disable the public interface of a Load Balancer
    • Enable the public interface of a Load Balancer
    • Remove Target
    • Update Service
    • Get an Action for a Load Balancer
  • Locations
    • Get all Locations
    • Get a Location
  • Networks
    • Get all Networks
    • Create a Network
    • Delete a Network
    • Get a Network
    • Update a Network
  • Network Actions
    • Get all Actions for a Network
    • Add a route to a Network
    • Add a subnet to a Network
    • Change IP range of a Network
    • Change Network Protection
    • Delete a route from a Network
    • Delete a subnet from a Network
    • Get an Action for a Network
  • Placement Groups
    • Get all PlacementGroups
    • Create a PlacementGroup
    • Delete a PlacementGroup
    • Get a PlacementGroup
    • Update a PlacementGroup
  • Pricing
    • Get all prices
  • Server Types
    • Get all Server Types
    • Get a Server Type
  • Servers
    • Get all Servers
    • Create a Server
    • Delete a Server
    • Get a Server
    • Update a Server
    • Get Metrics for a Server
  • Server Actions
    • Get all Actions for a Server
    • Add a Server to a Placement Group
    • Attach an ISO to a Server
    • Attach a Server to a Network
    • Change alias IPs of a Network
    • Change reverse DNS entry for this Server
    • Change Server Protection
    • Change the Type of a Server
    • Create Image from a Server
    • Detach a Server from a Network
    • Detach an ISO from a Server
    • Disable Backups for a Server
    • Disable Rescue Mode for a Server
    • Enable and Configure Backups for a Server
    • Enable Rescue Mode for a Server
    • Power off a Server
    • Power on a Server
    • Soft-reboot a Server
    • Rebuild a Server from an Image
    • Remove from Placement Group
    • Request Console for a Server
    • Reset a Server
    • Reset root Password of a Server
    • Shutdown a Server
    • Get an Action for a Server
  • SSH Keys
    • Get all SSH keys
    • Create an SSH key
    • Delete an SSH key
    • Get a SSH key
    • Update an SSH key
  • Volumes
    • Get all Volumes
      GET
    • Create a Volume
      POST
    • Delete a Volume
      DELETE
    • Get a Volume
      GET
    • Update a Volume
      PUT
  • Volume Actions
    • Get all Actions for a Volume
    • Attach Volume to a Server
    • Change Volume Protection
    • Detach Volume
    • Resize Volume
    • Get an Action for a Volume
  • Primary IPs
    • Get all Primary IPs
    • Create a Primary IP
    • Delete a Primary IP
    • Get a Primary IP
    • Update a Primary IP
  • Primary IP Actions
    • Assign a Primary IP to a resource
    • Change reverse DNS entry for a Primary IP
    • Change Primary IP Protection
    • Unassign a Primary IP from a resource
  1. Volumes

Create a Volume

POST
/volumes
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.

Call specific error codes#

CodeDescription
no_space_left_in_locationThere is no volume space left in the given location

Request

Body Params application/json

Examples

Responses

🟢201The `volume` key contains the Volume that was just created The `action` key contains the Action tracking Volume creation
application/json
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.hetzner.cloud/v1/volumes' \
--header 'Content-Type: application/json' \
--data-raw '{
    "automount": false,
    "format": "xfs",
    "labels": {
        "labelkey": "value"
    },
    "location": "nbg1",
    "name": "test-database",
    "size": 42
}'
Response Response Example
{
    "action": {
        "command": "create_volume",
        "error": {
            "code": "action_failed",
            "message": "Action failed"
        },
        "finished": null,
        "id": 13,
        "progress": 0,
        "resources": [
            {
                "id": 42,
                "type": "server"
            },
            {
                "id": 554,
                "type": "volume"
            }
        ],
        "started": "2016-01-30T23:50:00.000Z",
        "status": "running"
    },
    "next_actions": [
        {
            "command": "attach_volume",
            "error": {
                "code": "action_failed",
                "message": "Action failed"
            },
            "finished": null,
            "id": 13,
            "progress": 0,
            "resources": [
                {
                    "id": 42,
                    "type": "server"
                },
                {
                    "id": 554,
                    "type": "volume"
                }
            ],
            "started": "2016-01-30T23:50:00.000Z",
            "status": "running"
        }
    ],
    "volume": {
        "created": "2016-01-30T23:50:11.000Z",
        "format": "xfs",
        "id": 4711,
        "labels": {
            "env": "dev"
        },
        "linux_device": "/dev/disk/by-id/scsi-0HC_Volume_4711",
        "location": {
            "city": "Falkenstein",
            "country": "DE",
            "description": "Falkenstein DC Park 1",
            "id": 1,
            "latitude": 50.47612,
            "longitude": 12.370071,
            "name": "fsn1",
            "network_zone": "eu-central"
        },
        "name": "database-storage",
        "protection": {
            "delete": false
        },
        "server": 12,
        "size": 42,
        "status": "available"
    }
}
Modified at 2023-08-16 03:09:21
Previous
Get all Volumes
Next
Delete a Volume
Built with