🇪🇺 Fixed egress for European clinical research

🇪🇺 Static IP for EORTC

EORTC coordinates clinical cancer research across a network of European hospitals. Route the trial-data pipelines, scripts, and containers your study runs on through two fixed static EU IPs with one HTTPS_PROXY variable.

Research compute shell

# on your analysis VM or container

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

export NO_PROXY=localhost,127.0.0.1

import requests

# requests and httpx read HTTPS_PROXY

r = requests.get(

  "https://api.partner-institute.eu/cohort",

  headers={"Authorization": "Bearer ..."})

The Problem

Clinical research runs on trust between institutions, and a lot of that trust is expressed in network rules. Your workloads keep moving; the allowlists do not.

Institutional IT approves addresses, not intentions

Hospital and university networks gate automated access to their systems. A firewall exception, an API allowlist entry, a vendor onboarding form: each one is pinned to a source address. An automation whose egress changes with every deploy cannot be pinned, so it cannot be approved.

Research compute is multicentre and mobile

The same study touches a university cluster one month, a cloud VM the next, and a container somewhere else after that. Each environment exits through a different address, so every institution you exchange data with sees a different visitor, and yesterday's exception stops matching.

No public API means the integration work is yours

EORTC shares data and samples through a formal request program, not a developer API. The engineering happens on your side: analysis pipelines, licensed quality-of-life instruments, and EDC-side automations calling institutional and vendor systems, several of which filter by source address.

Health-data egress needs a residency story

GDPR makes the path your data takes part of the compliance conversation. When a script running in a non-EU region calls a European institutional endpoint, the DPO and the ethics review will ask why. A detour outside the EU is exactly the kind of question a research project does not need.

The Solution

One fixed EU IP pair for every workload your study spawns

Your Research Workloads

pipelines, scripts, containers

HTTPS Proxy

(Static EU IP)

Research Systems

with IP allowlist

Whether your workload runs on a university cluster, a cloud VM, or a container in a pipeline, it presents the same two EU addresses to the outside world. Get the address pair approved once, and it holds for the life of the study.

An environment variable, not a networking project. No VPN into the hospital network, no firewall change requests, nothing to redo when the compute moves.
Works wherever the workload runs: a shell on an analysis server, a scheduled job, a container in a data pipeline.
TLS passthrough. Study credentials, cohort identifiers, and payload data stay unreadable at the proxy.

Who this is built for

Teams doing clinical research work in and around EORTC studies who need the institutions they call to recognize them.

Data managers and study coordinators

Your site's automations push and pull from EDC platforms, registries, and partner systems. Give every job the same stable egress identity instead of a new one per server.

Researchers working with shared data

Data and samples requested through EORTC's sharing program land in your environment for analysis. The pipelines you build around them still call institutional and publisher APIs that care where you come from.

Quality-of-life and PRO researchers

Digital data collection built on licensed EORTC instruments runs as software, and software has an egress address. Make it a stable one before the hosting changes underneath it.

Hospital IT and institute platform teams

You approve the exceptions researchers ask for. Two fixed addresses that outlive any single VM turn each approval into a one-time conversation instead of a recurring one.

Implementation

Set the variable in the environment your workload already runs in. The next process or container that starts egresses from the fixed pair.

On an analysis server or VM

Add the export to your shell profile so every session and job launcher picks it up, then source it or reconnect. Keep the credentials out of committed files.

# ~/.bashrc or ~/.zshrc on the machine
export HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443
export NO_PROXY=localhost,127.0.0.1

# apply without reconnecting
source ~/.bashrc

In containers

For Docker-based workloads, pass the variable when the container starts. The same pattern applies to pipeline task definitions: provide the environment, the app reads it.

# docker run
docker run -e HTTPS_PROXY=https://user:pass@eu-01.outboundgateway.com:8443 \
           -e NO_PROXY=localhost,127.0.0.1 \
           your-analysis-image

# docker-compose.yml
services:
  pipeline:
    environment:
      - HTTPS_PROXY=${OGW_PROXY_URL}
      - NO_PROXY=localhost,127.0.0.1

