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.
Cloud Run → VPC Connector → NAT Gateway → Static IP → API
// After: One line change
Cloud Run → corsproxy.io (static IP) → API
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.
Three Steps to a Fixed Outbound IP
No infrastructure changes. No VPC configuration. No NAT gateways to manage.
Prefix Your API URL
Prepend corsproxy.io/?url= to the target API endpoint in your backend code.
Whitelist Our IP
Add CORSPROXY's static IP address to the third-party API's allowlist. We provide stable, documented IPs.
Deploy & Forget
Your serverless functions now route through a fixed IP. No infrastructure to maintain. Scale to zero without losing your IP.
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.
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.
One Line of Code. Any Language.
Drop-in integration for your backend services. No SDK, no agent, no sidecar.
// 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 — 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 — 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)
} 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.
Works With Every Serverless Platform
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.