Geonode logo

Travel Fare Aggregation Proxies: See the Price Each Market Sees

Quick answer

For travel fare aggregation you need rotating residential proxies with country and city targeting. Airlines, hotel chains and OTAs price by the visitor's location and rate-limit datacenter ranges hard. Geonode residential proxies give you 2.5M IPs online across 195+ countries, sticky sessions up to 24 hours for multi-step search flows, and pay-as-you-go pricing from $0.27/GB at volume.

Why travel fare aggregation breaks without the right proxies

Travel pricing is regional by design. The same Lisbon-to-Tokyo fare returns different totals, taxes and currency depending on where the request originates, and many OTAs redirect a foreign IP to a local storefront before you see a single number. If your crawler runs from one datacenter in Frankfurt, every row is the German price.

The second problem is throughput. Fare searches are expensive for the target, so OTAs and metasearch sites apply aggressive rate limiting on repeated queries from one IP. You get HTTP 429 responses, soft-limited results with fewer fares, or a CAPTCHA wall after a handful of searches. Datacenter IP ranges are already on reputation lists, so the limit kicks in sooner.

The third problem is session consistency. A fare search is a multi-step flow: pick dates, submit, poll results, open the fare rules. If the IP changes between those steps, the session token no longer matches and the site drops you back to the start.

Which Geonode proxy type fits

Residential proxies are the right default for fare aggregation. The IPs belong to real home connections, so OTAs serve the normal consumer storefront and the local price. Targeting by country, state or city (state and city cannot be combined) lets one crawler collect New York, London and Singapore fares by changing one parameter in the username. Sticky sessions up to 24 hours cover the longest search flow.

ISP proxies suit a narrow set of jobs: partner portals or loyalty dashboards where you want the same static IP every day. They cost from $1.25/IP with unlimited bandwidth, so they suit a few accounts with many pages each. Datacenter proxies from $0.14/GB fit only targets that do not price by location.

  • Residential — Best for: Fare search across OTAs, airlines, hotel sites by region; IP source: Real home connections, 2.5M online; Session: Rotating or sticky up to 24h; Price from: $0.27/GB at volume
  • ISP (static residential) — Best for: Partner and loyalty portals, same IP every day; IP source: Static IPs from real ISPs; Session: Unlimited sessions, unlimited bandwidth per IP; Price from: $1.25/IP
  • Datacenter — Best for: Non-geo-priced APIs, sitemap and metadata crawls; IP source: Datacenter ranges; Session: Rotating; Price from: $0.14/GB

If the OTA is a ready target in Unlimited Scraper, such as Booking, Airbnb or TripAdvisor, you can skip the proxy layer and get parsed JSON with JavaScript rendering built in.

How to set it up

  1. Create a Geonode account and open the residential product. Copy your credentials; the endpoint is premium-residential.geonode.com on port 9000 for HTTP, HTTPS and SOCKS5.
  2. Decide which markets you need. Add -country-xx to the username, and -city-name or -state-name for metro-level pricing. Keep one proxy username per market in your config.
  3. Use a sticky session for each fare search flow. Append -session-<id> with a unique string per search; drop it for rotating requests such as sitemap or airport-list crawls.
  4. Send the Accept-Language and currency headers the local storefront expects, and set a realistic timeout. Fare results often load in a second request, so poll rather than retry.
  5. Log the origin country, returned currency and HTTP status with every fare row so you can audit which prices came from which market later.
# verify endpoint against docs.geonode.com before publishing
import requests

USER = "USERNAME-country-gb-city-london-session-fare7f3a"
PASS = "PASSWORD"
proxy = f"http://{USER}:{PASS}@premium-residential.geonode.com:9000"

r = requests.get(
    "https://www.example-ota.com/flights?from=LHR&to=NRT&date=2026-11-04",
    proxies={"http": proxy, "https": proxy},
    headers={"Accept-Language": "en-GB,en;q=0.9"},
    timeout=60,
)
print(r.status_code, r.headers.get("content-type"))

