FlixBus Trip Prices Scraper
Pricing
Pay per event
FlixBus Trip Prices Scraper
Monitor FlixBus route fares, schedules, station names, durations, availability, and booking URLs for date-based bus price tracking.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape FlixBus route prices, departures, durations, station names, availability signals, and booking URLs from public FlixBus route searches.
Use this actor when you need repeatable fare monitoring for intercity bus routes without opening the FlixBus website manually every day.
What does FlixBus Trip Prices Scraper do?
FlixBus Trip Prices Scraper searches public FlixBus route/date combinations and returns structured trip price records.
It can resolve city IDs from public route pages such as https://global.flixbus.com/bus-routes/bus-paris-lyon.
It can also accept FlixBus shop search URLs or explicit FlixBus city UUIDs when you already know them.
Each output item represents one available trip quote for one route and departure date.
The actor is HTTP based and reads the same structured search data that powers the public FlixBus booking experience.
Who is it for?
Travel aggregators use it to compare intercity bus options across routes and dates.
Fare-alert tools use it to detect price changes and notify travelers when a route becomes cheaper.
Route planners use it to collect departure windows, durations, and transfer types.
Market analysts use it to track availability and price levels on strategic corridors.
Tour operators use it to monitor travel costs for fixed city pairs.
Developers use it as a clean FlixBus data source for dashboards, alerts, and internal APIs.
Why use this FlixBus scraper?
š It returns fare data as rows you can export to JSON, CSV, Excel, or via API.
š¶ It includes both base price and platform-fee-inclusive price when FlixBus exposes both values.
š It captures departure and arrival timestamps plus duration in minutes.
š It includes city and station names when available in the FlixBus response.
šÆ It supports route pages, search URLs, and direct city UUID input.
How much does it cost to scrape FlixBus trip prices?
The actor uses pay-per-event pricing.
You pay a small start fee per run and then a per-result fee for each trip price record saved.
Use maxItems to control cost during tests.
Start with one route and one date, confirm the output, then scale to more routes or date ranges.
Actual billing is shown by Apify before and after each run.
Input options
routes is the main route configuration field.
Each route can contain a public FlixBus route page URL.
Each route can also contain a FlixBus shop search URL.
Advanced users can provide fromCityId and toCityId directly.
startUrls is supported for users who prefer the Apify request-list UI.
departureDate searches one day in YYYY-MM-DD format.
dateRangeEnd extends the search across multiple days.
adults controls the passenger count used in the fare quote.
currency requests prices in a FlixBus-supported currency such as EUR.
locale controls localized search behavior and booking URLs.
maxItems caps the number of saved trip records.
Example input
{"routes": [{ "url": "https://global.flixbus.com/bus-routes/bus-paris-lyon" }],"departureDate": "2026-08-15","adults": 1,"currency": "EUR","locale": "en","maxItems": 100}
Date range example
{"routes": [{"fromCityId": "40de8964-8646-11e6-9066-549f350fcb0c","toCityId": "40df89c1-8646-11e6-9066-549f350fcb0c"}],"departureDate": "2026-08-15","dateRangeEnd": "2026-08-21","maxItems": 500}
Output data
The default dataset contains one item per FlixBus trip price result.
| Field | Description |
|---|---|
route | Human-readable route label |
departureCity | Departure city name |
arrivalCity | Arrival city name |
departureStation | Departure station name |
arrivalStation | Arrival station name |
departureTime | ISO departure timestamp |
arrivalTime | ISO arrival timestamp |
travelDate | Requested travel date |
durationMinutes | Trip duration in minutes |
transferType | Direct or transfer label |
provider | Provider value returned by FlixBus |
price | Base fare total |
priceWithPlatformFee | Fare including platform fee when available |
currency | Currency code |
availabilityStatus | Availability status returned by FlixBus |
availableSeats | Seats available when returned |
seatsLeftAtPrice | Seats left at the current price level |
bikeSlots | Bike slots when returned |
legsCount | Number of legs in the itinerary |
rideIds | FlixBus ride IDs for the legs |
bookingUrl | URL users can open to continue booking |
scrapedAt | Timestamp when the record was saved |
Example output item
{"route": "Paris ā Lyon","departureCity": "Paris","arrivalCity": "Lyon","departureStation": "Paris (Bercy Seine)","arrivalStation": "Lyon (Gerland)","departureTime": "2026-08-15T00:30:00+02:00","arrivalTime": "2026-08-15T06:00:00+02:00","durationMinutes": 330,"price": 62.99,"currency": "EUR","availabilityStatus": "available"}
How to run
Open the actor on Apify.
Paste one or more FlixBus route URLs into routes or startUrls.
Choose a departure date.
Set maxItems to a low value for the first run.
Start the actor.
Download results from the dataset tab or consume them through the Apify API.
Tips for best results
Use route pages from global.flixbus.com when possible.
Use future dates that FlixBus currently sells.
Keep date ranges small when monitoring many routes.
Use explicit city IDs for stable production workflows.
Use maxItems to limit spend while testing a new route set.
Integrations
Connect the dataset to Google Sheets for daily fare-monitoring reports.
Use Apify webhooks to trigger price-alert workflows after each run.
Send output to a BI warehouse for route-market analysis.
Call the actor from a cron job to create a route fare history.
Combine it with notification tools to alert when price drops below a threshold.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/flixbus-trip-prices-scraper').call({routes: [{ url: 'https://global.flixbus.com/bus-routes/bus-paris-lyon' }],departureDate: '2026-08-15',maxItems: 100});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY_APIFY_TOKEN')run = client.actor('automation-lab/flixbus-trip-prices-scraper').call(run_input={'routes': [{'url': 'https://global.flixbus.com/bus-routes/bus-paris-lyon'}],'departureDate': '2026-08-15','maxItems': 100,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~flixbus-trip-prices-scraper/runs?token=MY_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"routes":[{"url":"https://global.flixbus.com/bus-routes/bus-paris-lyon"}],"departureDate":"2026-08-15","maxItems":100}'
MCP usage
You can use this actor through Apify MCP tools in Claude Code or Claude Desktop.
Use the actor-specific MCP URL:
https://mcp.apify.com/?tools=automation-lab/flixbus-trip-prices-scraper
Claude Code setup:
$claude mcp add apify-flixbus-prices https://mcp.apify.com/?tools=automation-lab/flixbus-trip-prices-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify-flixbus-prices": {"url": "https://mcp.apify.com/?tools=automation-lab/flixbus-trip-prices-scraper"}}}
Example prompt:
"Run the FlixBus Trip Prices Scraper for Paris to Lyon next Friday and summarize the cheapest departures."
Another prompt:
"Monitor this FlixBus route URL for seven days and tell me which date has the lowest fare."
Common workflows
Daily price monitoring for one city pair.
Weekly route-market snapshots across many city pairs.
Departure-time inventory checks for travel planning.
Price comparison between direct and connecting rides.
Availability tracking for routes with limited seats.
Troubleshooting
If a route returns zero items, check that FlixBus sells tickets for the selected date.
If a route page cannot be resolved, try a shop search URL or explicit city IDs.
If you see fewer rows than expected, increase maxItems.
If prices differ from the website, confirm that currency, locale, passengers, and date match your browser search.
Limitations
The actor only returns data exposed by public FlixBus search responses.
It does not complete bookings or collect passenger details.
It does not bypass account-only content.
FlixBus can change its public API or route availability at any time.
Data freshness
Each record includes scrapedAt.
For price histories, schedule recurring runs and store datasets externally.
Do not assume prices are locked until a user completes checkout on FlixBus.
Legality
This actor extracts publicly available fare-search data.
Use the data responsibly.
Respect FlixBus terms and applicable laws.
Do not use the output for spam, fraud, or abusive automation.
Related scrapers
Other travel and mobility actors from automation-lab can complement this actor.
Ryanair flight price scraping can help compare bus and flight corridors.
Hotel or destination scrapers can enrich travel-planning dashboards.
Use only https://apify.com/automation-lab/ actors when building internal workflows.
FAQ
Can I search by city names?
The most reliable input is a FlixBus route URL or city UUID pair. Route URLs are easy to copy from the public FlixBus website.
Does it support multiple passengers?
Yes. Set adults to the number of adult passengers for the fare quote.
Can I monitor several routes?
Yes. Add multiple objects to routes and set a sensible maxItems limit.
Does it use a browser?
No. The actor is HTTP based for lower runtime cost and faster execution.
Can I book tickets with it?
No. It returns fare and availability data plus a booking URL. Booking happens on FlixBus.