NAT Gateway Alternative for Serverless

Static Outbound IP
for Serverless Environments

Stop wrestling with VPC connectors and NAT gateways. Route your outbound traffic through CORSPROXY and get a stable, whitelistable IP address in one line of code.

// Before: Complex GCP infrastructure
Cloud Run → VPC Connector → NAT Gateway → Static IP → API

// After: One line change
Cloud Run → corsproxy.io (static IP) → API
99.9%
Uptime SLA
25ms
Average proxy latency
330+
Edge locations
TLS 1.3
End-to-end encryption
The Problem

Serverless IPs Are Dynamic.
APIs Require Static Ones.

Google Cloud Run, AWS Lambda, Vercel Functions, and other serverless platforms assign dynamic, unpredictable outbound IP addresses. But many third-party APIs, payment providers, and enterprise partners only accept traffic from whitelisted IPs.

403 Forbidden — Your IP 34.xx.xx.xx is not in the allowlist. Contact support to whitelist your server IP.

The traditional fix—VPC connectors, NAT gateways, reserved IPs—adds cost, complexity, and vendor lock-in. You shouldn't need cloud networking expertise just to call an API.

Google Cloud Run

Dynamic egress IPs. Requires VPC + Cloud NAT for static IP—$45+/mo overhead.

AWS Lambda

Shared IPs from AWS ranges. Needs VPC + NAT Gateway—$32+/mo minimum.

Vercel / Netlify / Railway

No static outbound IP option at all. You're stuck with rotating IPs.

How It Works

Three Steps to a Fixed Outbound IP

No infrastructure changes. No VPC configuration. No NAT gateways to manage.

1

Prefix Your API URL

Prepend corsproxy.io/?url= to the target API endpoint in your backend code.

2

Whitelist Our IP

Add CORSPROXY's static IP address to the third-party API's allowlist. We provide stable, documented IPs.

3

Deploy & Forget

Your serverless functions now route through a fixed IP. No infrastructure to maintain. Scale to zero without losing your IP.

Comparison

NAT Gateway vs. CORSPROXY

Traditional NAT Gateway

  • VPC connector + NAT gateway + reserved IP
  • $45–$100+/month in cloud infrastructure costs
  • Hours of IAM, networking, and Terraform config
  • Vendor-locked to a single cloud provider
  • Cold starts affected by VPC attachment

CORSPROXY Static IP

  • One URL prefix. Zero infrastructure changes.
  • Predictable pricing starting at $9.99/mo
  • Works in under 5 minutes. No Terraform needed.
  • Cloud-agnostic. Works from any platform.
  • No cold start penalty. No VPC attachment.
Use Cases

Built for Backend-to-Backend Traffic

Payment Gateways

Stripe Connect, Adyen, and banking APIs require IP whitelisting for webhook verification and API access. Route through a stable IP without NAT infrastructure.

Third-Party API Integrations

CRMs, ERPs, and SaaS platforms with IP-restricted APIs. Connect Salesforce, SAP, or partner APIs from any serverless platform.

Compliance & Security

Meet SOC 2 and enterprise security requirements that mandate fixed egress IPs for audit trails and network segmentation.

Data Provider APIs

Market data, credit bureaus, and government APIs that restrict access by IP. Access Bloomberg, Experian, or EDGAR from serverless.

CI/CD & Automation

GitHub Actions, GitLab CI, and cloud-based pipelines with no static IP. Access private registries and deployment targets through a fixed address.

Multi-Cloud Architectures

Running services across AWS, GCP, and Azure? Use a single stable IP for all outbound traffic regardless of which cloud you're on.

Integration

One Line of Code. Any Language.

Drop-in integration for your backend services. No SDK, no agent, no sidecar.

Node.js / TypeScript Cloud Run
// Node.js — Route outbound requests through CORSPROXY
const PROXY = 'https://corsproxy.io/?url=';

async function callWhitelistedAPI(endpoint: string, apiKey: string) {
  const response = await fetch(
    PROXY + encodeURIComponent(endpoint),
    {
      method: 'GET',
      headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json',
      },
    }
  );
  return response.json();
}

