Create an egress gateway in a VPC
curl --request POST \
--url https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-egress-gateway",
"displayName": "My Egress Gateway"
},
"spec": {
"region": "us-pdx-1"
}
}
'import requests
url = "https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways"
payload = {
"metadata": {
"name": "my-egress-gateway",
"displayName": "My Egress Gateway"
},
"spec": { "region": "us-pdx-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({
metadata: {name: 'my-egress-gateway', displayName: 'My Egress Gateway'},
spec: {region: 'us-pdx-1'}
})
};
fetch('https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways', 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",
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-gateway',
'displayName' => 'My Egress Gateway'
],
'spec' => [
'region' => 'us-pdx-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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-egress-gateway\",\n \"displayName\": \"My Egress Gateway\"\n },\n \"spec\": {\n \"region\": \"us-pdx-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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-egress-gateway\",\n \"displayName\": \"My Egress Gateway\"\n },\n \"spec\": {\n \"region\": \"us-pdx-1\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways")
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-gateway\",\n \"displayName\": \"My Egress Gateway\"\n },\n \"spec\": {\n \"region\": \"us-pdx-1\"\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-egress-gateway",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Egress Gateway",
"vpcName": "<string>",
"workspace": "<string>"
},
"spec": {
"region": "us-pdx-1"
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}vpcs
Create an egress gateway in a VPC
POST
/
vpcs
/
{vpcName}
/
egressgateways
Create an egress gateway in a VPC
curl --request POST \
--url https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-egress-gateway",
"displayName": "My Egress Gateway"
},
"spec": {
"region": "us-pdx-1"
}
}
'import requests
url = "https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways"
payload = {
"metadata": {
"name": "my-egress-gateway",
"displayName": "My Egress Gateway"
},
"spec": { "region": "us-pdx-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({
metadata: {name: 'my-egress-gateway', displayName: 'My Egress Gateway'},
spec: {region: 'us-pdx-1'}
})
};
fetch('https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways', 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",
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-gateway',
'displayName' => 'My Egress Gateway'
],
'spec' => [
'region' => 'us-pdx-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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-egress-gateway\",\n \"displayName\": \"My Egress Gateway\"\n },\n \"spec\": {\n \"region\": \"us-pdx-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://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-egress-gateway\",\n \"displayName\": \"My Egress Gateway\"\n },\n \"spec\": {\n \"region\": \"us-pdx-1\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/vpcs/{vpcName}/egressgateways")
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-gateway\",\n \"displayName\": \"My Egress Gateway\"\n },\n \"spec\": {\n \"region\": \"us-pdx-1\"\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-egress-gateway",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Egress Gateway",
"vpcName": "<string>",
"workspace": "<string>"
},
"spec": {
"region": "us-pdx-1"
},
"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
Path Parameters
Body
application/json
An egress gateway that manages outbound traffic routing within a VPC. Multiple egress IPs can be allocated from a single gateway.
Response
200 - application/json
successful operation
An egress gateway that manages outbound traffic routing within a VPC. Multiple egress IPs can be allocated from a single gateway.
Metadata for an egress gateway resource including workspace, VPC, and name
Show child attributes
Show child attributes
Specification for an egress gateway including region and capacity configuration
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 1, 2026
Was this page helpful?
⌘I
