Allocate a new egress IP from the gateway
curl --request POST \
--url https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-egress-ip",
"displayName": "My Egress IP"
},
"spec": {
"ipFamily": "IPv4"
}
}
'import requests
url = "https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips"
payload = {
"metadata": {
"name": "my-egress-ip",
"displayName": "My Egress IP"
},
"spec": { "ipFamily": "IPv4" }
}
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({
metadata: {name: 'my-egress-ip', displayName: 'My Egress IP'},
spec: {ipFamily: 'IPv4'}
})
};
fetch('https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips', 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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips",
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([
'metadata' => [
'name' => 'my-egress-ip',
'displayName' => 'My Egress IP'
],
'spec' => [
'ipFamily' => 'IPv4'
]
]),
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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-egress-ip\",\n \"displayName\": \"My Egress IP\"\n },\n \"spec\": {\n \"ipFamily\": \"IPv4\"\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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-egress-ip\",\n \"displayName\": \"My Egress IP\"\n },\n \"spec\": {\n \"ipFamily\": \"IPv4\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips")
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 \"metadata\": {\n \"name\": \"my-egress-ip\",\n \"displayName\": \"My Egress IP\"\n },\n \"spec\": {\n \"ipFamily\": \"IPv4\"\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-egress-ip",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Egress IP",
"gatewayName": "<string>",
"vpcName": "<string>",
"workspace": "<string>"
},
"spec": {
"ipFamily": "IPv4",
"publicIp": "<string>"
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}vpcs
Allocate a new egress IP from the gateway
POST
/
vpcs
/
{vpcName}
/
egressgateways
/
{gatewayName}
/
ips
Allocate a new egress IP from the gateway
curl --request POST \
--url https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-egress-ip",
"displayName": "My Egress IP"
},
"spec": {
"ipFamily": "IPv4"
}
}
'import requests
url = "https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips"
payload = {
"metadata": {
"name": "my-egress-ip",
"displayName": "My Egress IP"
},
"spec": { "ipFamily": "IPv4" }
}
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({
metadata: {name: 'my-egress-ip', displayName: 'My Egress IP'},
spec: {ipFamily: 'IPv4'}
})
};
fetch('https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips', 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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips",
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([
'metadata' => [
'name' => 'my-egress-ip',
'displayName' => 'My Egress IP'
],
'spec' => [
'ipFamily' => 'IPv4'
]
]),
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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-egress-ip\",\n \"displayName\": \"My Egress IP\"\n },\n \"spec\": {\n \"ipFamily\": \"IPv4\"\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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-egress-ip\",\n \"displayName\": \"My Egress IP\"\n },\n \"spec\": {\n \"ipFamily\": \"IPv4\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways/{gatewayName}/ips")
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 \"metadata\": {\n \"name\": \"my-egress-ip\",\n \"displayName\": \"My Egress IP\"\n },\n \"spec\": {\n \"ipFamily\": \"IPv4\"\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-egress-ip",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Egress IP",
"gatewayName": "<string>",
"vpcName": "<string>",
"workspace": "<string>"
},
"spec": {
"ipFamily": "IPv4",
"publicIp": "<string>"
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}Authorizations
OAuth2ApiKeyAuth
OAuth2 authentication with JWT tokens
Body
application/json
An individual IP address allocated from an egress gateway for dedicated outbound traffic
Response
200 - application/json
successful operation
An individual IP address allocated from an egress gateway for dedicated outbound traffic
Metadata for an egress IP address including gateway association and name
Show child attributes
Show child attributes
Specification for an egress IP including IP family and the provisioned address
Show child attributes
Show child attributes
Events happening on a resource deployed on Blaxel
Show child attributes
Show child attributes
Deployment status of a resource deployed on Blaxel
Available options:
DELETING, TERMINATED, FAILED, DEACTIVATED, DEACTIVATING, UPLOADING, BUILDING, DEPLOYING, DEPLOYED, BUILT Last modified on July 29, 2026
Was this page helpful?
⌘I
