A single IP address you can use from anywhere, with no changes to your infrastructure
Rayley is a hosted egress proxy. Point your app at it from any platform — Vercel, GitHub Actions, Kubernetes, a VM — and every outbound request leaves from a single static IP you control, ready to allowlist with Stripe, Plaid, a customer's database, or any other upstream.

Why DIY Static IPs Are a Pain
Running your own NAT gateway or proxy means operating production networking infrastructure. When VMs fail, IPs rotate, or regions go down, you're managing availability and routing instead of building features.
Rayley eliminates this operational overhead with dedicated IPs and zero infrastructure to manage.
- VM lifecycle management and NAT gateway uptime
- Health checks, monitoring, and automated failover logic
- Cross-region firewall rules and security group configuration
- IP reputation monitoring and address rotation
- Multi-tenant interference and resource contention
- Security patching, CVE tracking, and OS upgrades
- Egress observability: logs, metrics, alerting, and on-call
- Predictable IP lifecycle without manual intervention
Built for production. Operated by engineers.
Dedicated static egress with predictable IPs, isolation per customer, and an engineering-first ops posture.
Dedicated outbound IP
Your own static egress IP that stays predictable and stable. Never shared, never rotated.
Regional routing
Run Rayley close to your target API to reduce latency and improve reliability.
Automatic failover
Health-checked proxies with instant reroute on failure. No manual intervention.
Full TCP support
HTTP, HTTPS, WebSockets, Postgres, MySQL, gRPC, and any other TCP-based protocol.
Transparent incidents
Postmortems for every outage, with root cause and remediation steps.
Engineer support
Designed, operated, and supported by the engineers who built Rayley. No handoffs or ticket ping-pong.
Easy Integration for Developers
Use Rayley from CI/CD and backend runtimes with the same allowlisted outbound IP as your production systems.
const PROXY_TOKEN = process.env.RAYLEY_TOKEN;
const response = await fetch('https://api.example.com/data', {
proxy: 'https://proxy.rayley.com',
headers: {
'Proxy-Authorization': `Bearer ${PROXY_TOKEN}`,
},
});
const data = await response.json();
console.log(data);Reliable static IPs built
for production workloads.
Frequently asked questions
If something isn't clear, you can always talk directly to an engineer.
