---
updatedAt: 2026-06-08T17:29:40.000Z
agentTools:
  siteIndex: https://techdocs.akamai.com/llms.txt
  projectIndex: https://techdocs.akamai.com/linode-api/llms.txt
---

# Create a volume

Creates a [Block Storage](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-block-storage) volume on your account. Creating a new volume accrues additional charges on your account.


**Permissions and scopes**

To call this operation, you need the following:

- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).
  - Permissions: `create_volume`
- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).

  - Scopes: `volumes:read_write`


**CLI**

```shell
linode-cli volumes create \
  --label my-volume \
  --size 20 \
  --linode_id 12346 \
  --no-defaults
```

[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)

# OpenAPI definition

````json
{
  "components": {
    "securitySchemes": {
      "oauth": {
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://login.linode.com/oauth/authorize",
            "scopes": {
              "account:read_only": "Allows access to GET information about your account.",
              "account:read_write": "Allows access to all endpoints related to your account.",
              "child_account:read_only": "Allows access to GET information about deprecated parent/child operations.",
              "child_account:read_write": "Allows access to deprecated parent/child operations.",
              "databases:read_only": "Allows access to GET information about databases.",
              "databases:read_write": "Allows access to all endpoints related to databases.",
              "domains:read_only": "Allows access to GET Domains on your account.",
              "domains:read_write": "Allows access to all Domain endpoints.",
              "events:read_only": "Allows access to GET your Events.",
              "events:read_write": "Allows access to all endpoints related to your Events.",
              "firewall:read_only": "Allows access to GET information about your Firewalls.",
              "firewall:read_write": "Allows access to all Firewall endpoints.",
              "images:read_only": "Allows access to GET your Images.",
              "images:read_write": "Allows access to all endpoints related to your Images.",
              "ips:read_only": "Allows access to GET your ips.",
              "ips:read_write": "Allows access to all endpoints related to your ips.",
              "linodes:read_only": "Allows access to GET Linodes on your account.",
              "linodes:read_write": "Allow access to all endpoints related to your Linodes.",
              "lke:read_only": "Allows access to GET LKE Clusters on your account.",
              "lke:read_write": "Allows access to all endpoints related to LKE Clusters on your account.",
              "longview:read_only": "Allows access to GET your Longview Clients.",
              "longview:read_write": "Allows access to all endpoints related to your Longview Clients.",
              "monitor:read_only": "Allows access to Monitor (Akamai Cloud Pulse) data.",
              "monitor:read_write": "Allows access to GET Monitor (Akamai Cloud Pulse) data.",
              "nodebalancers:read_only": "Allows access to GET NodeBalancers on your account.",
              "nodebalancers:read_write": "Allows access to all NodeBalancer endpoints.",
              "object_storage:read_only": "Allows access to GET information related to your Object Storage.",
              "object_storage:read_write": "Allows access to all Object Storage endpoints.",
              "stackscripts:read_only": "Allows access to GET your StackScripts.",
              "stackscripts:read_write": "Allows access to all endpoints related to your StackScripts.",
              "volumes:read_only": "Allows access to GET your Volumes.",
              "volumes:read_write": "Allows access to all endpoints related to your Volumes.",
              "vpc:read_write": "Allows access to all endpoints related to VPC and Subnet creation, updating, and deletion."
            },
            "tokenUrl": "https://login.linode.com/oauth/token"
          }
        },
        "type": "oauth2"
      },
      "personalAccessToken": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "externalDocs": {
    "description": "See documentation for Akamai's Linode API",
    "url": "https://techdocs.akamai.com/linode-api/reference"
  },
  "info": {
    "description": "\"[Read the API documentation](https://techdocs.akamai.com/linode-api/reference/api).\"",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "title": "Volumes",
    "version": "4.229.1"
  },
  "openapi": "3.0.1",
  "paths": {
    "/{apiVersion}/volumes": {
      "post": {
        "description": "Creates a [Block Storage](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-block-storage) volume on your account. Creating a new volume accrues additional charges on your account.\n\n\n**Permissions and scopes**\n\nTo call this operation, you need the following:\n\n- **Identity and access permissions**. Your user needs a role with these permissions assigned. [Learn more](https://techdocs.akamai.com/cloud-computing/docs/identity-access-cm-available-roles).\n  - Permissions: `create_volume`\n- **OAuth scopes**. Your user needs these scopes assigned. [Learn more](https://techdocs.akamai.com/linode-api/reference/get-started#oauth).\n\n  - Scopes: `volumes:read_write`\n\n\n**CLI**\n\n```shell\nlinode-cli volumes create \\\n  --label my-volume \\\n  --size 20 \\\n  --linode_id 12346 \\\n  --no-defaults\n```\n\n[Learn more](https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli)",
        "externalDocs": {
          "description": "See documentation for this operation in Akamai's Linode API",
          "url": "https://techdocs.akamai.com/linode-api/reference/post-volume"
        },
        "operationId": "post-volume",
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "config_id": 23456,
                "encryption": "enabled",
                "label": "Video-file-storage",
                "linode_id": 12346,
                "region": "us-iad",
                "size": 30,
                "tags": [
                  "blk-stg-volume-1",
                  "videos-storage"
                ]
              },
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "config_id": {
                    "description": "When creating a volume attached to a Linode, this is the identifier of the Linode configuration profile (config) where the volume will live. Run the [List configuration profiles](https://techdocs.akamai.com/linode-api/reference/get-linode-configs) operation and store the `id` for the applicable config. The following apply when adding a `config_id`:\n\n- The selected config needs to belong to the Linode referenced by `linode_id` in this request.\n\n- You can't provide a `config_id` if you don't also provide a `linode_id` in the request.\n\n- If you send a `linode_id` without a `config_id`, the API attaches the volume to that Linode's last used config, or to the only config in that Linode. If there isn't a config available for attachment, the API returns an error.",
                    "example": 23456,
                    "type": "integer"
                  },
                  "encryption": {
                    "default": "enabled",
                    "description": "Sets the disk encryption status for a volume, either `enabled` or `disabled`. When you create a new volume, disk encryption is enabled by default. Full disk encryption ensures the data stored on a Block Storage volume drive is secure. It protects against unauthorized access by keeping the data encrypted if the volume drive is removed from the data center, decommissioned, or disposed of. The platform automatically manages the encryption and decryption process for you. You can use an encrypted volume the same way you use a non-encrypted volume.\n\n> 📘\n>\n> You can only set disk encryption status when creating a new Block Storage volume. After you create a volume, you can't change its encryption setting.",
                    "enum": [
                      "enabled",
                      "disabled"
                    ],
                    "example": "disabled",
                    "type": "string"
                  },
                  "label": {
                    "description": "The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.",
                    "example": "my-volume",
                    "maxLength": 32,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$",
                    "type": "string"
                  },
                  "linode_id": {
                    "description": "The Linode this volume should be attached to after it's created. If not given, the volume will be created without an attachment.",
                    "example": 123,
                    "type": "integer"
                  },
                  "region": {
                    "description": "The region where the API deploys the volume. This is only required if you didn't provide a `linode_id` for the volume.",
                    "example": null,
                    "nullable": true,
                    "type": "string"
                  },
                  "size": {
                    "default": 20,
                    "description": "The initial size of this volume, in GB. Volumes can only be resized after the creation completes.",
                    "example": 20,
                    "type": "integer"
                  },
                  "tags": {
                    "description": "__Filterable__ Any tags applied to this object. Use [tags](https://techdocs.akamai.com/linode-api/reference/post-tag) to label and organize your cloud computing resources.",
                    "example": [
                      "example tag",
                      "another example"
                    ],
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "x-akamai": {
                      "labels": [
                        "Filterable"
                      ]
                    },
                    "x-linode-filterable": true
                  }
                },
                "required": [
                  "label"
                ],
                "type": "object",
                "x-akamai": {
                  "file-path": "schemas/added-post-volume.yaml"
                }
              }
            }
          },
          "required": true,
          "x-linode-cli-allowed-defaults": [
            "region"
          ]
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "created": "2025-01-01T00:01:01",
                  "encryption": "enabled",
                  "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume",
                  "hardware_type": "nvme",
                  "id": 12345,
                  "io_ready": true,
                  "label": "Video-file-storage",
                  "linode_id": 12346,
                  "linode_label": "linode123",
                  "region": "us-iad",
                  "size": 30,
                  "status": "active",
                  "tags": [
                    "blk-stg-volume-1",
                    "videos-storage"
                  ],
                  "updated": "2025-01-01T00:01:01"
                },
                "schema": {
                  "additionalProperties": false,
                  "description": "A newly created Block Storage volume on your account.",
                  "properties": {
                    "created": {
                      "description": "__Read-only__ When this volume was created.",
                      "example": "2025-01-01T00:01:01",
                      "readOnly": true,
                      "type": "string"
                    },
                    "encryption": {
                      "description": "__Read-only__ Indicates whether encryption is `enabled` or `disabled` on this volume.",
                      "enum": [
                        "enabled",
                        "disabled"
                      ],
                      "example": "enabled",
                      "readOnly": true,
                      "type": "string",
                      "x-linode-cli-display": 8
                    },
                    "filesystem_path": {
                      "description": "__Read-only__ The full file system path for the volume, based on its `label`. The path is `/dev/disk/by-id/scsi-0Linode_Volume_label`.",
                      "example": "/dev/disk/by-id/scsi-0Linode_Volume_my-volume",
                      "readOnly": true,
                      "type": "string"
                    },
                    "hardware_type": {
                      "description": "__Read-only__ The storage type of this volume. This can be either `hdd` to emulate a hard disk drive for the volume, or `nvme` to emulate a non-volatile memory express solid state drive.",
                      "enum": [
                        "hdd",
                        "nvme"
                      ],
                      "example": "nvme",
                      "readOnly": true,
                      "type": "string"
                    },
                    "id": {
                      "description": "__Read-only__ The unique identifier for the volume.",
                      "example": 12345,
                      "readOnly": true,
                      "type": "integer",
                      "x-linode-cli-display": 1
                    },
                    "io_ready": {
                      "description": "__Read-only__ Indicates whether the volume is successfully attached to a Linode and ready for read and write operations.",
                      "example": true,
                      "readOnly": true,
                      "type": "boolean"
                    },
                    "label": {
                      "description": "__Filterable__ The name of the volume. A `label` can be up to 32 characters long and contain alphanumeric characters, hyphens, and underscores. This value is also used in the volume's `filesystem_path`.",
                      "example": "my-volume",
                      "maxLength": 32,
                      "minLength": 1,
                      "pattern": "^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$",
                      "type": "string",
                      "x-akamai": {
                        "labels": [
                          "Filterable"
                        ]
                      },
                      "x-linode-cli-display": 2,
                      "x-linode-filterable": true
                    },
                    "linode_id": {
                      "description": "The unique identifier of the Linode this volume is attached to, if applicable.",
                      "example": 12346,
                      "nullable": true,
                      "type": "integer",
                      "x-linode-cli-display": 6
                    },
                    "linode_label": {
                      "description": "__Read-only__ The name of the Linode this volume is attached to, if applicable.",
                      "example": "linode123",
                      "nullable": true,
                      "readOnly": true,
                      "type": "string",
                      "x-linode-cli-display": 7
                    },
                    "region": {
                      "description": "The unique identifier for the region where the volume lives.",
                      "example": "us-iad",
                      "type": "string",
                      "x-linode-cli-display": 5
                    },
                    "size": {
                      "description": "The volume's size, in gigabytes.",
                      "example": 30,
                      "maximum": 10240,
                      "type": "integer",
                      "x-linode-cli-display": 4
                    },
                    "status": {
                      "description": "__Read-only__ The current status of the volume. This can be one of:\n\n- `creating`. The API is creating the volume and it's not ready for use.\n\n- `active`. The volume is online and ready for use.\n\n- `resizing`. The volume's capacity is being upgraded.\n\n- `key_rotating`. The volume's encryption keys are being rotated to new values. Requests to resize, delete, or clone a volume fail during encryption key rotation.",
                      "enum": [
                        "creating",
                        "active",
                        "resizing",
                        "key_rotating"
                      ],
                      "example": "active",
                      "readOnly": true,
                      "type": "string",
                      "x-linode-cli-color": {
                        "active": "green",
                        "contact_support": "red",
                        "default_": "yellow"
                      },
                      "x-linode-cli-display": 3
                    },
                    "tags": {
                      "description": "__Filterable__ Any tags applied to this object. Use [tags](https://techdocs.akamai.com/linode-api/reference/post-tag) to label and organize your cloud computing resources.",
                      "example": [
                        "example tag",
                        "another example"
                      ],
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "x-akamai": {
                        "labels": [
                          "Filterable"
                        ]
                      },
                      "x-linode-filterable": true
                    },
                    "updated": {
                      "description": "__Read-only__ When this volume was last updated.",
                      "example": "2025-01-01T00:01:01",
                      "readOnly": true,
                      "type": "string"
                    }
                  },
                  "title": "Volume",
                  "type": "object",
                  "x-akamai": {
                    "file-path": "schemas/post-volume.yaml"
                  }
                }
              }
            },
            "description": "Creating volume."
          },
          "default": {
            "content": {
              "application/json": {
                "example": {
                  "errors": [
                    {
                      "reason": "Invalid JSON"
                    }
                  ]
                },
                "schema": {
                  "additionalProperties": false,
                  "properties": {
                    "errors": {
                      "description": "Any warnings associated with a response.",
                      "items": {
                        "additionalProperties": false,
                        "description": "An object for describing a single error that occurred during the processing of a request.",
                        "properties": {
                          "field": {
                            "description": "The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.",
                            "example": "fieldname",
                            "type": "string"
                          },
                          "reason": {
                            "description": "What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.",
                            "example": "fieldname must be a valid value",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "x-akamai": {
                          "file-path": "schemas/error-object.yaml"
                        }
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes."
          }
        },
        "security": [
          {
            "personalAccessToken": []
          },
          {
            "oauth": [
              "volumes:read_write"
            ]
          }
        ],
        "summary": "Create a volume",
        "tags": [
          "Volumes"
        ],
        "x-akamai": {
          "tabs": [
            {
              "syntax": "linode-cli volumes create \\\n  --label my-volume \\\n  --size 20 \\\n  --linode_id 12346 \\\n  --no-defaults",
              "title": "CLI",
              "url": "https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli"
            }
          ]
        },
        "x-linode-charge": true,
        "x-linode-cli-action": "create",
        "x-linode-grant": "add_volumes",
        "x-linode-iam": [
          {
            "permissions": [
              "create_volume"
            ]
          }
        ]
      },
      "parameters": [
        {
          "description": "__Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.",
          "in": "path",
          "name": "apiVersion",
          "required": true,
          "schema": {
            "enum": [
              "v4",
              "v4beta"
            ],
            "example": "v4",
            "type": "string"
          },
          "x-akamai": {
            "file-path": "parameters/api-version-path.yaml"
          }
        }
      ],
      "x-akamai": {
        "file-path": "paths/volumes.yaml",
        "path-info": "/{apiVersion}/volumes"
      },
      "x-linode-cli-command": "volumes"
    }
  },
  "servers": [
    {
      "url": "https://api.linode.com"
    }
  ],
  "tags": [
    {
      "description": "The Block Storage service lets you add additional storage drives to Linodes, to store more data without resizing your Linode to a larger plan. These storage drives, called volumes, can be formatted with any Linux-compatible file system and attached and mounted to a Linode.",
      "name": "Volumes"
    }
  ],
  "x-akamai": {
    "auth-type": "OAUTH",
    "file-path": "volumes.yaml"
  },
  "x-readme": {
    "explorer-enabled": false,
    "samples-languages": [
      "curl",
      "python",
      "node"
    ]
  }
}
````

# Sibling pages

* [List volumes](https://techdocs.akamai.com/linode-api/reference/get-volumes.md)
* [Get a volume](https://techdocs.akamai.com/linode-api/reference/get-volume.md)
* [Update a volume](https://techdocs.akamai.com/linode-api/reference/put-volume.md)
* [Delete a volume](https://techdocs.akamai.com/linode-api/reference/delete-volume.md)
* [Attach a volume](https://techdocs.akamai.com/linode-api/reference/post-attach-volume.md)
* [Clone a volume](https://techdocs.akamai.com/linode-api/reference/post-clone-volume.md)
* [Detach a volume](https://techdocs.akamai.com/linode-api/reference/post-detach-volume.md)
* [Resize a volume](https://techdocs.akamai.com/linode-api/reference/post-resize-volume.md)