๐Ÿ‡ช๐Ÿ‡บ Static IP for Sabre API

๐Ÿ‡ช๐Ÿ‡บ Static IP for Sabre API

Sabre requires IP whitelisting for connection types such as Private Wire endpoints and legacy SOAP/GDS services. Route flight search, booking, and hotel API calls through two fixed static EU IPs so your travel integration keeps working from any platform.

Works with Sabre REST APIs, OAuth token flows, and booking platforms

sabre_auth.py ยท Python

import requests, os

# HTTPS_PROXY is set in the environment

r = requests.post(

  "https://api.test.sabre.com/v2/auth/token",

  data={"grant_type": "client_credentials"},

  auth=(CLIENT_KEY, CLIENT_SECRET),

)

# token request leaves via your EU IP

Why Sabre Integrations Get Blocked

Sabre requires IP whitelisting for connection types like Private Wire endpoints and legacy SOAP/GDS services. That requirement lands on your infrastructure.

Sabre mandates IP whitelisting for certain connections

Connections over Sabre's Private Wire network, along with legacy SOAP/GDS services, enforce strict IP filtering as baseline security. If your app's outbound IP keeps changing, the identity your Sabre integration presents is anything but trusted.

Booking flows span many calls, one identity

A Sabre workflow chains session or token creation, flight search, pricing, and booking into one sequence. Travel platforms that rotate egress mid-flow break the chain at the worst possible step, between search and confirmed booking.

Travel apps rarely run in a VPC you own

Booking engines and agency tools increasingly run on PaaS and serverless platforms. Without a NAT gateway of your own, there is no fixed egress IP to give Sabre or partner agencies at all.

OAuth token renewals come from everywhere

Sabre uses OAuth 2.0 access tokens that expire and renew. On horizontally scaled or serverless deployments, each renewal can originate from a different IP, which looks exactly like the credential-sharing pattern security teams block.

When Sabre security asks for your IP

"Provide the IP addresses your integration will call from."

You need an answer that survives your next deploy.

Route Sabre Calls Through a Static IP Proxy

Travel app

OutboundGateway

Two fixed EU IPs

Sabre API

Sabre sees one of your two fixed EU IPs, on every token request, search, and booking call.

  • Set once via HTTPS_PROXY, applies to every Sabre REST call your app makes.
  • No changes to your Sabre credentials, OAuth flow, or request code.
  • Two IPs with automatic failover, so a node hiccup never drops a live booking.

Why Travel Teams Choose This

  • A pair of fixed EU IPs your Sabre account manager can allowlist once and forget.
  • One proxy identity across sandbox testing and production deployments.
  • Works whether your booking engine runs on a VPS, Kubernetes, or a PaaS.
  • EU-hosted egress, GDPR-aligned, with traffic kept inside EU jurisdiction.

Designed For

Travel agencies and OTAs

Booking platforms integrating Sabre flights, hotels, and car rentals.

Travel tech SaaS

Products built on Sabre APIs that need a stable egress identity.

Corporate travel tools

Itinerary and policy-compliance apps calling Sabre in the background.

EU-regulated travel firms

Companies that must keep passenger-data traffic inside the EU.

How It Works

Set the proxy once. Every Sabre REST call, including the OAuth token request, goes through it.

Option 1: Python (requests)

Sabre's REST APIs authenticate with OAuth 2.0. The token request, flight search, and booking calls all go through the proxy automatically once the env var is set.

# .env
HTTPS_PROXY=https://USER:PASS@eu-01.outboundgateway.com:8443
SABRE_CLIENT_KEY=your_key
SABRE_CLIENT_SECRET=your_secret
import requests, os

def get_sabre_token():
    # requests reads HTTPS_PROXY from the environment
    r = requests.post(
        "https://api.test.sabre.com/v2/auth/token",
        data={"grant_type": "client_credentials"},
        auth=(os.environ["SABRE_CLIENT_KEY"],
              os.environ["SABRE_CLIENT_SECRET"]),
        timeout=30,
    )
    return r.json()["access_token"]

๐Ÿ“– Full guide: for retries, timeouts, and session reuse, see the Python SSL proxy guide.

Option 2: Node.js (axios)

Attach an https-proxy-agent to your axios instance. Remember to URL-encode credentials if the password contains special characters.

import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

const sabre = axios.create({
  httpsAgent: new HttpsProxyAgent(process.env.HTTPS_PROXY),
});

const { data } = await sabre.post(
  "https://api.test.sabre.com/v2/auth/token",
  new URLSearchParams({ grant_type: "client_credentials" }),
  { auth: { username: process.env.SABRE_CLIENT_KEY,
            password: process.env.SABRE_CLIENT_SECRET } }
);

๐Ÿ“– Full guide: see the Node.js SSL proxy guide.

Option 3: Docker

Load the proxy URL from a .env file so credentials never land in your image.

docker run --rm --env-file .env my-booking-app

Built for European Travel Businesses

Passenger data and itinerary traffic deserve an egress that stays in EU jurisdiction.

EU-hosted egress

Your proxy runs on infrastructure inside the European Union, so Sabre traffic stays within EU jurisdiction.

GDPR-aligned

Data handling that aligns with European privacy expectations for travel and passenger data.

No US routing

Traffic is not detoured through US-based servers, which keeps your compliance story simple.

Clear outbound identity

Two fixed IPs give Sabre and partner agencies a stable, predictable answer about where requests originate.

Why Developers Choose OutboundGateway

Two fixed EU IPs

A pair of static IPs with automatic failover. Allowlist once, keep booking.

Native HTTP client support

requests, httpx, and axios all work through HTTPS_PROXY with no bespoke code.

One config

Set the env var once. Sandbox, CI, and production all egress the same way.

No infra surgery

No NAT gateway, no VPC changes, no custom networking. Just an environment variable.

HTTPS-only

TLS passthrough. Sabre credentials and passenger data are never decrypted by the proxy.

Production-ready

Starting from โ‚ฌ19/month. Flexible plans for every scale. Cancel anytime.

Get a Static IP for Your Sabre Integration

Stop fighting rotating egress IPs. Give your Sabre integration two fixed EU IPs today.

Frequently Asked Questions

Does Sabre actually require IP whitelisting?

Yes, depending on your connection type. Sabre's documentation shows that connections over the Private Wire network and legacy SOAP/GDS services enforce strict IP filtering as part of their baseline enterprise security. Even on standard REST connections, security teams expect a trusted integration to come from a stable, allowlisted IP. OutboundGateway gives you two fixed EU IPs so your Sabre calls always originate from an allowlisted identity.

Do Sabre OAuth token requests go through the proxy too?

Yes. The OAuth 2.0 token endpoint is a normal HTTPS call, so with HTTPS_PROXY set, your token requests, flight searches, and booking calls all egress through the same two fixed EU IPs. That matters because token renewals from rotating IPs are exactly the pattern that looks suspicious to API security monitoring.

Can I use the same static IP for the Sabre sandbox and production?

Yes. The proxy identity is independent of the Sabre environment, so the same two fixed IPs carry your traffic to both the test and production endpoints. That keeps your allowlisted identity identical across environments and makes the move from sandbox to live deployment one less thing to renegotiate with security.

Still Deciding?

We're happy to help you check whether OutboundGateway fits your Sabre workload.

Contact Our Team →