SYSTEM all green source gwr.com queue 12,409 routes p99 latency 184ms dataflirt.com · scraper/gwr-com
RUN - 41 active pipelines - gwr.com live

GWR journey data,
at warehouse scale.

We extract train schedules, ticket pricing tiers, live departure boards, and disruption alerts from GWR. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Journeys extracted
142K /day
Price updates
2.1M /24h
Live status checks
84K /run
Active pipelines
41
Uptime
99.98%
Data Dictionary

Every field we extract from gwr.com

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

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

origin_crsdestination_crsdeparture_timearrival_timeticket_typepricecurrencyavailability_statuschanges_countoperator
journey_pricing
● 200 OK
"origin_crs": "PAD",
"destination_crs": "BRI",
"departure_time": "2026-10-14T08:30:00Z",
"ticket_type": "Advance Single",
"price": 34.5,
"currency": "GBP",
"changes_count": 0,
"operator": "Great Western Railway"
# origin_crsdestination_crsdeparture_timearrival_timeticket_typeprice
1
2
3

Complete list of extractable fields for Live Departures objects from gwr.com. All fields typed and schema-versioned.

station_crsdestinationscheduled_timeexpected_timeplatformstatusoperatordelay_minutescalling_points
live_departures
● 200 OK
"station_crs": "PAD",
"destination": "Cardiff Central",
"scheduled_time": "10:15",
"expected_time": "10:22",
"platform": "4",
"status": "Delayed",
"delay_minutes": 7,
"operator": "GWR"
# station_crsdestinationscheduled_timeexpected_timeplatformstatus
1
2
3

Complete list of extractable fields for Timetables objects from gwr.com. All fields typed and schema-versioned.

route_idorigindestinationdeparture_timearrival_timeduration_minutesstopstrain_idcatering_available
timetables
● 200 OK
"route_id": "GWR-PAD-OXF-01",
"origin": "London Paddington",
"destination": "Oxford",
"departure_time": "09:20",
"arrival_time": "10:14",
"duration_minutes": 54,
"stops": 2,
"catering_available": true
# route_idorigindestinationdeparture_timearrival_timeduration_minutes
1
2
3

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

station_namecrs_codeticket_office_hoursaccessibility_ratingparking_spaceswifi_availablelocation_latlocation_lonfacilities_list
station_data
● 200 OK
"station_name": "Bristol Temple Meads",
"crs_code": "BRI",
"accessibility_rating": "Category A",
"parking_spaces": 374,
"wifi_available": true,
"location_lat": 51.449,
"location_lon": -2.581,
"facilities_list": "['Toilets', 'Waiting Room', 'Coffee Shop']"
# station_namecrs_codeticket_office_hoursaccessibility_ratingparking_spaceswifi_available
1
2
3

Complete list of extractable fields for Disruptions objects from gwr.com. All fields typed and schema-versioned.

incident_idaffected_routesseveritydescriptionstart_timeexpected_end_timereplacement_transportcustomer_advicelast_updated
disruptions
● 200 OK
"incident_id": "INC-8492",
"severity": "High",
"description": "Flooding between Exeter St Davids and Taunton",
"start_time": "2026-11-02T06:00:00Z",
"replacement_transport": true,
"customer_advice": "Do not travel. Tickets valid for tomorrow.",
"last_updated": "2026-11-02T08:15:00Z"
# incident_idaffected_routesseveritydescriptionstart_timeexpected_end_time
1
2
3

Capabilities

Extract GWR ticketing and schedule data with precision

Our GWR scraper navigates complex ticketing flows, session management, and dynamic timetable rendering to deliver structured rail data without manual intervention.

Dynamic Ticket Pricing

Extract Advance, Off-Peak, and Anytime fares across all routes. Track price fluctuations as departure dates approach.

Live Departure Boards

Capture real-time expected departure times, platform alterations, and delay minutes directly from GWR live status systems.

Full Timetable Extraction

Map complete journey schedules including intermediate calling points, transfer requirements, and total journey durations.

Route Disruption Alerts

Monitor network incidents, engineering works, and replacement bus schedules. Timestamped updates for travel planning.

Station Metadata

Scrape station facility lists, ticket office opening hours, accessibility information, and precise geolocation coordinates.

Seat & Class Availability

Determine First Class vs Standard availability and identify sold-out service tiers for demand forecasting.

Session Continuity

Maintain complex browser sessions required to navigate multi-step ticketing funnels without triggering anti-bot blocks.

CRS Code Mapping

Normalised origin and destination routing using standard UK rail CRS codes for easy integration with existing travel databases.

High-Frequency Polling

Execute minute-by-minute checks on high-priority commuter routes during peak hours for real-time status updates.

// engagement pipeline

From route list to warehouse record

Brief in. Clean data out.

Define Scope
d 0

Provide CRS code pairs, specific journey times, or station lists. We design the extraction schema together.

Pipeline Build
d 2–4

We configure Scrapy / Playwright crawlers, proxy rotation, session management, and rate-limit handling for gwr.com.

Validation & QA
d 4–6

Schema validation, null-rate checks, price-outlier detection, 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

Overcoming GWR extraction challenges