Get the exact snippet for your language from the API Code Generator in the dashboard.

Travel-specific settings that matter

Sticky sessions per search, rotating for discovery

Use a sticky session for the full search-to-fare-rules flow and rotate only between searches. One session id per origin-destination-date triple keeps the OTA's session token valid. For route discovery and sitemap crawls, drop the session suffix.

City targeting for metro pricing

Hotel and car-rental prices often differ between the capital and a secondary city in the same country. Target by city where the site localises that deep; fall back to country targeting for airlines, which mostly price by point of sale. State and city cannot be combined.

Currency and locale headers

An IP in France with an English browser locale and USD cookies looks inconsistent. Match Accept-Language to the country you target and clear currency cookies between sessions. Store the currency the site actually returned, not the one you requested.

Concurrency and back-off

Geonode does not set a thread limit, so the ceiling is the target's tolerance. Start with modest parallelism per domain, back off exponentially on 429 and 403, and rotate the session id after a CAPTCHA.

What to log

Record IP country, session id, status, response time, returned currency and fares parsed. A drop in fare count with a 200 status usually signals a soft limit, and you only catch it by logging counts per request.

What Geonode gives you for travel fare aggregation

  • 2.5M residential IPs online, 30–50M unique IPs rotating monthly, 195+ countries.
  • Country, state, city, ASN and OS targeting set directly in the proxy username.
  • Sticky sessions up to 24 hours for multi-step fare search flows.
  • Unlimited Scraper ready targets for Booking, Airbnb and TripAdvisor with JavaScript rendering built in.
  • HTTP, HTTPS, SOCKS5 and UDP, no fixed concurrency limit, 24/7 support.

Pricing for travel fare aggregation

Residential traffic is pay-as-you-go with no contract. The entry plan is 10 GB for $7.92 per month, 50 GB is $34.65, and the per-gigabyte rate falls to $0.27/GB at volume. A 3-day trial costs $5 so you can test a few OTAs before committing. ISP proxies start at $1.25/IP with unlimited bandwidth, and rotating datacenter proxies start at $0.14/GB. See the full breakdown on the pricing page.

FAQ

Why do travel fare aggregation proxies need to be residential?

OTAs and airlines serve the consumer storefront and local price to home connections. Datacenter ranges hit rate limits early and are often redirected to a generic international page, so the fares you collect do not match what a local traveller sees.

How many fares can I collect per gigabyte?

It depends on the page weight. A fare results page with scripts and images is heavier than a JSON response from an OTA's internal search endpoint. Blocking images and fonts, or using the Scraper API to return Markdown, cuts bandwidth per search substantially.

Can I target a specific city for hotel prices?

Yes. Append -city-<name> to the username for metro-level IPs where available. Hotel and car-rental sites often localise at that depth. Note that city and state targeting cannot be combined, so pick the level that matches how the target site prices.

Do travel fare aggregation proxies work with headless browsers?

Yes. The same endpoint works with Playwright, Puppeteer and Selenium over HTTP or SOCKS5. For heavily scripted OTAs you can instead use the Scraper API, which renders JavaScript and returns HTML, Markdown or JSON without a browser of your own.

Is collecting OTA fares allowed?

Collect only publicly available pricing, respect each site's terms and robots policy, and keep request rates reasonable. Use proxies only on accounts you own or manage with authorisation. Geonode's acceptable use policy prohibits fraud, spam and credential abuse, and we act on reports.

Should I use the proxies or Unlimited Scraper for Booking and Airbnb?

If you want parsed listings and prices without maintaining a browser fleet, Unlimited Scraper has ready targets for Booking, Airbnb and TripAdvisor. If you already have a crawler and need regional IPs behind it, residential proxies are the more flexible option.

Start

Test with the $5 trial, then scale per gigabyte as your market coverage grows. Get started or Contact sales for a volume quote or help choosing between proxies and the Scraper API.

Related: Price intelligence · Web scraping · High-volume data scraping