curl --request POST \
--url https://api.aireserve.com/v1/gpu/volumes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"name": "<string>",
"sizeGb": 2053,
"storageBillingAcknowledged": true
}
'import requests
url = "https://api.aireserve.com/v1/gpu/volumes"
payload = {
"name": "<string>",
"sizeGb": 2053,
"storageBillingAcknowledged": True
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>', sizeGb: 2053, storageBillingAcknowledged: true})
};
fetch('https://api.aireserve.com/v1/gpu/volumes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"accepted": true,
"resourceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"resourceType": "pod",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "accepted"
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}Create volume
Create a persistent volume. Provider-hidden form: name, sizeGb, region, optional acceleratorHint (AI Reserve places the volume where that accelerator has stock and persistent storage is sold, so a later launch can mount it; when no such location exists in the region the request answers 409 no_capacity with reason: no_persistent_storage and the regions where it would work, and nothing is created) and storageBillingAcknowledged: true; the price is fixed at accept and returned on the volume. Legacy form: dataCenterId plus a quoteId from POST /v1/gpu/quotes. Storage bills hourly until the volume is deleted, independent of any instance. Requires compute manage access.
curl --request POST \
--url https://api.aireserve.com/v1/gpu/volumes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"name": "<string>",
"sizeGb": 2053,
"storageBillingAcknowledged": true
}
'import requests
url = "https://api.aireserve.com/v1/gpu/volumes"
payload = {
"name": "<string>",
"sizeGb": 2053,
"storageBillingAcknowledged": True
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>', sizeGb: 2053, storageBillingAcknowledged: true})
};
fetch('https://api.aireserve.com/v1/gpu/volumes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"accepted": true,
"resourceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"resourceType": "pod",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "accepted"
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "<string>",
"details": {}
}
}Authorizations
Your AI Reserve API key (aireserve_api_…) from the API Keys page in the portal (https://portal.aireserve.com/keys).
Headers
Client-chosen key of 8–180 characters [A-Za-z0-9:_-]. Replaying the same key with the same body returns the original operation; a different body with the same key fails with 409 operation_conflict.
8 - 180^[A-Za-z0-9:_-]+$Body
- Option 1
- Option 2
1 - 120north_america, united_states, canada, europe, asia_pacific, oceania 10 <= x <= 4096true A40_48GB, A100_80GB, H100_80GB, H100_NVL_94GB, H200_141GB, B200_180GB, B300_288GB, L40_48GB, L40S_48GB, RTX_2000_ADA_16GB, RTX_4000_ADA_20GB, RTX_6000_ADA_48GB, RTX_A5000_24GB, RTX_PRO_4000_24GB, RTX_PRO_4500_32GB, RTX_PRO_6000_96GB, RTX_PRO_6000_MIG_24GB, RTX_PRO_6000_MIG_48GB, MI300X_192GB Response
Accepted. Poll operationId for completion.
Body of every 202 Accepted Compute mutation.
true ID of the resource created or mutated.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$pod, volume, cluster, template, registry, ssh_key Durable operation record. Poll GET /v1/gpu/operations/{id} until a terminal status.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$accepted