// Your Cloud Run service calls the external API through CORSPROXY
// The external API sees CORSPROXY's static IP, not Cloud Run's dynamic IP
const data = await callWhitelistedAPI(
  'https://api.partner.com/v1/data',
  process.env.PARTNER_API_KEY
);
Python Lambda / Cloud Functions
# Python — Static IP egress via CORSPROXY
import requests

PROXY = "https://corsproxy.io/?url="

def call_whitelisted_api(endpoint: str, api_key: str) -> dict:
    """Route request through CORSPROXY for stable outbound IP."""
    response = requests.get(
        f"{PROXY}{requests.utils.quote(endpoint, safe='')}",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
        },
    )
    response.raise_for_status()
    return response.json()

# External API only sees CORSPROXY's static IP
data = call_whitelisted_api(
    "https://api.partner.com/v1/data",
    os.environ["PARTNER_API_KEY"],
)
Go Any serverless runtime
// Go — Fixed IP outbound via CORSPROXY
package main

import (
  "fmt"
  "io"
  "net/http"
  "net/url"
)

const proxy = "https://corsproxy.io/?url="

func callWhitelistedAPI(endpoint, apiKey string) ([]byte, error) {
  req, _ := http.NewRequest(
    "GET",
    proxy+url.QueryEscape(endpoint),
    nil,
  )
  req.Header.Set("Authorization", "Bearer "+apiKey)
  req.Header.Set("Content-Type", "application/json")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    return nil, err
  }
  defer resp.Body.Close()
  return io.ReadAll(resp.Body)
}
Enterprise Ready

Security & Reliability Built In

TLS 1.3 Encryption

End-to-end encrypted. Your API keys and data are never stored or logged by our proxy.

API Key Authentication

Authenticate proxy requests with your CORSPROXY API key. Prevent unauthorized use of your proxy allocation.

99.9% Uptime SLA

Backed by Cloudflare's global network with 330+ edge locations. Redundant routing ensures availability.

Request Logging

Full visibility into proxied requests via the dashboard. Monitor latency, status codes, and throughput in real time.

Compatibility

Works With Every Serverless Platform

Google Cloud Run
AWS Lambda
Vercel Functions
Azure Functions
Cloudflare Workers
Railway
Render
Fly.io
Netlify Functions
Deno Deploy
DigitalOcean Functions
GitHub Actions
FAQ

Common Questions

Do you offer dedicated static IPs per customer?

Yes. On our Pro and Enterprise plans, you get dedicated static IP addresses that are exclusively assigned to your account. These IPs are stable and will not change unless you request it. Contact us for dedicated IP allocation.

Can I guarantee the IP won't rotate silently?

Absolutely. Our IPs are documented and stable. If we ever need to change an IP (extremely rare), you'll be notified well in advance with a migration window. We publish our current IP ranges in the dashboard.

Is this suitable for backend-to-backend traffic, not just browser CORS?

Yes. While CORSPROXY started as a CORS solution, the proxy works for any HTTP traffic—including server-to-server calls from Cloud Run, Lambda, or any backend service. Headers, auth tokens, and request bodies are forwarded transparently.

What about latency for backend workloads?

Our proxy adds approximately 25ms of latency on average, routed through Cloudflare's 330+ edge locations. For most API integration workloads, this overhead is negligible compared to the target API's own response time.

What throughput and rate limits apply?

Pro plans include unlimited requests and bandwidth. There are no artificial rate limits on paid plans. For high-throughput Enterprise workloads (millions of requests/day), contact us for custom infrastructure.

Can I select a specific region for the outbound IP?

Yes. Enterprise plans support region-specific static IPs (US, EU, APAC). This is useful when third-party APIs require traffic from a specific geographic region for compliance or data residency requirements.

Ditch the NAT Gateway

Get a static outbound IP in minutes

Stop paying for VPC connectors and NAT gateways. Route your serverless traffic through a stable, whitelistable IP with one line of code.