Python analysis scripts

requests and httpx read HTTPS_PROXY from the environment automatically. No code changes.

import os
import requests

# picked up from HTTPS_PROXY in the environment
r = requests.get(
    "https://api.partner-institute.eu/cohort",
    headers={"Authorization":
        f"Bearer {os.environ['PARTNER_TOKEN']}"},
)

Node.js apps

Node's fetch does not follow proxy environment variables on its own. Wire it explicitly with https-proxy-agent.

const { HttpsProxyAgent } = require('https-proxy-agent');
const agent = new HttpsProxyAgent(process.env.HTTPS_PROXY);

const res = await fetch('https://api.partner-institute.eu/cohort', {
  headers: { 'Authorization': 'Bearer ..' },
  agent,
});

Whitelist both IPs, everywhere

Your account includes two fixed IP addresses. Add both to every allowlist you maintain. Traffic balances across the pair, and if one proxy node drops out the other keeps your workloads online, whatever machine or cluster they run on.

📖 Complete Documentation: For detailed examples, error handling, and other Python libraries, see the Python SSL Proxy Guide, Node.js Guide, and all other language guides.

European research, European egress

EORTC is a European organisation coordinating research across European hospitals, under GDPR, in the era of the European Health Data Space. OutboundGateway keeps the outbound leg consistent with that reality: European data centres, GDPR-conscious handling, and no detour through overseas infrastructure just to reach an institutional endpoint.

GDPR-aligned routing

Traffic to institutional and partner systems leaves from EU addresses through EU infrastructure, which simplifies the data-processing story you tell ethics committees and auditors.

Sovereignty end to end

European research data stays on a European path. No part of the outbound route depends on a non-EU provider.

Predictable origin

Two stable addresses make your integrations auditable: institutions can pin exactly where your traffic comes from, and it stops moving between environments.

Why research teams choose OutboundGateway

Two addresses, every workload

Scripts, pipelines, and containers all present the same pair, with automatic failover between them.

Identity survives redeploys

Move between clusters, VMs, and containers freely. The approved addresses belong to your account, not to any machine.

EU-hosted

European data centres and a GDPR-conscious setup, so egress matches where your research data already lives.

Works across the stack

Python, Node, and any runtime that honours HTTPS_PROXY. One pair covers scripts, services, and pipeline tasks alike.

Encrypted end to end

TLS passthrough means the proxy never sees plaintext. Tokens, payloads, and study data remain private.

Flexible plans

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

Give your research workloads a fixed EU IP

Stop renegotiating network exceptions every time the compute moves. One environment variable, and every script, pipeline, and container in your study egresses through the same two fixed EU IPs.

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

Frequently Asked Questions

Does EORTC have an API I can call?

EORTC does not operate a public developer API. Access to data and samples collected in its research goes through the Data and Sample Sharing program: qualified researchers submit a proposal via online forms, under a published Data Sharing Policy and Terms of Use, with questions handled by datasharing@eortc.org. The proxy is not about reaching EORTC systems; it gives the workloads you run a stable outbound identity for the institutional and vendor systems that do filter by source address.

Why would EORTC-related work need a static IP?

Because the approvals around your work are pinned to addresses while your compute is not. Hospital and university IT, EDC vendor onboarding, and partner-institution integrations commonly register the source address an automated connection will come from. Move your pipeline from a cluster to a cloud VM, or rebuild a container host, and that registration silently stops matching. Two fixed egress IPs make the registration permanent.

Do I need to change my analysis or pipeline code?

For Python workloads using requests or httpx, no: they read HTTPS_PROXY from the environment automatically, so exporting the variable on the machine or in the container is enough. Node's built-in fetch ignores proxy environment variables, so Node services need a small change with https-proxy-agent, shown in the implementation above.

Still deciding?

Happy to talk through how a two-IP EU egress fits your study setup, from a single analysis VM to pipelines spread across clusters and clouds.

Contact Our Founders →