SYSTEM all green source eurail.com queue 12,409 routes p99 latency 312ms dataflirt.com · scraper/eurail-com
RUN - 42 active pipelines - eurail.com live

Eurail timetable data,
at warehouse scale.

We extract train schedules, route connections, reservation fees, and pass pricing from Eurail. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Routes extracted
142K /day
Schedule updates
3.1M /24h
Station records
41K /run
Active pipelines
42
Uptime
99.94%
Data Dictionary

Every field we extract from eurail.com

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

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

route_iddeparture_stationarrival_stationdeparture_timearrival_timeduration_minutestrain_typetrain_numberrequires_reservationoperating_days
train_schedules
● 200 OK
"route_id": "R-847291",
"departure_station": "Paris Gare du Nord",
"arrival_station": "Amsterdam Centraal",
"departure_time": "2026-05-12T08:25:00Z",
"arrival_time": "2026-05-12T11:44:00Z",
"train_type": "Eurostar",
"requires_reservation": true
# route_iddeparture_stationarrival_stationdeparture_timearrival_timeduration_minutes
1
2
3

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

pass_typevalidity_periodpassenger_typeclass_typepricecurrencydiscount_appliedcountries_includedpromotional_offer
pass_pricing
● 200 OK
"pass_type": "Global Pass",
"validity_period": "15 days within 2 months",
"passenger_type": "Youth",
"class_type": "2nd Class",
"price": 352.0,
"currency": "EUR",
"countries_included": 33
# pass_typevalidity_periodpassenger_typeclass_typepricecurrency
1
2
3

Complete list of extractable fields for Route Connections objects from eurail.com. All fields typed and schema-versioned.

connection_idorigindestinationtransfer_counttransfer_stationslayover_durationstotal_distancetotal_durationroute_map_url
route_connections
● 200 OK
"connection_id": "C-99382",
"origin": "Berlin Hbf",
"destination": "Rome Termini",
"transfer_count": 2,
"transfer_stations": "['Munich Hbf', 'Verona Porta Nuova']",
"total_duration": "14h 25m",
"route_map_url": "https://www.eurail.com/en/plan-your-trip/map"
# connection_idorigindestinationtransfer_counttransfer_stationslayover_durations
1
2
3

Complete list of extractable fields for Reservation Fees objects from eurail.com. All fields typed and schema-versioned.

route_idtrain_typeclass_typefee_amountcurrencymandatory_reservationbooking_window_daysseat_optionsavailability_status
reservation_fees
● 200 OK
"route_id": "R-847291",
"train_type": "TGV inOui",
"class_type": "1st Class",
"fee_amount": 20.0,
"currency": "EUR",
"mandatory_reservation": true,
"availability_status": "Available"
# route_idtrain_typeclass_typefee_amountcurrencymandatory_reservation
1
2
3

Complete list of extractable fields for Station Data objects from eurail.com. All fields typed and schema-versioned.

station_codestation_namecitycountrylatitudelongitudefacilitiesconnection_typeslocal_transit_options
station_data
● 200 OK
"station_code": "FRXPG",
"station_name": "Paris Gare de Lyon",
"city": "Paris",
"country": "France",
"latitude": 48.8443,
"longitude": 2.3744,
"connection_types": "['TGV', 'RER', 'Metro']"
# station_codestation_namecitycountrylatitudelongitude
1
2
3

Capabilities

Everything you need from Eurail - nothing you don't

Our Eurail scraper handles dynamic search forms, session-based routing, and European rail timetables - with JavaScript rendering, session management, and anti-bot circumvention built in.

Train Timetable Extraction

Extract schedules, journey durations, train types, and departure times across the entire European rail network.

Reservation Fee Tracking

Capture mandatory and optional reservation fees per route, specific to train types like Eurostar, TGV, and ICE.

Pass Pricing Monitoring

Track pricing changes for Global Passes and One Country Passes across youth, adult, and senior categories.

Multi-Leg Journey Mapping

Extract complex itineraries including transfer stations, layover durations, and connection viability.

Station Metadata

Capture station coordinates, available facilities, and local transit connections for thousands of European stops.

Train Type Classification

Differentiate between high-speed rails, regional trains, and night trains to categorise journey types.

Seat Availability Signals

Monitor sold out versus available status for specific routes and dates to gauge travel demand.

Multi-Currency Support

Extract pass and reservation pricing in EUR, USD, GBP, and other supported currencies.

Scheduled + Streaming Modes

Run one-off bulk 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, date ranges, or pass types. We design the extraction schema together.

Pipeline Build
d 2–4

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

Validation & QA
d 4–6

Schema validation, null-rate checks, and timetable verification before full launch.

Delivery
ongoing

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

Under the hood

How our Eurail pipeline handles the hard parts

European rail systems use complex, session-based search flows. Here is how we stay resilient.

pipeline-monitor · eurail.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
Session-based routing
Handling stateful search sessions

