FlixBus Scraper
Pricing
from $3.00 / 1,000 results
FlixBus Scraper
Scrape FlixBus - Europe and North America's largest intercity bus network. Search bus and train journeys by route and date, look up cities and stations, and fetch popular routes. Get departure/arrival times, duration, transfers, prices, operators, and amenities.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape FlixBus — Europe and North America's largest intercity bus network (also covering FlixTrain rail services). Search bus and train journeys by route and date, look up stations, and fetch popular routes per country. HTTP-only via the public global.api.flixbus.com JSON API. No auth required; optional proxy engaged automatically only if FlixBus blocks direct requests.
What this actor does
- Three modes:
search(bus & train journeys),stationLookup,popularRoutes - Route search: origin → destination → date with up to 4 passengers
- Filters: depart-after / arrive-by times, max price, max transfers, service type (bus/train)
- Currencies: 14 ISO 4217 currencies (
EUR,USD,GBP, …) - Countries: 19 countries with popular-route homepages
- Empty fields are omitted
Data Source
FlixBus (flixbus.com) — Europe and North America's largest intercity bus network (also covering FlixTrain rail services). The actor reads the public JSON API behind the website (global.api.flixbus.com — the same endpoints the website's search uses), including the journey-search API (/search/service/v4/search) and the station autocomplete. HTTP-only, no login or API key required; the optional proxy is engaged automatically only if FlixBus blocks direct requests.
Output per journey (mode = search)
journeyId,status— FlixBus journey identifier and availabilityprovider— journey provider key (e.g.flixbus)origin,destination— resolved city namesdepartureCity,arrivalCity,departureStation,arrivalStationdepartureCityId,arrivalCityId,departureStationId,arrivalStationIddepartureTime,arrivalTime— ISO 8601 UTC timestampsdurationMinutes— total journey timetransfers— number of connections (0 = direct)intermediateStationsCount— stops between origin and destinationlegCount,serviceType—bus/train/ mixedserviceTypes[],amenities[]— e.g.WIFI,POWER_SOCKETS,TOILEToperators[]— operating companies (e.g.FlixBus DACH GmbH,FlixTrain)rideIds[],brandIds[],seatTypes[],cheapestSeat— per-leg detailsisMarketplace— true when a partner operator sells the legbikesAllowed,wheelchairStatus— accessibility flags from the API (wheelchairStatusis omitted when the API reportsunknown)notices[]— informational messages attached to the journeyprice,originalPrice,pricePerPassenger,totalWithPlatformFee,currencyavailableSeats,capacity,seatsLeftAtPricesourceUrl— booking deep-link for this route and daterecordType: "journey",scrapedAt
Output per station (mode = stationLookup)
stationId,stationName,slug,address,zipcodecityId,cityName,citySlug,countryCode,countryNamelatitude,longitude,isTrain,legacyId,importanceOrder,searchQuerysourceUrl— the autocomplete API endpoint that produced the record (stations have no public web page)recordType: "station",scrapedAt
Output per route (mode = popularRoutes)
origin,destination— parsed from the country's homepage connections panelrouteUrl— canonical route page URLrecordType: "route",sourceUrl,scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / stationLookup / popularRoutes |
originQuery | string | Berlin | Departure city (mode=search) |
destinationQuery | string | Hamburg | Arrival city (mode=search) |
travelDate | string | tomorrow | YYYY-MM-DD departure date (mode=search) |
passengers | int | 1 | Adult passengers (1–4) |
departAfter | string | – | Earliest departure, HH:MM (mode=search) |
arriveBy | string | – | Latest arrival, HH:MM (mode=search) |
maxPrice | number | – | Price cap on journey total (mode=search) |
maxTransfers | int | – | Max connections (0 = direct only, mode=search) |
serviceType | string | – | bus / train (mode=search) |
currency | string | EUR | ISO 4217 currency |
country | string | us | Country for city resolution + popular routes |
stationQuery | string | – | Station name to look up (mode=stationLookup) |
language | string | en | Autocomplete locale (ISO 639-1) |
maxItems | int | 50 | Hard cap (1–1000) |
proxyConfiguration | object | Apify proxy | Optional; auto-engaged only if blocked |
Example: Berlin → Hamburg tomorrow, direct only, under €25
{"mode": "search","originQuery": "Berlin","destinationQuery": "Hamburg","passengers": 2,"departAfter": "08:00","arriveBy": "22:00","maxPrice": 25,"maxTransfers": 0,"currency": "EUR","country": "de"}
Example: US route, USD pricing
{"mode": "search","originQuery": "New York","destinationQuery": "Boston","travelDate": "2026-08-20","currency": "USD","country": "us","maxItems": 20}
Example: look up stations
{"mode": "stationLookup","stationQuery": "Berlin central","country": "de","maxItems": 20}
Example: popular routes in the UK
{"mode": "popularRoutes","country": "gb","maxItems": 20}
Limitations
- No booking / fares endpoints — FlixBus's separate booking and fares endpoints are anti-bot gated. The actor queries only the public journey-search API, which returns live prices, availability, and transfer details in the search response itself. If a route returns no journeys, the run reports it in the status message instead of falling through to a blocked endpoint.
- Per-station-pair journeys — a single ride bookable from multiple stations in the same city (e.g. Berlin ZOB and Berlin Alexanderplatz) produces one journey record per station pairing.
- Search covers bookable future dates — the API returns live schedules for upcoming dates; historical departures are not available.
stationLookupreturns station-level records — stations have no public web page, sosourceUrlpoints at the autocomplete endpoint that produced the record.
Use cases
- Price monitoring — track FlixBus fares on commuter and long-haul routes
- Travel apps — feed journey schedules and durations into trip planners
- Route planning — compare direct vs. transfer journeys by price and time
- Transit analytics — analyze operator coverage and amenities per route
- Competitive intelligence — compare FlixBus/FlixTrain with other carriers
FAQ
What is the data source? The public JSON API behind flixbus.com (global.api.flixbus.com) — the same endpoints the website's search uses. No login or API key required.
Which routes are covered? All FlixBus-operated routes in the EU, UK, US, Canada, and beyond — plus FlixTrain rail journeys where they appear in the same search results.
Why do some journeys repeat? A single ride can be bookable from multiple stations in the same city (e.g. Berlin ZOB and Berlin Alexanderplatz). Each station pairing is a distinct journey record.
What does transfers mean? 0 for direct journeys; for connecting journeys it's the number of legs minus one (e.g. a bus→train connection has 1 transfer).
Why is the departure date optional? It defaults to tomorrow when empty, so the actor always returns live future schedules.
How fresh is the data? Live — every run queries the FlixBus booking API in real time.
Why are prices sometimes equal to original price? originalPrice is the pre-discount fare; when no discount applies it equals price.
What if two cities share a name? Autocomplete resolves the top match for the selected country. Use stationLookup first if you need an exact station.
Is this affiliated with FlixBus? No — this is a third-party actor using FlixBus's public website API.
Is there a dedicated fares/booking endpoint? FlixBus's separate booking/fares endpoints are anti-bot gated. This actor does not use them — it queries the public journey-search API (/search/service/v4/search), which returns live prices, availability, and transfer details in the search response itself. If a route returns no journeys, the run reports it in the status message instead of falling through to a blocked endpoint.