SYSTEM all green source omio.com queue 12,943 routes p99 latency 318ms dataflirt.com · scraper/omio-com
RUN . 84 active pipelines . omio.com live

Omio travel data,
at warehouse scale.

We extract dynamic pricing, routes, schedules, and operator data across trains, buses, flights, and ferries from Omio. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Routes tracked
1.2M /day
Price updates
4.7M /24h
Operators extracted
1,048 /run
Active pipelines
84
Uptime
99.94%
Data Dictionary

Every field we extract from omio.com

Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.

Complete list of extractable fields for Train Routes objects from omio.com. All fields typed and schema-versioned.

journey_iddeparture_stationarrival_stationdeparture_timearrival_timeduration_minutespricecurrencyoperatortrain_numbertransfer_count
train_routes
● 200 OK
"journey_id": "TRN-8849201",
"departure_station": "Berlin Hauptbahnhof",
"arrival_station": "München Hauptbahnhof",
"departure_time": "2026-08-14T08:30:00Z",
"duration_minutes": 245,
"price": 89.9,
"currency": "EUR",
"operator": "Deutsche Bahn"
# journey_iddeparture_stationarrival_stationdeparture_timearrival_timeduration_minutes
1
2
3

Complete list of extractable fields for Bus Schedules objects from omio.com. All fields typed and schema-versioned.

journey_idorigin_citydestination_citydeparture_timearrival_timeduration_minutesoperatorbus_typepricecurrencyavailable_seats
bus_schedules
● 200 OK
"journey_id": "BUS-99210",
"origin_city": "Paris",
"destination_city": "Amsterdam",
"departure_time": "2026-08-15T22:00:00Z",
"duration_minutes": 480,
"operator": "FlixBus",
"price": 34.5,
"currency": "EUR"
# journey_idorigin_citydestination_citydeparture_timearrival_timeduration_minutes
1
2
3

Complete list of extractable fields for Flight Pricing objects from omio.com. All fields typed and schema-versioned.

journey_idorigin_airportdestination_airportflight_numberairlinedeparture_timearrival_timepricecurrencybaggage_included
flight_pricing
● 200 OK
"journey_id": "FLT-4412",
"origin_airport": "LHR",
"destination_airport": "BER",
"flight_number": "BA990",
"airline": "British Airways",
"price": 145.0,
"currency": "GBP",
"baggage_included": false
# journey_idorigin_airportdestination_airportflight_numberairlinedeparture_time
1
2
3

Complete list of extractable fields for Multi-Modal Journeys objects from omio.com. All fields typed and schema-versioned.

journey_idorigindestinationtotal_duration_minutessegmentstotal_pricecurrencyoperatorsco2_emissions_kg
multi-modal_journeys
● 200 OK
"journey_id": "MM-77382",
"origin": "London St Pancras",
"destination": "Barcelona Sants",
"total_duration_minutes": 680,
"total_price": 210.0,
"currency": "GBP",
"operators": "['Eurostar', 'SNCF']",
"co2_emissions_kg": 12.4
# journey_idorigindestinationtotal_duration_minutessegmentstotal_price
1
2
3

Complete list of extractable fields for Stations & Stops objects from omio.com. All fields typed and schema-versioned.

station_idnametypecitycountrylatitudelongitudeoperator_codes
stations_& stops
● 200 OK
"station_id": "STN-1092",
"name": "Milano Centrale",
"type": "train_station",
"city": "Milan",
"country": "Italy",
"latitude": 45.4854,
"longitude": 9.2038
# station_idnametypecitycountrylatitude
1
2
3

Capabilities

Everything you need from Omio. Nothing you don't.

Our Omio scraper handles every layer of the platform: multi-modal routing, dynamic pricing, operator mapping, and station geolocation. Built with JavaScript rendering, session management, and anti-bot circumvention.

Train & Rail Extraction

