Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
curl --request POST \
--url https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"product_type": "ipv4",
"billing_cycle": 0,
"label": "string",
"product_options": {
"quantity": {
"<key1>": 0,
"<key2>": 0,
"<key..>": 0,
"<keyN>": 0
},
"selection": {
"<key1>": "string",
"<key2>": "string",
"<key..>": "string",
"<keyN>": "string"
}
},
"product_fields": {
"<key1>": {},
"<key2>": {},
"<key..>": {},
"<keyN>": {},
"aws_account_id": "123456789012",
"aws_service": "EC2",
"aws_region": "us-east-1"
}
}
'import requests
url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items"
payload = {
"product_type": "ipv4",
"billing_cycle": 0,
"label": "string",
"product_options": {
"quantity": {
"<key1>": 0,
"<key2>": 0,
"<key..>": 0,
"<keyN>": 0
},
"selection": {
"<key1>": "string",
"<key2>": "string",
"<key..>": "string",
"<keyN>": "string"
}
},
"product_fields": {
"<key1>": {},
"<key2>": {},
"<key..>": {},
"<keyN>": {},
"aws_account_id": "123456789012",
"aws_service": "EC2",
"aws_region": "us-east-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({
product_type: 'ipv4',
billing_cycle: 0,
label: 'string',
product_options: {
quantity: {'<key1>': 0, '<key2>': 0, '<key..>': 0, '<keyN>': 0},
selection: {
'<key1>': 'string',
'<key2>': 'string',
'<key..>': 'string',
'<keyN>': 'string'
}
},
product_fields: {
'<key1>': {},
'<key2>': {},
'<key..>': {},
'<keyN>': {},
aws_account_id: '123456789012',
aws_service: 'EC2',
aws_region: 'us-east-1'
}
})
};
fetch('https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items', 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://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items",
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([
'product_type' => 'ipv4',
'billing_cycle' => 0,
'label' => 'string',
'product_options' => [
'quantity' => [
'<key1>' => 0,
'<key2>' => 0,
'<key..>' => 0,
'<keyN>' => 0
],
'selection' => [
'<key1>' => 'string',
'<key2>' => 'string',
'<key..>' => 'string',
'<keyN>' => 'string'
]
],
'product_fields' => [
'<key1>' => [
],
'<key2>' => [
],
'<key..>' => [
],
'<keyN>' => [
],
'aws_account_id' => '123456789012',
'aws_service' => 'EC2',
'aws_region' => 'us-east-1'
]
]),
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://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items"
payload := strings.NewReader("{\n \"product_type\": \"ipv4\",\n \"billing_cycle\": 0,\n \"label\": \"string\",\n \"product_options\": {\n \"quantity\": {\n \"<key1>\": 0,\n \"<key2>\": 0,\n \"<key..>\": 0,\n \"<keyN>\": 0\n },\n \"selection\": {\n \"<key1>\": \"string\",\n \"<key2>\": \"string\",\n \"<key..>\": \"string\",\n \"<keyN>\": \"string\"\n }\n },\n \"product_fields\": {\n \"<key1>\": {},\n \"<key2>\": {},\n \"<key..>\": {},\n \"<keyN>\": {},\n \"aws_account_id\": \"123456789012\",\n \"aws_service\": \"EC2\",\n \"aws_region\": \"us-east-1\"\n }\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://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"product_type\": \"ipv4\",\n \"billing_cycle\": 0,\n \"label\": \"string\",\n \"product_options\": {\n \"quantity\": {\n \"<key1>\": 0,\n \"<key2>\": 0,\n \"<key..>\": 0,\n \"<keyN>\": 0\n },\n \"selection\": {\n \"<key1>\": \"string\",\n \"<key2>\": \"string\",\n \"<key..>\": \"string\",\n \"<keyN>\": \"string\"\n }\n },\n \"product_fields\": {\n \"<key1>\": {},\n \"<key2>\": {},\n \"<key..>\": {},\n \"<keyN>\": {},\n \"aws_account_id\": \"123456789012\",\n \"aws_service\": \"EC2\",\n \"aws_region\": \"us-east-1\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items")
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 \"product_type\": \"ipv4\",\n \"billing_cycle\": 0,\n \"label\": \"string\",\n \"product_options\": {\n \"quantity\": {\n \"<key1>\": 0,\n \"<key2>\": 0,\n \"<key..>\": 0,\n \"<keyN>\": 0\n },\n \"selection\": {\n \"<key1>\": \"string\",\n \"<key2>\": \"string\",\n \"<key..>\": \"string\",\n \"<keyN>\": \"string\"\n }\n },\n \"product_fields\": {\n \"<key1>\": {},\n \"<key2>\": {},\n \"<key..>\": {},\n \"<keyN>\": {},\n \"aws_account_id\": \"123456789012\",\n \"aws_service\": \"EC2\",\n \"aws_region\": \"us-east-1\"\n }\n}"
response = http.request(request)
puts response.read_bodyAdds new item to shopping cart. For LOA product type with AWS BYOIP provisioning, include aws_account_id, aws_service, and aws_region in product_fields.
curl --request POST \
--url https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"product_type": "ipv4",
"billing_cycle": 0,
"label": "string",
"product_options": {
"quantity": {
"<key1>": 0,
"<key2>": 0,
"<key..>": 0,
"<keyN>": 0
},
"selection": {
"<key1>": "string",
"<key2>": "string",
"<key..>": "string",
"<keyN>": "string"
}
},
"product_fields": {
"<key1>": {},
"<key2>": {},
"<key..>": {},
"<keyN>": {},
"aws_account_id": "123456789012",
"aws_service": "EC2",
"aws_region": "us-east-1"
}
}
'import requests
url = "https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items"
payload = {
"product_type": "ipv4",
"billing_cycle": 0,
"label": "string",
"product_options": {
"quantity": {
"<key1>": 0,
"<key2>": 0,
"<key..>": 0,
"<keyN>": 0
},
"selection": {
"<key1>": "string",
"<key2>": "string",
"<key..>": "string",
"<keyN>": "string"
}
},
"product_fields": {
"<key1>": {},
"<key2>": {},
"<key..>": {},
"<keyN>": {},
"aws_account_id": "123456789012",
"aws_service": "EC2",
"aws_region": "us-east-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({
product_type: 'ipv4',
billing_cycle: 0,
label: 'string',
product_options: {
quantity: {'<key1>': 0, '<key2>': 0, '<key..>': 0, '<keyN>': 0},
selection: {
'<key1>': 'string',
'<key2>': 'string',
'<key..>': 'string',
'<keyN>': 'string'
}
},
product_fields: {
'<key1>': {},
'<key2>': {},
'<key..>': {},
'<keyN>': {},
aws_account_id: '123456789012',
aws_service: 'EC2',
aws_region: 'us-east-1'
}
})
};
fetch('https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items', 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://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items",
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([
'product_type' => 'ipv4',
'billing_cycle' => 0,
'label' => 'string',
'product_options' => [
'quantity' => [
'<key1>' => 0,
'<key2>' => 0,
'<key..>' => 0,
'<keyN>' => 0
],
'selection' => [
'<key1>' => 'string',
'<key2>' => 'string',
'<key..>' => 'string',
'<keyN>' => 'string'
]
],
'product_fields' => [
'<key1>' => [
],
'<key2>' => [
],
'<key..>' => [
],
'<keyN>' => [
],
'aws_account_id' => '123456789012',
'aws_service' => 'EC2',
'aws_region' => 'us-east-1'
]
]),
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://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items"
payload := strings.NewReader("{\n \"product_type\": \"ipv4\",\n \"billing_cycle\": 0,\n \"label\": \"string\",\n \"product_options\": {\n \"quantity\": {\n \"<key1>\": 0,\n \"<key2>\": 0,\n \"<key..>\": 0,\n \"<keyN>\": 0\n },\n \"selection\": {\n \"<key1>\": \"string\",\n \"<key2>\": \"string\",\n \"<key..>\": \"string\",\n \"<keyN>\": \"string\"\n }\n },\n \"product_fields\": {\n \"<key1>\": {},\n \"<key2>\": {},\n \"<key..>\": {},\n \"<keyN>\": {},\n \"aws_account_id\": \"123456789012\",\n \"aws_service\": \"EC2\",\n \"aws_region\": \"us-east-1\"\n }\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://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"product_type\": \"ipv4\",\n \"billing_cycle\": 0,\n \"label\": \"string\",\n \"product_options\": {\n \"quantity\": {\n \"<key1>\": 0,\n \"<key2>\": 0,\n \"<key..>\": 0,\n \"<keyN>\": 0\n },\n \"selection\": {\n \"<key1>\": \"string\",\n \"<key2>\": \"string\",\n \"<key..>\": \"string\",\n \"<keyN>\": \"string\"\n }\n },\n \"product_fields\": {\n \"<key1>\": {},\n \"<key2>\": {},\n \"<key..>\": {},\n \"<keyN>\": {},\n \"aws_account_id\": \"123456789012\",\n \"aws_service\": \"EC2\",\n \"aws_region\": \"us-east-1\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.ipxo.com/billing/v1/{tenantUUID}/cart/items")
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 \"product_type\": \"ipv4\",\n \"billing_cycle\": 0,\n \"label\": \"string\",\n \"product_options\": {\n \"quantity\": {\n \"<key1>\": 0,\n \"<key2>\": 0,\n \"<key..>\": 0,\n \"<keyN>\": 0\n },\n \"selection\": {\n \"<key1>\": \"string\",\n \"<key2>\": \"string\",\n \"<key..>\": \"string\",\n \"<keyN>\": \"string\"\n }\n },\n \"product_fields\": {\n \"<key1>\": {},\n \"<key2>\": {},\n \"<key..>\": {},\n \"<keyN>\": {},\n \"aws_account_id\": \"123456789012\",\n \"aws_service\": \"EC2\",\n \"aws_region\": \"us-east-1\"\n }\n}"
response = http.request(request)
puts response.read_bodyBearer authentication header of the form Bearer <token>, where <token> is your auth token.
UUID
^[a-zA-Z0-9]{8}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{12}$Product Type
ipv4, ipv6, loa, asn Billing Cycle
0, 1, 3, 6, 12, 24 Service label
Product options are different per product. Please lookup the options from the respective product endpoint
Show child attributes
Product fields are different per product, and requirements differ.
Please lookup the needed fields from the respective product endpoint
e.g. /v1/{tenantUUID}/market/ipv4/product-info for ipv4.
For LOA product type with AWS BYOIP, include aws_account_id, aws_service, and aws_region.
Show child attributes
Successful operation