curl --request POST \
--url https://api.aireserve.com/v1/gpu/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"gpuTypeId": "NVIDIA_A40",
"gpuCount": 1,
"containerDiskGb": 20,
"dataCenterId": "EU-RO-1"
}
'import requests
url = "https://api.aireserve.com/v1/gpu/quotes"
payload = {
"gpuTypeId": "NVIDIA_A40",
"gpuCount": 1,
"containerDiskGb": 20,
"dataCenterId": "EU-RO-1"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
gpuTypeId: 'NVIDIA_A40',
gpuCount: 1,
containerDiskGb: 20,
dataCenterId: 'EU-RO-1'
})
};
fetch('https://api.aireserve.com/v1/gpu/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"quoteId": "<string>",
"kind": "pod",
"hourlyRateUsd": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"spec": {},
"computeUsdPerHour": "<string>",
"storageUsdPerHour": "<string>"
}Request a price quote
Validate a candidate pod or volume spec against live capacity and return a signed price quote. The returned quoteId must be included in the subsequent POST /v1/gpu/pods or POST /v1/gpu/volumes call to bind the price. Quotes expire after 2 minutes. No idempotency key is required — quotes are free and non-spending.
curl --request POST \
--url https://api.aireserve.com/v1/gpu/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"gpuTypeId": "NVIDIA_A40",
"gpuCount": 1,
"containerDiskGb": 20,
"dataCenterId": "EU-RO-1"
}
'import requests
url = "https://api.aireserve.com/v1/gpu/quotes"
payload = {
"gpuTypeId": "NVIDIA_A40",
"gpuCount": 1,
"containerDiskGb": 20,
"dataCenterId": "EU-RO-1"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
gpuTypeId: 'NVIDIA_A40',
gpuCount: 1,
containerDiskGb: 20,
dataCenterId: 'EU-RO-1'
})
};
fetch('https://api.aireserve.com/v1/gpu/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"quoteId": "<string>",
"kind": "pod",
"hourlyRateUsd": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"spec": {},
"computeUsdPerHour": "<string>",
"storageUsdPerHour": "<string>"
}Authorizations
Your AI Reserve API key (aireserve_api_…) from the API Keys page in the portal (https://portal.aireserve.com/keys).
Body
Candidate spec to price. Include gpuTypeId, gpuCount, containerDiskGb, and dataCenterId for pods; sizeGb and dataCenterId for volumes.
Response
Price quote. Pass quoteId in the create/grow mutation.
A signed, time-limited price quote for a pod or volume. Pass quoteId in the subsequent create/grow mutation. Expires after 2 minutes.
Signed quote token — same as quoteId.
Signed quote token. Alias for id. Pass this value as quoteId in the create/grow request.
pod, volume Total hourly charge in USD, six-decimal precision.
Quote expiry. Submit the mutation before this time or request a fresh quote.
Hardware parameters the quote binds (GPU type, count, disk, data center for pods; sizeGb, data center for volumes).
GPU + container disk portion of the hourly rate.
Storage portion of the hourly rate (non-zero for volume quotes).