Eurail search forms rely on stateful sessions and temporary tokens. Our crawlers maintain persistent cookie jars and token lifecycles to navigate multi-step timetable queries without dropping connection.

Dynamic search forms
Full Playwright execution for timetables

Timetable results are loaded asynchronously via complex JavaScript bundles. We use Playwright to execute the JS, wait for network idle states, and parse the fully rendered DOM to ensure no scheduled trains are missed.

Anti-bot layer
Residential proxy rotation

Travel aggregators heavily rate-limit IP addresses. We route requests through EU-based residential proxies, rotating IPs per search session to avoid blocks and rate-limiting penalties.

Schema stability
Resilient selectors for DOM changes

Booking flows update frequently. We use multiple fallback chains per field, relying on internal API responses intercepted during the Playwright session rather than brittle CSS selectors where possible.

Change detection
Only re-scrape modified schedules

We maintain a hash index of timetable data. Subsequent runs only push diffs when schedules or reservation fees change, reducing compute cost and downstream processing load.

Applications

Who uses Eurail data - and how

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

01
Travel Aggregators

Incorporate Eurail pass data and reservation requirements into multi-modal travel platforms.

02
Pricing Intelligence

Monitor competitor travel packages and European rail pass pricing to adjust your own market offerings.

03
Route Optimisation

Analyse European rail connectivity, transfer times, and high-speed rail availability for logistics planning.

04
Tourism Analytics

Forecast regional travel demand based on train seat availability and reservation fee fluctuations.

05
Supply Chain & Logistics

Map passenger rail network delays and schedule changes that impact shared rail infrastructure.

06
AI Training Data

Train travel planning models and recommendation engines on real European rail schedules and connection logic.

Why DataFlirt

"The European rail network is a fragmented web of regional operators. Eurail aggregates it, but extracting that timetable data at scale requires serious infrastructure."

Most teams underestimate the investment required: reliable Eurail scraping requires residential proxies, full JavaScript rendering for dynamic search forms, session state management, and daily selector maintenance. DataFlirt absorbs that complexity so your engineers can focus on the analysis, not the infrastructure.

Technical Spec

Eurail scraper - technical capabilities

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

JavaScript rendering
Full Playwright sessions required for timetable loading and search forms
Supported
CAPTCHA bypass
Automated integration for booking flow security checks
Supported
Residential proxy rotation
EU-based ISP proxies rotated per search session
Supported
Multi-currency pricing
Extract pass and fee prices in EUR, USD, and GBP
Supported
Transfer mapping
Capture all intermediate stations and layover times for multi-leg journeys
Supported
Change detection
Hash-based diff to only emit records with changed schedules
Supported
Webhook delivery
HTTP POST per record for real-time schedule updates
Supported
User account booking history
Requires authentication and violates terms of service
Partial
Payment gateway token extraction
Restricted due to PCI compliance and security policies
Partial
Infrastructure

Infrastructure powering the Eurail pipeline

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

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheus
Scrapy + Playwright Stack

Scrapy handles crawl orchestration and retry logic. Playwright handles JavaScript rendering, session tokens, and interaction flows for complex search forms.

Residential Proxy Infrastructure

We maintain pools of residential ISP proxies across EU regions. Rotation happens per session with sticky IPs to maintain state during multi-step timetable queries.

Cloud-Native Orchestration

Pipelines run on AWS Lambda and ECS. Airflow handles scheduling, dependency management, and SLA alerting. 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 - schema versioned per run
CSV
Flat file with typed columns - Excel compatible
XLS
Legacy spreadsheet format for business analysts
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 downstream processing
API
REST endpoint to query historical timetable snapshots
PostgreSQL
Upsert into your existing schema with conflict resolution
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

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

Ask us directly →
Is scraping Eurail legal?

Scraping publicly available timetable and pricing information is generally permissible. DataFlirt targets only public, non-authenticated schedule 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 rate limits on travel searches?

We use EU-based residential ISP proxies, full Playwright browser sessions, and request timing modelled on human behaviour to avoid rate limits and IP bans during heavy timetable extraction.

Can you extract mandatory reservation fees?

Yes. We capture whether a reservation is mandatory, recommended, or not required, along with the specific fee amount and currency for that route and train type.

How fresh is the timetable data?

Pipelines can be configured to run daily or hourly depending on your requirements. Schedule changes and seat availability signals are updated per run.

Do you map multi-leg journeys?

Yes. We extract the full itinerary including all transfer stations, individual leg durations, and total layover times.

Can I request a sample dataset before committing?

Absolutely. We provide a sample run of up to 1,000 route queries as part of the pre-engagement scoping process so you can validate schema fit and field completeness.

$ dataflirt scope --new-project --source=eurail.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 station catalogue dump or a continuous schedule monitoring feed across European rail routes - we scope, build, and operate the pipeline. Tell us what you need.

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 →