FlixBus Tickets Scraper - Schedules, Prices & Seats
Pricing
from $5.00 / 1,000 flixbus trip results
FlixBus Tickets Scraper - Schedules, Prices & Seats
Scrape FlixBus tickets for any route: schedules, stations, fee-inclusive prices, seats and bike slots over 1-14 days. $6.50 per 1,000 trips.
Pricing
from $5.00 / 1,000 flixbus trip results
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Security
Limited permissionsShare
FlixBus Tickets Scraper returns FlixBus trips between any two cities in the FlixBus network, with departure and arrival times, stations, ticket prices with and without the platform fee, seats left, bike slots, amenities and operators. It is built for fare-monitoring dashboards, travel comparison sites, route planners and AI agents, and costs $6.50 per 1,000 trips on the Apify Free plan plus a $0.0005 start fee per run.
The Actor reads the same public trip search the FlixBus booking site uses. It needs no FlixBus account, never holds seats or buys tickets, and charges only for trips it saves.
What FlixBus ticket data does it return?
Each dataset row is one trip offer for one date and one station pair.
| Field | What it holds |
|---|---|
tripId, searchDate | FlixBus trip ID and the date searched |
fromCity, toCity, fromCityId, toCityId | Resolved cities and FlixBus city IDs |
departureStation, arrivalStation (+ IDs) | Boarding and drop-off stations |
departureTime, arrivalTime | ISO 8601 times with offset |
durationMinutes, durationText, direct, transferType | Trip length and whether a change is needed |
price, originalPrice, priceWithPlatformFee, currency | Ticket price, the price before any discount, and the total including the booking fee |
availableSeats, availableBikeSlots, capacity, status | Seats and bike places left, load level and sale status |
amenities, operators, provider | On-board amenities (for example WIFI, POWER_SOCKETS) and operating companies |
legs | Each leg's cities, stations, times, transport mode, operator and amenities |
bookingUrl, scrapedAt | Link to the matching FlixBus search and the capture time |
Every run also writes a SUMMARY record with outcome (DATA, EMPTY, BLOCKED or REJECTED_OR_FAILED), the resolved cities, candidate and delivered counts, and warnings.
When should you use it, and when not?
Use it when you need:
- the FlixBus schedule and ticket prices for one route over 1-14 consecutive days;
- the cheapest or fastest bus on a route (
sortBy: priceorduration); - seat and bike availability before you recommend a trip;
- a scheduled fare monitor that tracks FlixBus prices over time.
Do not use it when:
- you want to book. The Actor is read-only;
- you want to compare Greyhound, Megabus and Amtrak in the US in one dataset. Use Greyhound Bus Tickets, Megabus & Amtrak Scraper;
- you need trains: Deutsche Bahn Train Tickets Scraper for Germany, Trenitalia Train Tickets Scraper or Italo Train Scraper for Italy, National Rail Tickets Scraper for Great Britain;
- you need return trips in one row. Search each direction as its own run.
How do I search FlixBus routes and prices?
Enter two city names (not station names). Everything else is optional.
departureDateisYYYY-MM-DD. Leave it empty to search tomorrow, which keeps saved Tasks evergreen. Words such as "tomorrow" are not accepted, and past dates are rejected.dayssearches 1-14 consecutive dates starting at the departure date.adults(1-9),children(0-9) andbikes(0-9) shape the price and availability.currency(for exampleEUR,USD) andlocale(for exampleen,de) set the price currency and language.fromCountryandtoCountrytake a two-letter code to pick the right city when a name exists in several countries, for exampleUSfor Portland.directOnly,sortBy(departure,priceorduration) andmaxResults(1-500, default 50) shape the result set.
{"fromCity": "Berlin","toCity": "Munich","days": 3,"adults": 1,"currency": "EUR","sortBy": "price","maxResults": 25}
Use it from an AI assistant
FlixBus Tickets Scraper works from Claude, ChatGPT, Cursor or any other MCP client through Apify's MCP server. Add https://mcp.apify.com/?tools=muhammadafzal/flixbus-route-price-scraper as a server, and the assistant can call the Actor as one tool. Example prompt: "Find the three cheapest FlixBus trips from Paris to Amsterdam over the next three days and tell me how many seats are left on each."
How do I run it from code?
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/flixbus-route-price-scraper').call({fromCity: 'Berlin',toCity: 'Munich',sortBy: 'price',maxResults: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((t) => `${t.departureTime} ${t.priceWithPlatformFee} ${t.currency} seats:${t.availableSeats}`));
Python (apify-client 3.x):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/flixbus-route-price-scraper").call(run_input={"fromCity": "Berlin", "toCity": "Munich", "sortBy": "price", "maxResults": 10})for trip in client.dataset(run.default_dataset_id).iterate_items():print(trip["departureTime"], trip["price"], trip["currency"], trip["direct"])
What does the output look like?
Two trips from a default run (Berlin to Munich, searched 2026-10-26), shortened: legs and some IDs are trimmed.
[{"tripId": "direct:…","searchDate": "2026-10-27","fromCity": "Berlin","toCity": "Munich","departureTime": "2026-10-27T17:20:00+01:00","arrivalTime": "2026-10-28T00:40:00+01:00","departureStation": "Berlin central bus station","arrivalStation": "Munich central bus station","durationMinutes": 440,"durationText": "7h 20m","direct": true,"transferType": "Fast","status": "available","price": 29.49,"originalPrice": 29.49,"priceWithPlatformFee": 30.48,"currency": "EUR","availableSeats": 29,"capacity": "medium","amenities": ["WIFI", "POWER_SOCKETS"],"operators": ["FlixBus Polska sp. z.o.o."],"bookingUrl": "https://shop.flixbus.com/search?adult=1&…&rideDate=27.10.2026"},{"tripId": "ic:…","searchDate": "2026-10-27","departureTime": "2026-10-27T07:00:00+01:00","arrivalTime": "2026-10-27T17:35:00+01:00","departureStation": "Berlin central bus station","arrivalStation": "Munich Fröttmaning","durationMinutes": 635,"durationText": "10h 35m","direct": false,"transferType": "Transfer","price": 72.48,"priceWithPlatformFee": 73.47,"currency": "EUR","availableSeats": 14,"availableBikeSlots": 0,"capacity": "low"}]
Pricing: how much does a FlixBus search cost?
You pay per trip saved, plus a tiny start fee. Platform usage is included in these prices.
| Event | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|
| FlixBus trip result (primary event, per saved row) | $0.0065 | $0.006 | $0.0055 | $0.005 |
| Actor start (per started GB of allocated memory) | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
PLATINUM and DIAMOND plans pay the GOLD price. The default memory is 256 MB, so a normal run pays one start event.
Worked totals on the Free plan:
- Default run that found 15 trips: $0.0005 + 15 × $0.0065 = $0.098.
- Full 50-trip run: $0.0005 + 50 × $0.0065 = $0.3255 (GOLD: $0.2505).
Unknown cities, empty searches and blocked runs save no trips and charge no trip events. If you set a maximum cost per run, the dataset stops at that limit.
How reliable is it, and what are its limits?
- The default run (Berlin to Munich, one day) finished in about 4 seconds on 2026-10-26 and saved 15 trips with prices and seat counts.
- One request per date, with up to three retries and backoff on errors. A date that fails is recorded as a warning while the other dates still return data.
- The same bus can appear twice when FlixBus sells it to two drop-off stations in one city; each row has its own
tripId. - Prices and seats change quickly. Treat each row as a snapshot at
scrapedAtand confirm on FlixBus before you buy. - The Actor reads FlixBus's public endpoints directly and takes no proxy setting; a
proxyConfigurationfield sent by older API calls is ignored.
FAQ
Does it buy or reserve FlixBus tickets?
No. It reads public trip and price data only. Use bookingUrl to open the same search on FlixBus and buy there.
Can I search several days at once?
Yes. Set days up to 14 to search consecutive dates in one run; maxResults caps the total across all dates.
Which price field should I use?
priceWithPlatformFee is the total a buyer pays, including FlixBus's booking fee. price is the ticket price without that fee, and originalPrice is the price before any discount. sortBy: price sorts by the fee-inclusive total.
Does it work for US routes?
Yes, for any city in the FlixBus network. Add fromCountry: "US" when a city name also exists in Europe. To compare Greyhound, Megabus and Amtrak in one dataset, use the US intercity Actor linked above.
What if my city name matches the wrong place?
Use the exact public FlixBus city name and add the two-letter country code. An unknown city ends the run as rejected with no trip charges.
Can I see only direct buses?
Yes. Set directOnly: true to keep one-leg trips only.
Related Actors
- Greyhound Bus Tickets, Megabus & Amtrak Scraper: US bus fares and Amtrak schedules in one dataset.
- Deutsche Bahn Train Tickets Scraper: compare the same German routes by train.
- Trenitalia Train Tickets Scraper and Italo Train Scraper: Italian rail fares.
- National Rail Tickets Scraper: UK train times and fares.
- SNCF Scraper: French train schedules and prices.
Legal and responsible use
Use the data for research, comparison and planning at a reasonable volume, and respect FlixBus's terms and local law. Do not present scraped prices as guaranteed or as a booking. This Actor is independent and not affiliated with or endorsed by FlixBus or Flix SE.
Last verified: 2026-10-27