Ticketing systems employ strict session controls and rate limits. Here is how our infrastructure maintains stable data flows.

pipeline-monitor · gwr.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 Management
Navigating multi-step ticketing funnels

GWR requires maintaining specific cookie states and session tokens to progress from timetable search to price calculation. We manage these stateful interactions using Playwright to ensure accurate fare extraction.

Rate Limiting
Distributed request architecture

High-frequency polling of live departure boards triggers IP bans. We distribute requests across a pool of UK residential proxies, mimicking natural user traffic patterns and adhering to safe concurrency limits.

Dynamic Rendering
Executing client-side JavaScript

Live status updates and dynamic pricing tiers rely heavily on client-side rendering. Our infrastructure executes the necessary JavaScript to hydrate the DOM before data extraction begins.

API Interception
Direct backend data capture

Where possible, we intercept the underlying JSON API responses feeding the frontend applications, providing cleaner data with lower latency and reduced compute overhead.

Data Normalisation
Standardising fragmented formats

Timetable formats and pricing structures often change based on the route or operator. We normalise all outputs to a consistent schema, ensuring predictable ingestion for your downstream systems.

Applications

Who uses GWR data - and how

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

01
Travel Aggregators & OTAs

Online travel agencies ingest pricing and timetable data to offer comprehensive multi-modal journey planning.

02
Corporate Travel Management

Expense platforms monitor Advance fare availability to optimise booking windows and enforce corporate travel policies.

03
Disruption Alerting Services

Commuter apps rely on high-frequency live departure and incident data to push proactive delay notifications to users.

04
Demand Forecasting

Analysts track seat availability and pricing curves to model peak demand and optimise alternative transport scheduling.

05
Infrastructure Planning

Consultancies use historical delay and disruption data to identify network bottlenecks and assess performance metrics.

06
Competitor Price Monitoring

Coach and domestic flight operators monitor rail fares on competing corridors to dynamically adjust their own pricing strategies.

Why DataFlirt

"UK rail pricing is notoriously fragmented. Accessing GWR timetable and fare data programmatically requires navigating complex session states and dynamic ticketing flows."

Extracting live train data and ticket prices from GWR requires maintaining session continuity, handling strict rate limits, and parsing dynamic API responses. DataFlirt manages the proxy rotation and session persistence so your team can focus on journey analytics rather than scraping infrastructure.

Technical Spec

GWR scraper - technical capabilities

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

JavaScript rendering
Full Playwright sessions required for dynamic pricing and live boards
Supported
UK Residential Proxies
Localised IP addresses to bypass regional blocking and rate limits
Supported
Session Persistence
Cookie and token management for multi-step journey searches
Supported
Live Departure Polling
Sub-minute frequency scheduling for real-time status tracking
Supported
CRS Code Normalisation
Standardised station mapping using official UK rail codes
Supported
Change detection (diffs)
Only emit records when prices or timetable statuses change
Supported
User Booking History
Extraction of past tickets requires authenticated user credentials
Partial
Nectar Point Balances
Loyalty program data is gated behind personal account logins
Partial
Infrastructure

Infrastructure powering the GWR 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, deduplication, and retry logic. Playwright handles JavaScript rendering, cookie sessions, and interaction flows. Combined via scrapy-playwright middleware.

Residential Proxy Infrastructure

We maintain pools of UK residential ISP proxies. Rotation happens per-request with sticky sessions where required for ticketing funnels. IP score monitoring prevents blacklisted pool contamination.

Cloud-Native Orchestration

Pipelines run on AWS Lambda (burst) and ECS (sustained). 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/Sheets compatible
XLS
Spreadsheet format for immediate business analyst use
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 endpoints to query your extracted dataset on demand
PostgreSQL
Direct database insertion with upsert logic for live status
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

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

Ask us directly →
Is scraping GWR data legal?

Scraping publicly available timetable, pricing, and status information is generally permissible. DataFlirt targets only public, non-authenticated data. We do not extract personal user data or bypass authentication systems. Clients should review GWR terms of service and consult legal counsel for specific use cases.

How do you handle rate limits on timetable searches?

We utilise distributed UK residential proxy networks and implement intelligent request pacing. By mimicking human interaction speeds and rotating IPs, we maintain stable extraction rates without triggering defensive blocks.

Can you track Advance ticket price changes?

Yes. We can schedule daily or hourly checks on specific route pairs and departure dates, capturing price fluctuations and availability tiers over time to build comprehensive pricing curves.

How fast is the live departure data?

For live status pipelines, we can configure polling intervals down to the minute. Using webhook delivery, delay and platform alterations are pushed to your systems with minimal latency.

Do you support other UK rail operators?

Yes. While this pipeline is optimised for GWR, our underlying schema and routing logic support extraction from other UK train operating companies (TOCs) and National Rail Enquiries.

What is the minimum viable engagement?

Our smallest packages start at a defined list of routes or stations with daily delivery. For high-frequency live tracking or comprehensive network coverage, we price based on volume and compute requirements. Contact us for a scoped quote.

$ dataflirt scope --new-project --source=gwr.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 historical pricing analysis or a real-time live departure feed, 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 →