curl --request POST \
--url https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "014876987943",
"zoneId": "usw2-az1",
"policyName": "Volod test policy",
"instanceType": "c5.large",
"platform": "Linux/UNIX",
"startDate": "01/10/2026",
"endDate": "01/12/2026",
"startTime": "00:00",
"endTime": "23:15",
"utcOffsetHours": "-8",
"quantity": 2
}
'import requests
url = "https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve"
payload = {
"accountId": "014876987943",
"zoneId": "usw2-az1",
"policyName": "Volod test policy",
"instanceType": "c5.large",
"platform": "Linux/UNIX",
"startDate": "01/10/2026",
"endDate": "01/12/2026",
"startTime": "00:00",
"endTime": "23:15",
"utcOffsetHours": "-8",
"quantity": 2
}
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({
accountId: '014876987943',
zoneId: 'usw2-az1',
policyName: 'Volod test policy',
instanceType: 'c5.large',
platform: 'Linux/UNIX',
startDate: '01/10/2026',
endDate: '01/12/2026',
startTime: '00:00',
endTime: '23:15',
utcOffsetHours: '-8',
quantity: 2
})
};
fetch('https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'accountId' => '014876987943',
'zoneId' => 'usw2-az1',
'policyName' => 'Volod test policy',
'instanceType' => 'c5.large',
'platform' => 'Linux/UNIX',
'startDate' => '01/10/2026',
'endDate' => '01/12/2026',
'startTime' => '00:00',
'endTime' => '23:15',
'utcOffsetHours' => '-8',
'quantity' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve"
payload := strings.NewReader("{\n \"accountId\": \"014876987943\",\n \"zoneId\": \"usw2-az1\",\n \"policyName\": \"Volod test policy\",\n \"instanceType\": \"c5.large\",\n \"platform\": \"Linux/UNIX\",\n \"startDate\": \"01/10/2026\",\n \"endDate\": \"01/12/2026\",\n \"startTime\": \"00:00\",\n \"endTime\": \"23:15\",\n \"utcOffsetHours\": \"-8\",\n \"quantity\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"014876987943\",\n \"zoneId\": \"usw2-az1\",\n \"policyName\": \"Volod test policy\",\n \"instanceType\": \"c5.large\",\n \"platform\": \"Linux/UNIX\",\n \"startDate\": \"01/10/2026\",\n \"endDate\": \"01/12/2026\",\n \"startTime\": \"00:00\",\n \"endTime\": \"23:15\",\n \"utcOffsetHours\": \"-8\",\n \"quantity\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"014876987943\",\n \"zoneId\": \"usw2-az1\",\n \"policyName\": \"Volod test policy\",\n \"instanceType\": \"c5.large\",\n \"platform\": \"Linux/UNIX\",\n \"startDate\": \"01/10/2026\",\n \"endDate\": \"01/12/2026\",\n \"startTime\": \"00:00\",\n \"endTime\": \"23:15\",\n \"utcOffsetHours\": \"-8\",\n \"quantity\": 2\n}"
response = http.request(request)
puts response.read_body{
"myPolicy": {
"cidrId": "sc_830349911839",
"policyName": "Volod test policy",
"cspAccountName": "personal AWS",
"policyStatus": "READY_FOR_PURCHASE",
"policyOperatingState": "IDLE",
"policyInstance": {
"id": 1688,
"instanceType": "c5.large",
"platformCode": "Linux/UNIX",
"tenancyCode": "DEDICATED",
"vcpu": 2,
"memory": 4,
"gpu": 0,
"gpuMemory": 0,
"qty": 2
},
"cspRegion": {
"regionCode": "us-west-2",
"regionType": "PRIMARY",
"availabilityZoneId": "usw2-az1"
},
"createdDate": "2026-01-08T15:20:15.64868Z",
"capacityConfiguration": {
"launchDateTime": "2026-01-10T00:00:00-08:00",
"endDateTime": "2026-01-12T23:15:00-08:00",
"autoRenewalEnabled": false,
"frequency": null,
"vpc": "default",
"securityGroups": "none",
"amiImage": "default",
"sshPairKey": "none",
"ebsVolumeSize": 10
},
"pricing": {
"ourPrice": 8.48,
"cspProviderPrice": 12.11,
"savings": 3.63,
"savingsPercentage": 0.3,
"creditCardProcessingFee": 0.55,
"bankAccountProcessingFee": 0.07
}
},
"capacityAvailable": true,
"alternativeQtyRecommendations": [],
"alternativeTimeRecommendations": [],
"alternativeTypeRecommendations": []
}{
"error": {
"code": "400",
"message": "Bad Request",
"details": {
"timestamp": "2026-01-08T15:23:53",
"description": "End time minute must be 0, 15, 30, or 45"
}
}
}{
"error": {
"code": "401",
"message": "Unauthorized",
"details": {
"timestamp": "2025-03-04T17:01:01",
"description": "Unable to process access token"
}
}
}{
"error": {
"code": "404",
"message": "Not Found",
"details": {
"timestamp": "2026-01-08T14:43:14",
"description": "Supported instance type c5.large1 and platform Linux/UNIX not found"
}
}
}{
"error": {
"code": "500",
"message": "Internal Server Error",
"details": {
"timestamp": "2025-03-04T17:17:08",
"description": "Unexpected error. Our team is working on it"
}
}
}Reserve Capacity
Create a reservation policy. Times must be in 15-minute increments.
curl --request POST \
--url https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "014876987943",
"zoneId": "usw2-az1",
"policyName": "Volod test policy",
"instanceType": "c5.large",
"platform": "Linux/UNIX",
"startDate": "01/10/2026",
"endDate": "01/12/2026",
"startTime": "00:00",
"endTime": "23:15",
"utcOffsetHours": "-8",
"quantity": 2
}
'import requests
url = "https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve"
payload = {
"accountId": "014876987943",
"zoneId": "usw2-az1",
"policyName": "Volod test policy",
"instanceType": "c5.large",
"platform": "Linux/UNIX",
"startDate": "01/10/2026",
"endDate": "01/12/2026",
"startTime": "00:00",
"endTime": "23:15",
"utcOffsetHours": "-8",
"quantity": 2
}
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({
accountId: '014876987943',
zoneId: 'usw2-az1',
policyName: 'Volod test policy',
instanceType: 'c5.large',
platform: 'Linux/UNIX',
startDate: '01/10/2026',
endDate: '01/12/2026',
startTime: '00:00',
endTime: '23:15',
utcOffsetHours: '-8',
quantity: 2
})
};
fetch('https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'accountId' => '014876987943',
'zoneId' => 'usw2-az1',
'policyName' => 'Volod test policy',
'instanceType' => 'c5.large',
'platform' => 'Linux/UNIX',
'startDate' => '01/10/2026',
'endDate' => '01/12/2026',
'startTime' => '00:00',
'endTime' => '23:15',
'utcOffsetHours' => '-8',
'quantity' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve"
payload := strings.NewReader("{\n \"accountId\": \"014876987943\",\n \"zoneId\": \"usw2-az1\",\n \"policyName\": \"Volod test policy\",\n \"instanceType\": \"c5.large\",\n \"platform\": \"Linux/UNIX\",\n \"startDate\": \"01/10/2026\",\n \"endDate\": \"01/12/2026\",\n \"startTime\": \"00:00\",\n \"endTime\": \"23:15\",\n \"utcOffsetHours\": \"-8\",\n \"quantity\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountId\": \"014876987943\",\n \"zoneId\": \"usw2-az1\",\n \"policyName\": \"Volod test policy\",\n \"instanceType\": \"c5.large\",\n \"platform\": \"Linux/UNIX\",\n \"startDate\": \"01/10/2026\",\n \"endDate\": \"01/12/2026\",\n \"startTime\": \"00:00\",\n \"endTime\": \"23:15\",\n \"utcOffsetHours\": \"-8\",\n \"quantity\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.cloudidr.com/external/api/v1/flexcompute/reserve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountId\": \"014876987943\",\n \"zoneId\": \"usw2-az1\",\n \"policyName\": \"Volod test policy\",\n \"instanceType\": \"c5.large\",\n \"platform\": \"Linux/UNIX\",\n \"startDate\": \"01/10/2026\",\n \"endDate\": \"01/12/2026\",\n \"startTime\": \"00:00\",\n \"endTime\": \"23:15\",\n \"utcOffsetHours\": \"-8\",\n \"quantity\": 2\n}"
response = http.request(request)
puts response.read_body{
"myPolicy": {
"cidrId": "sc_830349911839",
"policyName": "Volod test policy",
"cspAccountName": "personal AWS",
"policyStatus": "READY_FOR_PURCHASE",
"policyOperatingState": "IDLE",
"policyInstance": {
"id": 1688,
"instanceType": "c5.large",
"platformCode": "Linux/UNIX",
"tenancyCode": "DEDICATED",
"vcpu": 2,
"memory": 4,
"gpu": 0,
"gpuMemory": 0,
"qty": 2
},
"cspRegion": {
"regionCode": "us-west-2",
"regionType": "PRIMARY",
"availabilityZoneId": "usw2-az1"
},
"createdDate": "2026-01-08T15:20:15.64868Z",
"capacityConfiguration": {
"launchDateTime": "2026-01-10T00:00:00-08:00",
"endDateTime": "2026-01-12T23:15:00-08:00",
"autoRenewalEnabled": false,
"frequency": null,
"vpc": "default",
"securityGroups": "none",
"amiImage": "default",
"sshPairKey": "none",
"ebsVolumeSize": 10
},
"pricing": {
"ourPrice": 8.48,
"cspProviderPrice": 12.11,
"savings": 3.63,
"savingsPercentage": 0.3,
"creditCardProcessingFee": 0.55,
"bankAccountProcessingFee": 0.07
}
},
"capacityAvailable": true,
"alternativeQtyRecommendations": [],
"alternativeTimeRecommendations": [],
"alternativeTypeRecommendations": []
}{
"error": {
"code": "400",
"message": "Bad Request",
"details": {
"timestamp": "2026-01-08T15:23:53",
"description": "End time minute must be 0, 15, 30, or 45"
}
}
}{
"error": {
"code": "401",
"message": "Unauthorized",
"details": {
"timestamp": "2025-03-04T17:01:01",
"description": "Unable to process access token"
}
}
}{
"error": {
"code": "404",
"message": "Not Found",
"details": {
"timestamp": "2026-01-08T14:43:14",
"description": "Supported instance type c5.large1 and platform Linux/UNIX not found"
}
}
}{
"error": {
"code": "500",
"message": "Internal Server Error",
"details": {
"timestamp": "2025-03-04T17:17:08",
"description": "Unexpected error. Our team is working on it"
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
AWS account ID
Name to assign to the reservation policy
EC2 instance type to check (e.g., c5.large)
OS/platform for the offering (e.g., Linux/UNIX, Windows Server)
Availability Zone identifier to search within (e.g., usw2-az1, aps1-az1)
Number of instances to reserve (must be positive)
x >= 1Reservation start date, format MM/dd/yyyy (e.g., 12/20/2024)
^\d{2}/\d{2}/\d{4}$Reservation end date, format MM/dd/yyyy (e.g., 12/25/2024)
^\d{2}/\d{2}/\d{4}$Reservation start time, format HH:mm (24-hour, e.g., 09:30)
^\d{2}:\d{2}$Reservation end time, format HH:mm (24-hour, e.g., 23:15)
^\d{2}:\d{2}$Client UTC offset in hours (range -18 to 18)
Enables auto-renewal for the policy
Auto-renewal frequency (required when autoRenewalEnabled is true)
one-day, one-week, one-month Response
Success - Reservation was successful

