---
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`

## Request

- Base URL: `https://localhost:50040`
- URL: `https://localhost:50040/v1beta/{tenantId}/block/volumes`
- Auth: HTTP basic

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-08** `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

[Operation 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)
