SYSTEM all green source amtrak.com queue 12,492 routes p99 latency 185ms dataflirt.com · scraper/amtrak-com
RUN . 84 active pipelines . amtrak.com live

Amtrak rail data,
at warehouse scale.

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.

Schedules extracted
1.2M /day
Fare updates
845K /24h
Train status pings
320K /run
Active pipelines
84
Uptime
99.98%
Data Dictionary

Every field we extract from amtrak.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 amtrak.com. All fields typed and schema-versioned.

train_numbertrain_nameorigin_station_codedestination_station_codedeparture_timearrival_timeduration_minutestotal_stopsservice_typeoperating_days
train_schedules
● 200 OK
"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_numbertrain_nameorigin_station_codedestination_station_codedeparture_timearrival_time
1
2
3

Complete list of extractable fields for Fares & Inventory objects from amtrak.com. All fields typed and schema-versioned.

train_numberdatecoach_pricebusiness_pricefirst_class_priceroomette_pricebedroom_pricecurrencycapacity_statusfare_family
fares_& inventory
● 200 OK
"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_numberdatecoach_pricebusiness_pricefirst_class_priceroomette_price
1
2
3

Complete list of extractable fields for Live Train Status objects from amtrak.com. All fields typed and schema-versioned.

train_numberdatecurrent_stationnext_stationstatus_statedelay_minutesscheduled_arrivalestimated_arrivallatitudelongitude
live_train status
● 200 OK
"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_numberdatecurrent_stationnext_stationstatus_statedelay_minutes
1
2
3

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

station_codestation_nameaddresscitystatezip_codelatitudelongitudehas_loungehas_checked_baggage
station_metadata
● 200 OK
"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_codestation_nameaddresscitystatezip_code
1
2
3

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

train_numberroute_namestop_sequencestation_codescheduled_arrivalscheduled_departuremilepostlayover_minutes
route_stops
● 200 OK
"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_numberroute_namestop_sequencestation_codescheduled_arrivalscheduled_departure
1
2
3

Capabilities

Complete visibility into the US passenger rail network

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.

Comprehensive Schedule Extraction

Capture all daily train schedules across the Amtrak network, including Acela, Northeast Regional, and long-distance routes with full stop sequences.

Dynamic Fare Tracking

Extract pricing for Coach, Business, First Class, Roomettes, and Bedrooms. Track yield management changes over time.

Live Train Status

Monitor train delays, estimated arrival times, and current locations using Amtrak's live tracking endpoints.

Inventory & Capacity Signals

Detect sold-out trains, low inventory warnings, and capacity status across different fare families and accommodation types.

Station Metadata

Extract facilities data for all stations, including lounge access, parking availability, checked baggage services, and operating hours.

Connecting Itineraries

Map complex multi-segment journeys, including Thruway bus connections and inter-train transfers.

Route Alignments

Capture geographical route data, mileposts, and stop sequences for logistics and mapping applications.

High-Frequency Polling

Configure real-time pipelines for train status updates or daily batch exports for long-term fare analysis.

Session Management

Automated handling of Amtrak's booking engine tokens, cookies, and stateful search parameters to ensure reliable data extraction.

// engagement pipeline

From station pairs to warehouse records

Brief in. Clean data out.

Define Scope
d 0

Provide station code pairs, specific train numbers, or geographic regions. We design the extraction schema.

Pipeline Build
d 2–4

We configure Playwright crawlers, proxy rotation, and session token handlers for amtrak.com.

Validation & QA
d 4–6

Schema validation, null-rate checks, and fare outlier detection before full deployment.

Delivery
ongoing

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

Under the hood

Overcoming Amtrak booking engine complexities

Amtrak's search interface relies on stateful sessions and complex token exchanges. We manage the infrastructure so you get clean data.

pipeline-monitor · amtrak.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 State
Stateful token management

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.

Anti-bot layer
US residential proxies

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.

Data normalisation
Station code resolution

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.

Dynamic content
Playwright execution

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.

Alerting
Pipeline health monitoring

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.

Applications

Who uses Amtrak data

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

01
Travel Aggregators (OTA)

Online travel agencies integrate Amtrak schedules and fares to offer multi-modal transport options alongside flights and buses.

02
Price Prediction Models

Data science teams analyse historical fare data to build price prediction algorithms and optimise booking timing.

03
Logistics & Supply Chain

Logistics companies track passenger rail delays to predict cascading effects on shared freight rail networks.

04
Competitor Analysis

Intercity bus operators and regional airlines monitor Amtrak pricing and capacity to adjust their own yield management strategies.

05
Carbon Footprint Tracking

Sustainability platforms map train routes and distances to calculate accurate carbon emission offsets for corporate travel.

06
Urban Planning

Municipalities and transit authorities analyse schedule frequency and station utilisation to inform infrastructure investments.

Why DataFlirt

"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.

Technical Spec

Amtrak scraper technical capabilities

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

JavaScript rendering
Playwright sessions required for dynamic fare loading and seat maps
Supported
Session token handling
Automated management of booking engine state tokens
Supported
Residential proxy rotation
US-based ISP proxies to bypass rate limiting
Supported
Live status tracking
High-frequency polling of train location and delay endpoints
Supported
Multi-segment routing
Extraction of connecting trains and Thruway bus services
Supported
Historical fare tracking
Time-series data of price changes leading up to departure
Supported
Station metadata resolution
Mapping three-letter codes to full addresses and coordinates
Supported
Guest Rewards points
Extracting user point balances and tier status requires authentication
Partial
User booking history
Accessing past trips and ticket modifications is account-gated
Partial
Infrastructure

Infrastructure powering the Amtrak pipeline

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

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheus
Scrapy + Playwright Stack

Scrapy manages orchestration and scheduling. Playwright executes JavaScript to trigger dynamic fare requests and intercept API payloads from the booking engine.

Proxy Infrastructure

We utilise US-based residential ISP proxies to distribute requests, preventing IP blocks and rate limits from Amtrak's security perimeter.

Cloud-Native Orchestration

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.

Output & Delivery

Your data, your destination

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

JSON
Newline-delimited or nested arrays
CSV
Flat files for easy spreadsheet analysis
XLS
Excel format for business analysts
Parquet
Columnar format for BigQuery, Snowflake, Athena
AWS S3
Direct bucket delivery
Webhook
HTTP POST per record for real-time status alerts
API
REST endpoints to query extracted datasets
PostgreSQL
Direct upsert into your relational database
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

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

Ask us directly →
Is scraping Amtrak legal?

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.

How do you manage Amtrak's session tokens?

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.

How frequently can you update train status?

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.

Can you extract prices for Roomettes and Bedrooms?

Yes. We extract pricing and availability for all accommodation classes, including Coach, Business, First Class, Roomettes, Bedrooms, and Family Bedrooms.

Do you capture Thruway bus connections?

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.

What is the minimum viable engagement?

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.

$ dataflirt scope --new-project --source=amtrak.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 daily schedule updates or real-time train status monitoring, we build and operate the infrastructure. Specify your routes and let us handle the rest.

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 →