We extract train schedules, dynamic pricing, accommodation availability, and live status updates from Amtrak. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.
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 amtrak.com. All fields typed and schema-versioned.
"train_number": "2158", "train_name": "Acela", "origin_station_code": "NYP", "destination_station_code": "WAS", "departure_time": "2026-08-14T07:00:00-04:00", "arrival_time": "2026-08-14T09:53:00-04:00", "duration_minutes": 173, "service_type": "High-Speed Rail"
| # | train_number | train_name | origin_station_code | destination_station_code | departure_time | arrival_time |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Fares & Inventory objects from amtrak.com. All fields typed and schema-versioned.
"train_number": "2158", "date": "2026-08-14", "coach_price": "None", "business_price": 142.0, "first_class_price": 285.0, "currency": "USD", "capacity_status": "AVAILABLE", "fare_family": "Value"
| # | train_number | date | coach_price | business_price | first_class_price | roomette_price |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Live Train Status objects from amtrak.com. All fields typed and schema-versioned.
"train_number": "92", "date": "2026-08-14", "current_station": "RVR", "status_state": "En Route", "delay_minutes": 14, "scheduled_arrival": "2026-08-14T10:15:00-04:00", "estimated_arrival": "2026-08-14T10:29:00-04:00"
| # | train_number | date | current_station | next_station | status_state | delay_minutes |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Station Metadata objects from amtrak.com. All fields typed and schema-versioned.
"station_code": "WAS", "station_name": "Washington Union Station", "city": "Washington", "state": "DC", "latitude": 38.8978, "longitude": -77.0058, "has_lounge": true, "has_checked_baggage": true
| # | station_code | station_name | address | city | state | zip_code |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Route Stops objects from amtrak.com. All fields typed and schema-versioned.
"train_number": "2158", "route_name": "Acela", "stop_sequence": 3, "station_code": "PHL", "scheduled_arrival": "2026-08-14T08:10:00-04:00", "scheduled_departure": "2026-08-14T08:15:00-04:00", "layover_minutes": 5
| # | train_number | route_name | stop_sequence | station_code | scheduled_arrival | scheduled_departure |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Our Amtrak scraper handles the booking engine session states, station code mappings, and dynamic pricing caches. We extract schedules, fares, and real-time train status with automated anti-bot circumvention.
Capture all daily train schedules across the Amtrak network, including Acela, Northeast Regional, and long-distance routes with full stop sequences.
Extract pricing for Coach, Business, First Class, Roomettes, and Bedrooms. Track yield management changes over time.
Monitor train delays, estimated arrival times, and current locations using Amtrak's live tracking endpoints.
Detect sold-out trains, low inventory warnings, and capacity status across different fare families and accommodation types.
Extract facilities data for all stations, including lounge access, parking availability, checked baggage services, and operating hours.
Map complex multi-segment journeys, including Thruway bus connections and inter-train transfers.
Capture geographical route data, mileposts, and stop sequences for logistics and mapping applications.
Configure real-time pipelines for train status updates or daily batch exports for long-term fare analysis.
Automated handling of Amtrak's booking engine tokens, cookies, and stateful search parameters to ensure reliable data extraction.
Brief in. Clean data out.
Provide station code pairs, specific train numbers, or geographic regions. We design the extraction schema.
We configure Playwright crawlers, proxy rotation, and session token handlers for amtrak.com.
Schema validation, null-rate checks, and fare outlier detection before full deployment.
JSON, CSV, or Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on your cadence.
Amtrak's search interface relies on stateful sessions and complex token exchanges. We manage the infrastructure so you get clean data.
Amtrak's booking flow requires passing session tokens between search, availability, and pricing endpoints. Our pipelines automatically maintain these session states, renewing tokens before they expire to ensure continuous extraction.
Frequent polling of fares and schedules triggers rate limits. We distribute requests across a pool of US-based residential ISP proxies, mimicking organic user traffic patterns to avoid IP bans.
We map Amtrak's internal station IDs and three-letter codes to standardised geographic coordinates and city names, ensuring your downstream systems receive clean, relational data.
Fares and seat availability are rendered dynamically via JavaScript. We use Playwright to execute the necessary scripts and intercept the underlying API payloads for accurate pricing data.
We monitor extraction success rates, tracking null values in critical fields like price and departure time. If Amtrak updates their booking engine, our team is alerted immediately.
Online travel agencies integrate Amtrak schedules and fares to offer multi-modal transport options alongside flights and buses.
Data science teams analyse historical fare data to build price prediction algorithms and optimise booking timing.
Logistics companies track passenger rail delays to predict cascading effects on shared freight rail networks.
Intercity bus operators and regional airlines monitor Amtrak pricing and capacity to adjust their own yield management strategies.
Sustainability platforms map train routes and distances to calculate accurate carbon emission offsets for corporate travel.
Municipalities and transit authorities analyse schedule frequency and station utilisation to inform infrastructure investments.
"Amtrak's network provides critical infrastructure data, but extracting reliable pricing and status requires navigating complex session states and rate limits."
Building an in-house scraper for Amtrak means dedicating engineering hours to managing session tokens, rotating proxies, and fixing broken selectors every time the booking engine updates. DataFlirt provides a managed infrastructure layer, delivering structured rail data directly to your warehouse so you can focus on analysis.
Everything supported by our amtrak.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.
Open-source tooling on proven cloud infra — no vendor lock-in, full observability.
Scrapy manages orchestration and scheduling. Playwright executes JavaScript to trigger dynamic fare requests and intercept API payloads from the booking engine.
We utilise US-based residential ISP proxies to distribute requests, preventing IP blocks and rate limits from Amtrak's security perimeter.
Pipelines are deployed on Kubernetes and AWS Lambda. Apache Airflow handles complex dependencies, ensuring status updates run at high frequency while schedule batch jobs run nightly.
Data delivered to where your team already works — no new tooling required.
About amtrak.com scraping, legality, and pipeline operations.
Ask us directly →Scraping publicly available schedules, fares, and train status from amtrak.com is generally permissible. DataFlirt only extracts public, non-authenticated data. We do not access user accounts, bypass authentication, or extract personal information. Clients should review their specific use cases with legal counsel.
Our pipelines use Playwright to initiate a valid browser session, capturing the necessary cookies and tokens. We then maintain this state across subsequent requests, renewing tokens automatically before they expire to ensure uninterrupted extraction.
For live tracking applications, we can poll specific train status endpoints at sub-5-minute intervals. For full network schedule updates, we typically run daily or weekly batches depending on your requirements.
Yes. We extract pricing and availability for all accommodation classes, including Coach, Business, First Class, Roomettes, Bedrooms, and Family Bedrooms.
Yes. When a search query returns a multi-segment itinerary that includes a Thruway bus connection, we extract the entire route, distinguishing between rail and bus segments.
Engagements typically start with a defined set of station pairs or specific routes. Pricing scales based on the volume of searches and the required delivery frequency. Contact us to scope your pipeline.
20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need daily schedule updates or real-time train status monitoring, we build and operate the infrastructure. Specify your routes and let us handle the rest.