amtrak.com APIamtrak.com ↗
Search Amtrak trains, compare fares, retrieve station details, and find discounts via a structured API with 7 endpoints covering schedules and seat availability.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/f800c27d-0aaa-4ca0-864e-4dc69e20f764/get_stations' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve all Amtrak stations with their codes and details including accessibility information.
No input parameters required.
{
"type": "object",
"fields": {
"stations": "array of station objects with stationCode, quikTrakAvailable, staffed, stationAccessible, wheelChairAvailable"
},
"sample": {
"data": {
"stations": [
{
"staffed": false,
"stationCode": "AAM",
"quikTrakAvailable": false,
"stationAccessible": false,
"wheelChairAvailable": false
}
]
},
"status": "success"
}
}About the amtrak.com API
The Amtrak API covers 7 endpoints for querying train schedules, fares, station details, and discount programs. The search_trains endpoint accepts origin and destination station codes, a departure date, and passenger type to return full journey solutions including fare options and seat availability. The get_cheapest_fare endpoint distills that search down to a single lowest-priced result with train name, travel class, and fare family code.
Train Search and Fare Data
The search_trains endpoint accepts origin, destination, and departure_date as required parameters, with optional fields for num_adults, return_date, and passenger_type (F for Adult, S for Senior, Y for Youth, C for Child, I for Infant). The response object contains journeySolutionOption with journey legs, multiple fare options, and seat availability per class. For round-trip queries, pass a return_date alongside the outbound departure_date.
The get_cheapest_fare endpoint narrows results to one record per route and date: it returns price in USD, class (e.g. Coach or Business), fare_family (e.g. VLU, FLX), train_name, train_number, and ISO-formatted departure and arrival datetimes. This is useful when you need a single fare estimate rather than the full journey solution matrix.
Station and Schedule Lookup
get_stations returns every Amtrak station as a flat array of objects, each with stationCode, staffed, stationAccessible, wheelChairAvailable, and quikTrakAvailable flags — useful for building accessible-travel filters or station pickers. get_station_autocomplete takes a term string and returns an autoCompleteList with matching station names, codes, addresses, and geographic coordinates, making it suitable for typeahead inputs.
get_train_details requires origin, destination, train_number, and a start_date in ISO datetime format. The response contains a travelService object covering train amenities and operator info, plus schedulesAndStops listing each intermediate stop with arrival and departure times and days of operation.
Discounts and Support
get_everyday_discounts returns an array of permanent Amtrak discount programs — each with name and description — covering children, seniors, students, military, and groups. get_support_info returns structured contact data: an FAQ array, headquarters address, phone_numbers by department (with optional TTY), contact_channels with hours and URLs, and an Amtrak Police record with phone and text-tip number.
- Build a fare-comparison tool that calls
get_cheapest_fareacross multiple date ranges to surface the lowest-cost travel window. - Populate a station autocomplete field using
get_station_autocompletewith live keyword matching. - Filter accessible travel options by querying
get_stationsand surfacing only stations wherestationAccessibleandwheelChairAvailableare true. - Display full stop-by-stop itineraries including intermediate stations and times using
get_train_details. - Show passengers available discount programs at checkout by pulling structured records from
get_everyday_discounts. - Build a round-trip price estimator by passing both
departure_dateandreturn_datetosearch_trainsand comparing fare options. - Embed Amtrak customer support contact details and FAQ content into a travel assistant app via
get_support_info.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Amtrak have an official public developer API?+
What does `search_trains` return beyond just price?+
journeySolutionOption object with individual journey legs, multiple fare class options, fare family codes, and seat availability — not just a single price point. For a single lowest-cost record, use get_cheapest_fare instead.Does the API expose sleeper car or Amtrak Vacations package data?+
search_trains and get_cheapest_fare. Sleeper accommodations and vacation package pricing are not part of the current endpoint set. You can fork the API on Parse and revise it to add an endpoint targeting those accommodation types.Does `get_train_details` return real-time delay or on-time status information?+
What station metadata does `get_stations` include beyond the station name?+
stationCode, a staffed boolean, stationAccessible, wheelChairAvailable, and quikTrakAvailable flags. It does not include parking availability or lounge access details in the current response shape.