OrbTop

FlixBus Scraper — Bus & Train Schedules, Fares (40+ Countries)

TRAVELBUSINESSDEVELOPER TOOLS

FlixBus Scraper — Bus & Train Schedules, Fares, Routes

Scrapes trip schedules, fares, and seat availability from FlixBus across 40+ countries. Returns departure and arrival times, duration, price, amenities, accessibility info, and a direct booking link — for any origin/destination pair on any date.


FlixBus Scraper Features

  • Extracts up to 100 trips per route/date query in a single run
  • Returns 20+ fields per trip: timing, price, seat count, bike slots, Wi-Fi, power, wheelchair status
  • Covers FlixBus and FlixTrain routes across Europe, the US, and Canada
  • Accepts city names in plain language — "New York", "Berlin", "Paris" — no ID lookups required
  • Supports 12 currencies: EUR, USD, GBP, CHF, PLN, CZK, SEK, DKK, NOK, TRY, HUF, RON
  • Pure API scraping, no browser required
  • Accepts ISO dates (YYYY-MM-DD) or defaults to tomorrow if no date is provided

Who Uses FlixBus Data?

  • Travel aggregators — Pull real-time fares and schedules to display alongside rail and flight options
  • Fare comparison tools — Track price changes over time for a given corridor or compare FlixBus against competing intercity carriers
  • Mobility researchers — Analyze intercity bus coverage, route frequency, and pricing across European markets
  • Tourism apps — Surface affordable ground transport options for budget travelers
  • Data journalists — Map FlixBus accessibility by route — wheelchair status, bike capacity — the kind of analysis that takes ten minutes with structured data and forever without it

How FlixBus Scraper Works

  1. Fetches the FlixBus partner auth key from a public server config endpoint — no scraping the frontend, no WAF to navigate.
  2. Resolves your city names to FlixBus internal UUIDs via the autocomplete API. You type "Berlin"; it figures out the rest.
  3. Issues a single search request to the v4/search endpoint. All results for a given route and date come back in one response — no pagination needed.
  4. Saves each available trip as a structured record with fare, timing, amenity, and booking link data.

Input

{
  "origin": "Berlin",
  "destination": "Prague",
  "date": "2026-06-15",
  "passengers": 1,
  "currency": "EUR",
  "maxItems": 15,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
Field Type Default Description
origin string Berlin Departure city name (e.g. "New York", "Paris", "Warsaw")
destination string Prague Arrival city name
date string tomorrow Travel date in YYYY-MM-DD format. Leave blank to use tomorrow.
passengers integer 1 Number of adult passengers
currency string EUR Price currency ISO code (EUR, USD, GBP, etc.)
maxItems integer 15 Maximum number of trip results to return
proxyConfiguration object RESIDENTIAL Proxy settings. Residential proxy recommended for accurate geo-routing.

FlixBus Scraper Output Fields

{
  "trip_id": "direct:1234567:40d8f682-8646-11e6-9066-549f350fcb0c:40de1ad1-8646-11e6-9066-549f350fcb0c",
  "service": "FlixBus",
  "route_id": "N60",
  "origin_city": "Berlin",
  "origin_station": null,
  "origin_country": "DE",
  "destination_city": "Prague",
  "destination_station": null,
  "destination_country": "CZ",
  "departure_time": "2026-06-15T00:15:00+02:00",
  "arrival_time": "2026-06-15T04:40:00+02:00",
  "duration_minutes": 265,
  "transfers": 0,
  "segments": [],
  "price_total": 18.99,
  "price_currency": "EUR",
  "price_type": "Direct",
  "seats_available": 62,
  "bike_slots_available": 0,
  "amenities": ["wifi", "power"],
  "bikes_allowed": "true",
  "wheelchair_status": "unknown",
  "booking_url": "https://shop.flixbus.com/search?departureCity=40d8f682-8646-11e6-9066-549f350fcb0c&arrivalCity=40de1ad1-8646-11e6-9066-549f350fcb0c&rideDate=06/15/2026&adult=1",
  "scraped_at": "2026-06-14T18:30:00.000Z"
}
Field Type Description
trip_id string FlixBus trip UID encoding ride ID and station IDs
service string Brand name: FlixBus or FlixTrain
route_id string Route line code (e.g. N60, F303)
origin_city string Departure city name as returned by FlixBus
origin_station string Departure station name (null in v4 search results)
origin_country string ISO country code for origin (DE, US, FR, etc.)
destination_city string Arrival city name
destination_station string Arrival station name (null in v4 search results)
destination_country string ISO country code for destination
departure_time string Scheduled departure — ISO 8601 with timezone offset
arrival_time string Scheduled arrival — ISO 8601 with timezone offset
duration_minutes number Total trip duration in minutes
transfers number Number of transfers (0 = direct service)
segments array Stop names along route
price_total number Total ticket price in the requested currency
price_currency string Currency ISO code
price_type string Trip type: Direct or Transfer
seats_available number Seats available at scrape time
bike_slots_available number Bike transport slots available
amenities array On-board amenities (wifi, power, toilet, ac, reclining_seats, extra_legroom)
bikes_allowed string Whether bicycle carriage is permitted ("true" / "false")
wheelchair_status string Wheelchair accessibility status as reported by FlixBus
booking_url string Direct booking link on shop.flixbus.com
scraped_at string ISO timestamp when data was scraped

🔍 FAQ

How do I scrape FlixBus schedules for a specific route?

FlixBus Scraper takes an origin city name, a destination city name, and a date. Set origin to your departure city (e.g. "Amsterdam"), destination to your arrival city (e.g. "Brussels"), and date to your travel date in YYYY-MM-DD format. Leave date blank to get tomorrow's trips, which works well for monitoring.

How much does FlixBus Scraper cost to run?

FlixBus Scraper charges $0.10 per start plus $0.001 per record. A run returning 15 trips costs roughly $0.115. Most routes have 50–100 available trips per date, so a full-route pull of 100 records runs about $0.20.

What data can I get from FlixBus?

FlixBus Scraper returns schedules, fares, seat availability, bike slot counts, amenities (Wi-Fi, power sockets, toilets, AC), wheelchair accessibility status, and direct booking URLs. Coverage spans 40+ countries and 5,600+ destinations. Prices and seat counts reflect availability at the moment of scraping.

Can I filter results by price or departure time?

FlixBus Scraper returns all available trips for a route and date, up to maxItems. Filtering happens in your downstream pipeline — take the full output and apply your own criteria.

Does FlixBus Scraper need proxies?

Residential proxy is recommended. The FlixBus API applies geo-routing for country-specific pricing, so a proxy matching the origin country gives more accurate fares. It also reduces rate limiting risk on high-volume runs.

What cities are supported?

FlixBus serves 5,600+ destinations across 40+ countries in Europe, the US, and Canada. If it's on the FlixBus website, FlixBus Scraper can reach it. Unrecognized city names return a descriptive error.


Need More Features?

Need round-trip queries, custom fields, or a different target site? File an issue or reach out through the Apify console.

Why Use FlixBus Scraper?

  • Affordable — $0.001 per record includes pricing, availability, and amenities in a single API call
  • Clean output — Returns structured JSON with consistent field names and ISO-format timestamps, so your pipeline can use the data without normalization
  • 40+ countries — One actor covers all FlixBus and FlixTrain markets, from Germany and France to the US east coast intercity network