---
title: "POST /v1beta/{tenantId}/block/volumes"
method: POST
path: "/v1beta/{tenantId}/block/volumes"
tags: ["Block volumes"]
---

# POST /v1beta/{tenantId}/block/volumes

`POST /v1beta/{tenantId}/block/volumes`

Creates a volume.

## Request body

- VolumeCreateSpec — Volume is an block device created by storage service, it can be attached to physical machine or virtual machine instance.
  - `name` string, required
  - `multiAttach` boolean
  - `description` string
  - `size` integer, required
  - `availabilityZone` string
  - `profileId` string
  - `poolId` string
  - `snapshotId` string
  - `groupId` string
  - `snapshotFromCloud` boolean
  - `replicationId` string

## Response `202`

Accepted

- VolumeRespSpec — Volume is an block device created by storage service, it can be attached to physical machine or virtual machine instance.
  - `id` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `tenantId` string
  - `userId` string
  - `name` string
  - `multiAttach` boolean
  - `description` string
  - `size` integer
  - `availabilityZone` string
  - `status` string
  - `profileId` string
  - `poolId` string
  - `snapshotId` string
  - `groupId` string
  - `snapshotFromCloud` boolean
  - `replicationId` string
  - `identifier` object
    - `durableName` string
    - `durableNameFormat` string
  - `replicationDriverData` object
  - `metadata` object

## Other responses

- `400` — BadRequest
- `401` — NotAuthorized
- `403` — Forbidden
- `500` — An unexpected error occured.

## Changes

- **2019-12-09** `b151718b45cf` — 5 breaking, 1 warning, 10 info
  - added the new required request property `name`
  - added the new required request property `size`
  - the request's body type changed from no type to `object`
  - the response property `allOf[subschema #2]/name` became optional for the status `202`
  - …12 more
- **2019-11-22** `a41e1157d0e7` — 4 breaking, 3 info
  - the response property `allOf[subschema #2]/availabilityZone` became optional for the status `202`
  - the response property `allOf[subschema #2]/poolId` became optional for the status `202`
  - the response property `allOf[subschema #2]/profileId` became optional for the status `202`
  - the response property `allOf[subschema #2]/tenantId` became optional for the status `202`
  - …3 more
- **2019-11-06** `fd0669e1e56f` — 6 info
  - added optional request body
  - added the media type `application/json` for the response with the status `202`
  - added the media type `application/json` for the response with the status `400`
  - added the media type `application/json` for the response with the status `401`
  - …2 more
- **2018-05-04** `3a7682f5369d` — 5 breaking, 1 info
  - removed the request body
  - removed the media type `application/json` for the response with the status `202`
  - removed the media type `application/json` for the response with the status `401`
  - removed the media type `application/json` for the response with the status `403`
  - …2 more

[Change history](https://skmtc.dev/sodafoundation/apis/soda-api/changes/v1beta/:tenantId/block/volumes/post.md)

---

[API](https://skmtc.dev/sodafoundation/apis/soda-api.md) · [All operations](https://skmtc.dev/sodafoundation/apis/soda-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sodafoundation/apis/soda-api/revisions/62ce0f6c94b4?raw)