Extract schedules, pricing, train numbers, and transfer nodes for major European operators like Deutsche Bahn, SNCF, Trenitalia, and Renfe.

Bus & Coach Tracking

Capture long-distance bus routes, departure points, durations, and pricing across carriers like FlixBus and ALSA.

Flight Pricing Logic

Monitor airline ticket prices, baggage rules, and flight numbers for intra-European and global routes.

Ferry Crossings

Scrape ferry schedules, vehicle transport options, and passenger pricing for Mediterranean and Nordic routes.

Multi-Modal Segments

Map complex journeys combining multiple transport types, including transfer wait times and segment-specific operators.

Dynamic Price Monitoring

Track price fluctuations across different booking windows, capturing base fares and mandatory fees.

Station Geolocation

Extract precise latitude and longitude coordinates for train stations, bus stops, and airports.

CO2 Emission Data

Capture estimated carbon footprints for different journey options to support sustainability reporting.

Scheduled Cadence

Run one-off route exports or configure continuous pipelines at hourly or daily cadences.

// engagement pipeline

From route list to warehouse record

Brief in. Clean data out.

Define Scope
d 0

Provide origin-destination pairs, travel dates, or transport modes. We design the extraction schema together.

Pipeline Build
d 2–4

We configure Scrapy and Playwright crawlers, proxy rotation, session management, and CAPTCHA handling for omio.com.

Validation & QA
d 4–6

Schema validation, null-rate checks, price-outlier detection, and route sampling before full launch.

Delivery
ongoing

JSON, CSV, or Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.

Under the hood

How our Omio pipeline handles the hard parts

Travel aggregators invest heavily in scraping detection and rate limiting. Here is how we stay resilient.

pipeline-monitor · omio.com · live ● active
// fingerprinting
Identity rotation
TLS fingerprintrandomised
User-agentrotated
IP poolresidential
Challenges blocked0
// pagination
Page coverage
48,291 pages queued running
// observability
Pipeline health
99.9%
uptime
142ms
p99 lat
0.3%
null rate
2
alerts
Search execution
JavaScript search form interaction

Omio requires complex interactions with date pickers, autocomplete location fields, and passenger selectors. We run full Playwright browser sessions to execute these searches accurately.

Session management
Token generation and refresh logic

Search results on Omio are tied to session tokens and XHR polling. Our crawlers manage token lifecycles and handle the asynchronous polling required to wait for all operator results to load.

Anti-bot layer
Residential proxy rotation

Aggressive rate limiting blocks data centre IPs instantly. Our infrastructure routes requests through residential ISP proxies in the target region, maintaining valid browser fingerprints.

Data normalisation
Multi-currency and timezone alignment

Transport data spans multiple timezones and currencies. We normalise all timestamps to UTC and standardise currency codes to ensure your downstream analytics are accurate.

Schema stability
Resilient DOM parsing

Omio frequently updates its frontend components. We use multiple fallback chains per field, extracting data from hidden JSON objects and API responses where possible to avoid DOM fragility.

Applications

Who uses Omio data and how

Teams across industries use omio.com data to build competitive products and smarter operations.

01
Price Intelligence & OTAs

Online Travel Agencies monitor Omio to benchmark pricing, identify route gaps, and adjust their own dynamic pricing models.

02
Transport Operator Benchmarking

Train and bus operators track competitor schedules, pricing, and route durations to optimise their own network planning.

03
Route Network Analysis

Urban planners and mobility startups analyse multi-modal transfer nodes and journey times to identify underserved corridors.

04
Carbon Footprint Modelling

Sustainability platforms extract CO2 emission data across different transport modes to build accurate enterprise travel reporting tools.

05
Investment Due Diligence

Private equity firms track operator route coverage, pricing power, and market share to evaluate transport sector investments.

06
Travel Aggregator Feeds

Meta-search engines use structured Omio data to augment their own routing algorithms and provide multi-modal alternatives.

Why DataFlirt

