FlixBus Tickets Scraper - Schedules, Prices & Seats avatar

FlixBus Tickets Scraper - Schedules, Prices & Seats

Pricing

from $5.00 / 1,000 flixbus trip results

Go to Apify Store
FlixBus Tickets Scraper - Schedules, Prices & Seats

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

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Security

Limited permissions

Share

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.

FieldWhat it holds
tripId, searchDateFlixBus trip ID and the date searched
fromCity, toCity, fromCityId, toCityIdResolved cities and FlixBus city IDs
departureStation, arrivalStation (+ IDs)Boarding and drop-off stations
departureTime, arrivalTimeISO 8601 times with offset
durationMinutes, durationText, direct, transferTypeTrip length and whether a change is needed
price, originalPrice, priceWithPlatformFee, currencyTicket price, the price before any discount, and the total including the booking fee
availableSeats, availableBikeSlots, capacity, statusSeats and bike places left, load level and sale status
amenities, operators, providerOn-board amenities (for example WIFI, POWER_SOCKETS) and operating companies
legsEach leg's cities, stations, times, transport mode, operator and amenities
bookingUrl, scrapedAtLink 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: price or duration);
  • seat and bike availability before you recommend a trip;
  • a scheduled fare monitor that tracks FlixBus prices over time.

Do not use it when:

How do I search FlixBus routes and prices?

Enter two city names (not station names). Everything else is optional.

  • departureDate is YYYY-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.
  • days searches 1-14 consecutive dates starting at the departure date.
  • adults (1-9), children (0-9) and bikes (0-9) shape the price and availability.
  • currency (for example EUR, USD) and locale (for example en, de) set the price currency and language.
  • fromCountry and toCountry take a two-letter code to pick the right city when a name exists in several countries, for example US for Portland.
  • directOnly, sortBy (departure, price or duration) and maxResults (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 os
from apify_client import ApifyClient
client = 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.

EventFREEBRONZESILVERGOLD
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 scrapedAt and confirm on FlixBus before you buy.
  • The Actor reads FlixBus's public endpoints directly and takes no proxy setting; a proxyConfiguration field 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.

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