Vercel functions ship dynamic egress by default, and its native Static IPs are a paid addon on Vercel regions. Route your outbound calls through two fixed static EU IPs set as an HTTPS_PROXY env var, on any plan.
# Vercel env var (any plan)
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
# app/api/route.ts
const res = await fetch(
'https://api.partner.eu/orders',
{ agent: new HttpsProxyAgent(..) }
)
Vercel does offer static egress, but it's a paid, plan-gated addon on Vercel regions, not a fixed EU address you get by default.
Serverless and edge functions run on ephemeral cloud infrastructure, so their outbound IP rotates across large subnets. A call to an IP-whitelisted partner API passes one moment and fails the next with no code change.
Vercel's Static IPs feature exists, but it's gated to Pro and Enterprise plans and billed separately. Hobby and many Pro projects end up looking elsewhere rather than paying up just to get an allowlisted address.
Vercel is a US company and its native static egress leaves from Vercel regions, not from EU-sovereign infrastructure. For GDPR-minded teams, the native option doesn't solve the data-residency side of the problem.
A Next.js app spreads across Development, Preview, and Production environments, each with its own function instances. Without a single fixed egress, there's no one address to whitelist or to point at in an audit.
"What IP will your Vercel app call from, so I can allow it?"
You want one fixed answer that holds across Preview and Production, not "whichever serverless instance Vercel happened to run."
Vercel function
HTTPS Proxy
(Static EU IP)
Whitelisted API
Every outbound HTTPS call from your Vercel function leaves from the same pair of EU addresses, whether it's a partner API or a payment endpoint. Two IPs back the account, and if one is down the other takes over.
fetch and axios honour HTTPS_PROXY with no code rewrite, on Hobby or Pro.
fetch code starts routing through it.
Shipping on Vercel whose route handlers and server actions call partner APIs behind an IP allowlist.
On plans below Vercel's paid Static IPs feature, who still need a fixed address to reach IP-whitelisted APIs.
Running EU products on Vercel that need GDPR-aligned outbound access from a fixed EU address.
Accountable for where their Vercel functions send data, who want a documented EU egress rather than an ever-changing address.
Set HTTPS_PROXY as a Vercel environment variable. Outbound calls then leave through your fixed EU IP, with no function rewrite.
Add HTTPS_PROXY in the Vercel dashboard (Project > Settings > Environment Variables) or with the CLI. In a Node runtime, pass it explicitly with https-proxy-agent.
// Vercel env var (any plan)
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
PARTNER_API_TOKEN=your_token
// app/api/orders/route.ts
import { HttpsProxyAgent } from 'https-proxy-agent';
const agent = new HttpsProxyAgent(process.env.HTTPS_PROXY);
export async function GET() {
const res = await fetch('https://api.partner.eu/orders', {
headers: { 'Authorization': `Bearer ${process.env.PARTNER_API_TOKEN}` },
agent,
});
return Response.json(await res.json());
}
Add it as an environment variable scoped to the environments you need. Keep the proxy URL in a sensitive env var so it never sits in plaintext in your repo.
# Dashboard: Project > Settings > Environment Variables
HTTPS_PROXY = https://user:pass@eu-01.outboundgateway.com:8443 (mark as Sensitive)
Scope: Production, Preview, Development (as needed)
# Or via the Vercel CLI
vercel env add HTTPS_PROXY production
vercel env add HTTPS_PROXY preview
# In code, read it like any env var
const proxy = process.env.HTTPS_PROXY;
Two IPs, so a deploy doesn't break your integration
Your account comes with two static IP addresses (for example 51.xx.xx.10 and 51.xx.xx.11). Whitelist both on your partner API. If one proxy node is briefly unavailable, traffic shifts to the other, so a Vercel redeploy isn't the thing that severs your connection.
📖 Want the longer version? Worked examples, error handling, and other languages are in the Node.js Guide, Python SSL Proxy Guide, and the rest of the docs.
Vercel is US-hosted and its native static egress leaves from Vercel regions. For GDPR-minded teams, a fixed EU egress fills that gap.
The proxy runs in EU data centres, so your Vercel function's outbound traffic leaves from European infrastructure instead of a US Vercel region.
Because TLS passes straight through, the proxy never decodes your API tokens or request payloads. It forwards encrypted bytes; it doesn't read them.
Traffic doesn't bounce through US infrastructure on its way to your partner API, which keeps the data path inside the EU and removes a wrinkle from GDPR reviews.
When a partner asks where your Vercel function calls from, the answer is two fixed EU addresses, not a list that changes with every deploy. The failover pair covers maintenance windows.
Two addresses to register, with automatic failover, so your traffic isn't riding on a single point of failure.
No need for Vercel's paid Static IPs addon or an Enterprise seat. Set an env var and you have a fixed egress.
European data centres and a GDPR-conscious setup, giving your Vercel app a predictable EU address it doesn't have natively.
Development, Preview, and Production all leave through the same stable pair of IPs.
TLS passthrough means the proxy can't read your traffic. Tokens and request data stay private the whole way.
Starting from €29/month. Flexible plans for every scale. Cancel anytime.
Stop letting dynamic egress and plan-gated addons decide whether your IP-whitelisted APIs keep working. Put your Vercel outbound traffic behind one stable, GDPR-conscious address.
€29/month starter plan • 7-day refund policy • Direct founder support
Yes, Vercel has a Static IPs feature, but it's a paid addon gated to Pro and Enterprise plans, and it egresses from Vercel (US) regions rather than EU-sovereign infrastructure. OutboundGateway gives you a fixed pair of EU addresses on any plan, set as a simple HTTPS_PROXY env var, which is useful if you're on Hobby, want EU data residency, or would rather not pay for the addon.
Add HTTPS_PROXY in Project > Settings > Environment Variables, scoped to Production, Preview, or Development, or with vercel env add. Mark it as sensitive so it isn't exposed in plaintext. In a Node runtime, pass it to https-proxy-agent; requests in Python reads it automatically.
Yes. Because the proxy is just an environment variable, it works regardless of your Vercel plan. Hobby projects that can't access Vercel's plan-gated Static IPs can still get a fixed pair of EU addresses for their outbound HTTPS calls.
Happy to talk through how a two-IP egress fits your specific Vercel setup, whether it's a Next.js route handler or a serverless function.
Contact Our Founders →