openapi: 3.1.0 info: title: Linode API v4 Account Volumes API description: The Linode API v4 provides programmatic access to the full range of Akamai Connected Cloud (formerly Linode) products and services. It enables developers to create and manage compute instances, deploy Kubernetes clusters, configure NodeBalancers, manage DNS domains, provision Block Storage volumes, control Object Storage buckets, set up firewalls, and administer account settings. The RESTful API uses OAuth and personal access tokens for authentication and returns JSON responses, with support for filtering and sorting across all resource endpoints. version: 4.189.0 contact: name: Linode Support url: https://www.linode.com/support/ termsOfService: https://www.linode.com/legal-tos/ servers: - url: https://api.linode.com/v4 description: Production Server security: - personalAccessToken: [] - oauth: [] tags: - name: Volumes description: Create and manage Block Storage volumes that can be attached to Linode instances for persistent data storage. paths: /volumes: get: operationId: getVolumes summary: List volumes description: Returns a paginated list of Block Storage volumes on your account. tags: - Volumes parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/pageSizeParam' responses: '200': description: Volumes retrieved successfully content: application/json: schema: $ref: '#/components/schemas/PaginatedVolumeList' '401': description: Unauthorized - invalid or missing authentication post: operationId: createVolume summary: Create a volume description: Creates a new Block Storage volume. The volume can be attached to a Linode instance immediately or left unattached. tags: - Volumes requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VolumeRequest' responses: '200': description: Volume created successfully content: application/json: schema: $ref: '#/components/schemas/Volume' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication /volumes/{volumeId}: get: operationId: getVolume summary: Get a volume description: Returns the details for a single Block Storage volume. tags: - Volumes parameters: - $ref: '#/components/parameters/volumeIdParam' responses: '200': description: Volume retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Volume' '401': description: Unauthorized - invalid or missing authentication '404': description: Volume not found put: operationId: updateVolume summary: Update a volume description: Updates the label and tags for a Block Storage volume. tags: - Volumes parameters: - $ref: '#/components/parameters/volumeIdParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VolumeUpdateRequest' responses: '200': description: Volume updated successfully content: application/json: schema: $ref: '#/components/schemas/Volume' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication '404': description: Volume not found delete: operationId: deleteVolume summary: Delete a volume description: Deletes a Block Storage volume. The volume must be detached from all Linode instances before it can be deleted. tags: - Volumes parameters: - $ref: '#/components/parameters/volumeIdParam' responses: '200': description: Volume deleted successfully '401': description: Unauthorized - invalid or missing authentication '404': description: Volume not found /volumes/{volumeId}/attach: post: operationId: attachVolume summary: Attach a volume description: Attaches a Block Storage volume to a Linode instance. The volume and instance must be in the same region. tags: - Volumes parameters: - $ref: '#/components/parameters/volumeIdParam' requestBody: required: true content: application/json: schema: type: object required: - linode_id properties: linode_id: type: integer description: The ID of the Linode instance to attach the volume to. config_id: type: integer description: The ID of the configuration profile to attach to. responses: '200': description: Volume attached successfully content: application/json: schema: $ref: '#/components/schemas/Volume' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication '404': description: Volume not found /volumes/{volumeId}/detach: post: operationId: detachVolume summary: Detach a volume description: Detaches a Block Storage volume from a Linode instance. tags: - Volumes parameters: - $ref: '#/components/parameters/volumeIdParam' responses: '200': description: Volume detached successfully '401': description: Unauthorized - invalid or missing authentication '404': description: Volume not found components: schemas: PaginatedVolumeList: allOf: - $ref: '#/components/schemas/Pagination' - type: object properties: data: type: array items: $ref: '#/components/schemas/Volume' VolumeRequest: type: object required: - label - size - region properties: label: type: string minLength: 1 maxLength: 32 description: The label for the new volume. size: type: integer minimum: 10 maximum: 10240 description: The size of the volume in GB. region: type: string description: The region to create the volume in. linode_id: type: integer description: A Linode instance to attach the volume to. tags: type: array items: type: string description: Tags for the new volume. Volume: type: object properties: id: type: integer description: The unique ID of this volume. label: type: string description: The label of this volume. status: type: string enum: - creating - active - resizing - deleting description: The current status of this volume. size: type: integer description: The size of this volume in GB. region: type: string description: The region where this volume is located. linode_id: type: integer description: The ID of the Linode this volume is attached to, or null. linode_label: type: string description: The label of the Linode this volume is attached to. filesystem_path: type: string description: The filesystem path for this volume on the attached Linode. tags: type: array items: type: string description: Tags for this volume. created: type: string format: date-time description: When this volume was created. updated: type: string format: date-time description: When this volume was last updated. VolumeUpdateRequest: type: object properties: label: type: string minLength: 1 maxLength: 32 description: The new label for the volume. tags: type: array items: type: string description: Updated tags for the volume. Pagination: type: object properties: page: type: integer description: The current page number. pages: type: integer description: The total number of pages. results: type: integer description: The total number of results. parameters: pageParam: name: page in: query schema: type: integer minimum: 1 default: 1 description: The page number to return. pageSizeParam: name: page_size in: query schema: type: integer minimum: 25 maximum: 500 default: 100 description: The number of items per page. volumeIdParam: name: volumeId in: path required: true schema: type: integer description: The ID of the volume. securitySchemes: personalAccessToken: type: http scheme: bearer description: A personal access token generated from the Linode Cloud Manager that grants access to the API based on the token's scopes. oauth: type: oauth2 description: OAuth 2.0 authentication for third-party applications. flows: authorizationCode: authorizationUrl: https://login.linode.com/oauth/authorize tokenUrl: https://login.linode.com/oauth/token scopes: account:read_only: Read access to account information account:read_write: Read and write access to account information domains:read_only: Read access to domains domains:read_write: Read and write access to domains events:read_only: Read access to events events:read_write: Read and write access to events firewall:read_only: Read access to firewalls firewall:read_write: Read and write access to firewalls images:read_only: Read access to images images:read_write: Read and write access to images ips:read_only: Read access to IP addresses ips:read_write: Read and write access to IP addresses linodes:read_only: Read access to Linodes linodes:read_write: Read and write access to Linodes lke:read_only: Read access to LKE lke:read_write: Read and write access to LKE longview:read_only: Read access to Longview longview:read_write: Read and write access to Longview nodebalancers:read_only: Read access to NodeBalancers nodebalancers:read_write: Read and write access to NodeBalancers object_storage:read_only: Read access to Object Storage object_storage:read_write: Read and write access to Object Storage stackscripts:read_only: Read access to StackScripts stackscripts:read_write: Read and write access to StackScripts volumes:read_only: Read access to Volumes volumes:read_write: Read and write access to Volumes vpc:read_only: Read access to VPCs vpc:read_write: Read and write access to VPCs externalDocs: description: Linode API v4 Documentation url: https://techdocs.akamai.com/linode-api/reference/api