"Omio aggregates the most fragmented transport network in the world. Standardising that data requires parsing thousands of operator-specific logic rules."

Most teams underestimate the complexity of scraping multi-modal travel data. Omio relies on heavy client-side rendering, session-locked search tokens, and aggressive rate limits. DataFlirt absorbs that infrastructure overhead so your analysts can focus on route optimisation and price parity, not maintaining CAPTCHA solvers.

Technical Spec

Omio scraper technical capabilities

Everything supported by our omio.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.

JavaScript rendering
Full Playwright sessions required for search form interaction and polling
Supported
Residential proxy rotation
ISP-grade residential IPs rotated to bypass rate limits
Supported
Multi-modal search
Extracts trains, buses, flights, and ferries in a single search
Supported
Currency normalisation
Standardised currency codes and pricing extraction
Supported
CO2 emission tracking
Captures estimated carbon impact per journey segment
Supported
Transfer mapping
Identifies wait times and station changes for complex routes
Supported
User booking history
Requires authenticated access to user profiles
Partial
Loyalty program pricing
Account-specific discounts and loyalty tier pricing
Partial
Infrastructure

Infrastructure powering the Omio pipeline

Open-source tooling on proven cloud infra — no vendor lock-in, full observability.

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheusAPIXLS
Scrapy + Playwright Stack

Scrapy handles crawl orchestration and retry logic. Playwright handles JavaScript rendering, search form inputs, and XHR polling.

Residential Proxy Infrastructure

We maintain pools of residential ISP proxies across EU regions. Rotation happens per-request with sticky sessions where required for search tokens.

Cloud-Native Orchestration

Pipelines run on AWS Lambda and ECS. Airflow handles scheduling and dependency management. All state stored in managed Postgres.

Output & Delivery

Your data, your destination

Data delivered to where your team already works — no new tooling required.

JSON
Newline-delimited or nested array format
CSV
Flat file with typed columns for analytics
XLS
Excel compatible format for business teams
Parquet
Columnar format for BigQuery, Snowflake, Athena
AWS S3
Direct bucket delivery compatible with any data lake
Webhook
HTTP POST per record for real-time processing
API
REST endpoints to query your extracted datasets
BigQuery
Streamed directly into your dataset
Snowflake
Stage and COPY INTO workflow
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

About omio.com scraping, legality, and pipeline operations.

Ask us directly →
Is scraping Omio legal?

Scraping publicly available travel schedules and pricing is generally permissible. DataFlirt targets only public, non-authenticated route data. We do not extract personal data or circumvent authentication walls. Clients should review terms of service and consult legal counsel for specific use cases.

How do you handle Omio's search polling?

Omio uses asynchronous XHR polling to load results from multiple operators over several seconds. Our Playwright scripts monitor network traffic and wait for the polling cycle to complete before extracting the final DOM state.

Can you extract data for specific dates in the future?

Yes. You provide the origin, destination, and target travel dates. We parameterise the pipeline to execute searches for those exact parameters across any future booking window.

Do you capture transfer wait times?

Yes. Multi-modal journeys include segment-level data. We calculate and extract the wait time between segments, as well as any required station changes.

How fresh is the pricing data?

Pricing on Omio is highly dynamic. We can configure pipelines to run at hourly intervals for high-priority routes, ensuring your price intelligence models are fed with near real-time data.

Can I request a sample dataset?

Yes. We provide a sample run of up to 100 origin-destination pairs as part of the scoping process. This allows you to validate schema fit and data quality before committing.

$ dataflirt scope --new-project --source=omio.com ready

Tell us what
to extract.
We do the rest.

20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a one-off route map or continuous price monitoring across thousands of European connections, we scope, build, and operate the pipeline.

hello@dataflirt.com · Bengaluru · IST · typical reply < 4h
Related Scrapers

More in travel flights hotels buses

Services

Data Extraction for Every Industry

View All Services →