FlixBus Trip Prices Scraper avatar

FlixBus Trip Prices Scraper

Pricing

Pay per event

Go to Apify Store
FlixBus Trip Prices Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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.

FieldDescription
routeHuman-readable route label
departureCityDeparture city name
arrivalCityArrival city name
departureStationDeparture station name
arrivalStationArrival station name
departureTimeISO departure timestamp
arrivalTimeISO arrival timestamp
travelDateRequested travel date
durationMinutesTrip duration in minutes
transferTypeDirect or transfer label
providerProvider value returned by FlixBus
priceBase fare total
priceWithPlatformFeeFare including platform fee when available
currencyCurrency code
availabilityStatusAvailability status returned by FlixBus
availableSeatsSeats available when returned
seatsLeftAtPriceSeats left at the current price level
bikeSlotsBike slots when returned
legsCountNumber of legs in the itinerary
rideIdsFlixBus ride IDs for the legs
bookingUrlURL users can open to continue booking
scrapedAtTimestamp 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 ApifyClient
client = 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.

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.