Wanderu APIwanderu.com ↗
Search one-way bus and train trips between US cities via the Wanderu API. Returns carrier, schedule, duration, and price for Amtrak, Greyhound, FlixBus, and more.
What is the Wanderu API?
The Wanderu API exposes 1 endpoint — search_trips — that returns all available one-way bus and train options between two US cities on a specified date, covering carriers such as Amtrak, Greyhound, and FlixBus. Each result includes carrier identity, departure and arrival times in UTC ISO-8601 format, trip duration, price, and route details, giving developers a structured feed of ground-transit options across the US intercity network.
curl -X GET 'https://api.parse.bot/scraper/14242a69-9c00-4b2f-8c9c-36f87a0cc1a1/search_trips?date=2026-07-31&origin=Boston%2C+MA&destination=New+York%2C+NY' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace wanderu-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Wanderu SDK — bounded, re-runnable; every call capped."""
from parse_apis.wanderu_com_api import Wanderu, ParseError
client = Wanderu()
# Search for train and bus trips from Boston to New York
for trip in client.trips.search(origin="Boston, MA", destination="New York, NY", date="2026-07-30", limit=3):
print(trip.operator_name, trip.vehicle_type, trip.departure_time, trip.arrival_time, trip.price_usd)
# Take one result for inspection
trip = client.trips.search(origin="New York, NY", destination="Boston, MA", date="2026-08-02", limit=1).first()
if trip:
print(trip.departure_station, "→", trip.arrival_station)
print(trip.duration_hours, "hours", "|", f"${trip.price_usd}")
# Typed error handling
try:
for t in client.trips.search(origin="Boston, MA", destination="Newark, NJ", date="2026-07-30", limit=2):
print(t.operator_name, t.departure_time, t.price_usd)
except ParseError as e:
print(f"error: {e}")
print("exercised: trips.search")
Search one-way bus and train trips between two US cities on a given departure date. Returns all available options with carrier, schedule, duration, and price. Results include Amtrak, Greyhound, FlixBus, and other operators. Times are in UTC ISO-8601 format.
| Param | Type | Description |
|---|---|---|
| daterequired | string | Departure date in ISO format YYYY-MM-DD. |
| originrequired | string | Origin city and state (e.g. 'Boston, MA'). |
| destinationrequired | string | Destination city and state (e.g. 'New York, NY'). |
{
"type": "object",
"fields": {
"total": "total number of trips found",
"trips": "array of trip objects with carrier, schedule, price, and route details"
},
"sample": {
"data": {
"total": 144,
"trips": [
{
"price_usd": 124,
"transfers": 0,
"arrival_city": "New York",
"arrival_time": "2026-07-30T18:29:00.000Z",
"carrier_code": "USNER",
"vehicle_type": "train",
"arrival_state": "NY",
"operator_name": "Northeast Regional",
"departure_city": "Boston",
"departure_time": "2026-07-30T14:20:00.000Z",
"duration_hours": 4.15,
"arrival_station": "NY Moynihan Train Hall at Penn Station",
"departure_state": "MA",
"departure_station": "South Station"
},
{
"price_usd": 131,
"transfers": 0,
"arrival_city": "New York",
"arrival_time": "2026-07-30T12:51:00.000Z",
"carrier_code": "USACL",
"vehicle_type": "train",
"arrival_state": "NY",
"operator_name": "Acela",
"departure_city": "Boston",
"departure_time": "2026-07-30T09:00:00.000Z",
"duration_hours": 3.85,
"arrival_station": "NY Moynihan Train Hall at Penn Station",
"departure_state": "MA",
"departure_station": "South Station"
}
]
},
"status": "success"
}
}About the Wanderu API
What the API Returns
The search_trips endpoint accepts three required parameters: origin and destination as city-state strings (e.g., Boston, MA and New York, NY) and date in YYYY-MM-DD format. The response contains a total count of matching trips and a trips array where each object carries carrier name, scheduled departure and arrival times, trip duration, ticket price, and route details. All timestamps are returned in UTC ISO-8601 format.
Carriers and Coverage
Results span multiple operators that serve US intercity ground routes — Amtrak, Greyhound, FlixBus, and other bus and rail carriers listed on Wanderu. Coverage is limited to routes that Wanderu indexes between US city pairs; international or intra-city routes are not in scope.
Working With the Response
The trips array is returned unsorted, so consumer code is responsible for ordering by price, duration, or departure time. The total field lets you verify how many options are available before iterating the array. Because the endpoint is one-way only, round-trip itineraries require two separate search_trips calls with origin and destination swapped.
The Wanderu API is a managed, monitored endpoint for wanderu.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when wanderu.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official wanderu.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a price-comparison widget that ranks bus and train fares between two US cities by ticket cost.
- Alert travelers when Amtrak or Greyhound prices drop below a threshold on a target route and date.
- Populate a travel app's ground-transit tab with carrier names, departure times, and trip durations.
- Analyze seasonal fare trends across US intercity routes by collecting
search_tripsresults over time. - Identify the fastest ground-transit option between two cities by sorting results on trip duration.
- Feed a trip-planning tool that surfaces multi-modal itineraries combining flights with bus or rail legs.
| 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 | 100 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 Wanderu have an official public developer API?+
What does a single trip object in the `trips` array include?+
trips array includes the carrier name, departure and arrival times in UTC ISO-8601 format, total trip duration, ticket price, and route details. It does not include seat availability counts or booking URLs.Does the API support round-trip or multi-city searches?+
search_trips endpoint covers one-way trips only. Round-trip itineraries require two separate calls with origin and destination reversed. Multi-city itineraries are not supported. You can fork this API on Parse and revise it to chain calls or add a round-trip wrapper endpoint.Is real-time seat availability or booking data returned?+
What geographic coverage does the API have?+
origin and destination parameters must be US city-state strings for results to be returned.