🇪🇺 Replit has no static egress. Add one.

🇪🇺 Static IP for Replit

Running a Replit deployment? Your app is a container, so every run and redeploy hands it a fresh outbound IP. That breaks IP whitelists, rate limits, and payment keys. Drop a proxy into Replit Secrets for two fixed static EU IPs.

Replit Secrets

# In Replit, open Tools > Secrets

HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443

# main.py

import requests

r = requests.get(

  "https://discord.com/api/webhooks/..",

  json={"content": "deploy ok"}

)

# leaves through the static EU IP

Why a Replit app keeps losing its IP

The thing people hit on Replit isn't a missing feature in their code. It's that the network identity under their app won't sit still, and there's no switch on the platform to fix it.

No native static egress

Replit doesn't offer a reserved outbound IP for Deployments or Always-on tasks. If your script talks to an API that only allows specific addresses, there is no platform toggle that hands you one. You either remove the restriction or proxy the traffic.

A new address on every redeploy

Each deployment run spins up a fresh container with a fresh egress IP. Whitelists go stale, Discord or Slack webhooks start returning 401 or 403, and the only clue is that your bot quietly stopped posting overnight.

Rate limits and bot flags

A lot of the APIs people call from Replit (scraping targets, social platforms, free-tier services) throttle or challenge by IP. A rotating address reads as a bot, so you collect CAPTCHAs and HTTP 429s instead of data.

Payment keys that need a known IP

When a Replit prototype grows into something that charges real money, the payment provider usually wants the requests to come from a fixed address. Replit's moving egress makes that hard to promise, which blocks the move out of "demo" mode.

When the bot goes quiet

"My Replit bot worked at midnight and was blocked by morning, because it redeployed onto a new IP."

What you actually want is an address that doesn't care how often the container restarts.

The Solution

Send Replit's outbound traffic through one fixed EU IP

Your Replit app

HTTPS Proxy

(Static EU IP)

External API

Whatever API your Replit app calls, the request now leaves from the same pair of EU addresses every time. Two IPs back the account, and if one is briefly down the other takes over.

One Secret entry covers the whole repl. Standard clients (requests, fetch, axios, aiohttp) honour HTTPS_PROXY without code changes.
Survives the redeploy loop. The address stays put whether your deployment is on its first run or its hundredth restart.
TLS passes straight through, so tokens, webhook URLs, and scraped payloads stay encrypted and unreadable at the proxy.

What this gives a Replit deployment

A pair of fixed EU addresses to whitelist, with automatic failover between them. You stop chasing Replit's rotating egress and start giving providers one stable thing to trust.
Set once in Secrets, used everywhere. The proxy string lives next to your other keys, so dev and prod on Replit stay consistent instead of drifting.
Helps with the rate-limit problem too. A consistent IP that makes steady, identifiable requests is far less likely to trip bot detection than a stream of brand-new addresses.
EU egress for the whole repl, which lines up with how GDPR-minded teams want their outbound traffic to leave.
Lets you take payment integrations seriously. With a fixed address you can finally promise a provider the source they asked for, and move a Replit project toward production.

Who it's built for

Indie developers & bot builders

Running Discord and Slack bots, scrapers, and automations on Replit that keep getting blocked because the source IP changed under them.

Hackathon & prototype teams

Shipping MVPs fast on Replit that talk to gated APIs, and who can't afford to spend a day wiring up infrastructure just to get a stable address.

Project & coursework creators

Hosting projects on Replit that call region- or IP-restricted services, and who need their requests to come from one predictable EU address.

Data protection leads

Accountable for where their Replit-hosted services send data, who want a documented, stable EU egress instead of an ever-changing address.

Implementation

Add the proxy as a Replit Secret. Your outbound requests then leave through your fixed EU IP, and your app code stays as-is.

Python (requests)

In Replit, open Tools > Secrets and add HTTPS_PROXY. The requests library reads it automatically, so a normal request like this Discord webhook post already goes out through your static IP.

# Replit Secret
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
WEBHOOK_URL=https://discord.com/api/webhooks/123/abc

import os
import requests

