🇪🇺 EU-hosted gateway, EU-hosted caller

🇪🇺 Static IP for Opper AI

opper.ai gives your agents one EU-hosted front door to 700+ models behind a single API key. Keep the hop in front of that door just as tidy: two fixed static EU IPs, so every call to api.opper.ai leaves from one stable European origin.

one line of code

from openai import OpenAI

import os

client = OpenAI(

base_url="https://api.opper.ai/compat/openai",

api_key=os.environ["OPPER_API_KEY"],

)

# egress pinned by HTTPS_PROXY

# in the same environment

A European gateway, reached through a revolving door

You chose Opper for its EU hosting and its one-key simplicity. Both of those choices quietly raise the stakes on the network your own traffic uses.

The residency chain has a weak first link

Opper runs in AWS Stockholm and tags models by region so you can keep processing inside the Union. But the hop before Opper is yours: a workload scheduled in a non-EU region, or a serverless platform with no fixed exit, quietly puts a foreign address at the start of an otherwise European chain.

One key unlocks 700 models

That is the pitch, and it is also the exposure: OPPER_API_KEY spans a catalog of 700+ models across 13+ providers and the credits that pay for them. A key that powerful, usable from any address on earth, deserves a network story: known egress points, keys that never leave controlled environments.

Agents live where IPs rotate

Opper is built for agents, and agents run on the infrastructure du jour: serverless functions, autoscaled pods, CI runners. Each deployment hands your API traffic a different datacenter address, so the gateway's abuse systems and per-IP rate limits meet a new stranger on every cold start.

The gateway covers models, not the rest

Opper normalizes the model hop beautifully. Around it, your agents still call tool APIs, partner endpoints, and webhooks that were never gatewayed, and those destinations judge you by source address. Fixing your egress fixes the whole outbound estate at once, not just the LLM calls.

The Solution

Same SDK, same base URL, one permanent European exit

Your agents & apps

OpenAI SDK, LangChain, Vercel AI

HTTPS Proxy

(Static EU IP)

Opper API

Stockholm, 700+ models

From Stockholm's point of view, your whole agent fleet becomes one repeat customer calling from two permanent European addresses: predictable for rate limits, boring for abuse systems, and perfectly in step with the residency you are paying for.

Every Opper-compatible client keeps working: the proxy rides in environment variables, so the OpenAI SDK, LangChain, Vercel AI SDK, and plain curl all inherit it without code changes.
Both addresses in the pair are registered everywhere it matters up front; day-to-day traffic simply picks whichever member of the pair is healthy, and no unknown third address ever shows up.
Your OPPER_API_KEY stays sealed in its TLS envelope end to end; the relay between you and Stockholm carries ciphertext and nothing else.

Why Opper users pick OutboundGateway

Finish the EU story

Opper keeps the model side of the journey inside the Union. A fixed European exit does the same for your side, so the residency claim covers the whole path instead of the second half.

Env-level, SDK-agnostic

Swap models, swap frameworks, try the newest release Opper adds to the catalog: none of it touches your network setup, because the addresses ride along in the environment every client already reads.

Two seats, no musical chairs

Redundancy without novelty: the standby address is on file with every allowlist before it is ever needed, so a failover reads as routine maintenance rather than a new device showing up.

Designed for

Teams who picked a European gateway on purpose.

Compliance-driven EU adopters

Teams whose DPIA and residency documentation leans on Opper's Stockholm hosting and EU-tagged models, and who need the first hop to be just as defensible.

Agent builders on ephemeral infra

Serverless and container-platform teams whose Opper calls originate from ever-changing addresses, and who want the gateway to see one steady customer instead.

Budget-conscious platform teams

Shops using Opper's BYOK, spend caps, and no-markup pricing to keep AI costs honest, and who apply the same discipline to where keys and traffic may travel.

Agencies shipping EU AI products

Consultancies building client agents on Opper who want the network posture settled once, as a reusable part of every delivery.

Implementation

Point the SDK at Opper as usual. The fixed exit travels in the environment.

Python: OpenAI SDK against Opper

The OpenAI SDK sits on httpx, which reads the standard proxy variables from the environment. Set them, and every request to Stockholm leaves through your fixed pair.

import os
from openai import OpenAI

# HTTPS_PROXY is honoured automatically
client = OpenAI(
    base_url="https://api.opper.ai/compat/openai",
    api_key=os.environ["OPPER_API_KEY"],
)

r = client.chat.completions.create(
    model="anthropic/claude-sonnet-4-5",
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)

Node.js: undici dispatcher

In Node, install the proxy once per process with undici's ProxyAgent; the OpenAI SDK, LangChain, and anything else on the same runtime inherit it.

import OpenAI from "openai";
import { ProxyAgent, setGlobalDispatcher } from "undici";

setGlobalDispatcher(new ProxyAgent(process.env.HTTPS_PROXY));

const opper = new OpenAI({
  baseURL: "https://api.opper.ai/compat/openai",
  apiKey: process.env.OPPER_API_KEY,
});

Docker: one env file for everything

Agent container, Opper key, and proxy configuration live together in a git-ignored env file, so no secret ever lands in a compose manifest.

# .env.opper (git-ignored)
HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
NO_PROXY=localhost,127.0.0.1
OPPER_API_KEY=op-your-key
services:
  agent:
    build: .
    env_file: .env.opper

Kubernetes: from a Secret

On the pod spec, the pair arrives via secretKeyRef next to the Opper key, never inline in the manifest.

env:
  - name: HTTPS_PROXY
    valueFrom:
      secretKeyRef:
        name: outboundgateway
        key: proxy-url
  - name: OPPER_API_KEY
    valueFrom:
      secretKeyRef:
        name: opper
        key: api-key

A pair, not a single point of failure

The proxy URL you store resolves to two independent European nodes. Connections ride whichever is healthy; if one drops for maintenance, its twin absorbs the traffic and your allowlists, logs, and rate-limit history never meet an address they have not seen before.

📖 Complete Documentation: For detailed examples, error handling, and advanced configurations, see the all guides.

European on both sides of the wire

Opper keeps the model hop in the Union. Give the first hop the same address, and residency stops being a footnote hunt.

GDPR, first hop included

Prompts with personal data travel from a named European address to a European gateway to EU-tagged models. The transfer description in your records finally describes the whole route.

EU AI Act ready

Deployers of AI systems are asked to document operational safeguards. A fixed, auditable egress for model traffic is one of the easier paragraphs in that file.

What you get

A steady identity

Rate limits, abuse heuristics, and provider logs all see the same two addresses every time, which is how well-behaved API clients look.

Works with every client

OpenAI SDK, LangChain, Vercel AI SDK, curl: anything that can read the environment gains the fixed exit, including Opper's newer compatibility endpoints.

Failover with no newcomers

Maintenance on one node hands off to the other registered address; no surprise source IP ever appears mid-incident.

EU chain, start to finish

Your exit, the gateway, and the models can now all be pinned to the Union, which shortens every residency conversation you will ever have.

Key discipline by default

With egress confined to known addresses and controlled environments, your 700-model master key gets the perimeter its blast radius deserves.

Honest pricing

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

Give your Opper traffic a home address

You standardized the model hop. Standardize the network hop with two permanent EU IPs and let the rest of the stack stop guessing where your agents call from.

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

Frequently asked questions

Can I restrict my Opper API key to specific source IPs?

Opper's public documentation centers authentication on API keys and does not advertise source-IP restrictions on them, so treat key-level allowlisting as something to confirm for your specific account or contract. Either way, a fixed egress remains worth having: your requests arrive from known addresses, your EU chain stays intact, and if Opper introduces key-level IP pinning you are already pre-registered with two stable ones.

Which Opper endpoint does the proxy work with?

All of them, because the egress is attached to your environment rather than to any URL. Whether you use the drop-in OpenAI compatibility endpoint at https://api.opper.ai/compat/openai or the newer /v3/compat surface that integrations like LangChain target, requests leave through the same two European addresses.

Will the extra hop slow down streaming responses?

The relay speaks HTTPS CONNECT and passes the encrypted stream through without decrypting or buffering it, and the exit sits in the EU next to Opper's Stockholm hosting, so the added distance is minimal. Model generation time dwarfs the milliseconds the hop adds, and the pair is redundant enough that latency is the least interesting property to fail over.

Building agents on Opper?

Tell us which SDKs and compatibility endpoints your stack uses. We will map out the fixed egress for your whole outbound estate, serverless or Kubernetes.

Contact Our Founders →