# requests honours HTTPS_PROXY from the environment automatically
r = requests.post(
    os.environ["WEBHOOK_URL"],
    json={"content": "Deploy finished OK"},
)

print(r.status_code)  # 204 on success

Node.js (fetch)

Node's fetch doesn't read the env var on its own, so pass the proxy explicitly with https-proxy-agent. Same Secret, wired into the agent.

// Replit Secrets
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
WEBHOOK_URL=https://discord.com/api/webhooks/123/abc

const { HttpsProxyAgent } = require('https-proxy-agent');

const agent = new HttpsProxyAgent(process.env.HTTPS_PROXY);

// This POST leaves through your static EU IP
const res = await fetch(process.env.WEBHOOK_URL, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ content: 'Deploy finished OK' }),
  agent,
});

console.log(res.status);  // 204

Two IPs, so one bad box doesn't take your bot down

Your account comes with two static IP addresses (for example 51.xx.xx.10 and 51.xx.xx.11). Whitelist both wherever you register a source IP. If one proxy node is briefly unavailable, traffic shifts to the other, so an overnight redeploy isn't the thing that knocks your Replit app offline.

📖 Want the longer version? Worked examples, error handling, and other languages are in the Python SSL Proxy Guide, Node.js Guide, and the rest of the docs.

EU egress for Replit workloads

If your Replit app sends data anywhere, it helps to control where that traffic leaves from. EU-hosted egress keeps the outbound path predictable.

European infrastructure

The proxy runs in EU data centres, so your Replit app's outbound traffic leaves from European infrastructure rather than wherever the container happens to be scheduled.

GDPR-conscious by design

Because TLS passes straight through, the proxy never decodes your webhook URLs, API tokens, or request bodies. It forwards encrypted bytes; it doesn't read them.

No transatlantic detours

Traffic doesn't bounce through US infrastructure on its way out, which removes a common wrinkle from GDPR data-transfer reviews.

An egress you can name

When someone asks where your Replit app sends data from, the answer is two fixed EU addresses, not a list that changes every release. The failover pair covers maintenance windows.

Why teams route Replit through OutboundGateway

A pair of fixed IPs

Two addresses to register, with automatic failover between them, so your outbound traffic isn't riding on a single point of failure.

No app rewrite

Add one Secret and your existing requests, fetch, or axios code starts routing through the proxy. The rest of the repl is untouched.

EU-hosted

European data centres and a GDPR-conscious setup, so the outbound side of your Replit app leaves from a predictable EU address.

Survives the redeploy loop

The address stays constant across restarts, autoscaling, and Always-on wake-ups, so whitelists and webhook trust keep working.

Encrypted end to end

TLS passthrough means the proxy can't read your traffic. Tokens, webhook URLs, and scraped payloads stay private the whole way.

Flexible plans

Starting from €29/month. Flexible plans for every scale. Cancel anytime.

Give your Replit app a fixed EU egress

Stop letting container restarts choose which IP your app calls from. Add one Secret and every outbound request leaves from a stable, GDPR-conscious address.

€29/month starter plan • 7-day refund policy • Direct founder support

Frequently asked questions

Does Replit give you a static outbound IP on its own?

No. Replit runs your app in a container, and that container's egress address can change between runs and redeployments. There is no platform switch that reserves a fixed outbound IP for a Deployment or Always-on task, which is why teams add a proxy in Secrets to supply one.

Where do I put the proxy on Replit?

Add it as a Replit Secret under Tools, using the key HTTPS_PROXY and the proxy URL as the value. HTTP clients like requests pick that up automatically. For Node's fetch, pass the same Secret into an https-proxy-agent. Keep the proxy URL in Secrets so it isn't committed to your code.

Will this help with Discord, Slack, or scraping APIs blocking my bot?

Often, yes. Those services commonly throttle or flag requests by source IP, and Replit's rotating addresses can read as bot activity. A consistent IP that makes steady, identifiable requests is less likely to trip rate limits or CAPTCHAs than a stream of brand-new addresses. It won't bypass a legitimate block on your account, but it removes IP churn as a cause.

Still weighing it up?

Happy to talk through how a two-IP egress fits your specific Replit setup, whether it's a Discord bot, a scraper, or a payment prototype.

Contact Our Founders →