# FlixBus Trips, Prices & Availability Scraper (`scrapers_lat/flixbus-scraper`) Actor

Extract FlixBus intercity bus trips, fares, seat availability, transfers and amenities by route and date across Europe and the US. Export JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/flixbus-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Travel, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $10.00 / 1,000 trips

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<!-- actor-banner -->
[![FlixBus Trips, Prices & Availability Scraper](https://scrapers.lat/banners/flixbus-scraper.png)](https://console.apify.com/actors/TBwZsEvj4DHYTe529/input)
<!-- /actor-banner -->

## FlixBus Scraper

> Extract FlixBus intercity bus trips, fares, seat availability and amenities by route and date across 40+ countries in Europe and the US

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-Europe%20%26%20US-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>30 fields</strong><br>per trip</td>
<td align="center"><strong>Europe &amp; US</strong><br>coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-27</td>
</tr></table>

<br>

### What you get

Each record is one bookable FlixBus trip for a given route and date, with its live price, seats left, transfers and onboard amenities, ready for fare monitoring, travel apps or route analysis.

- **imageUrl**: brand logo for the trip (FlixBus or FlixTrain)
- **origin**: departure city name
- **destination**: arrival city name
- **departure**: departure datetime with timezone offset
- **arrival**: arrival datetime with timezone offset
- **durationText**: travel time as a readable string, for example "7h 40m"
- **durationMinutes**: travel time in minutes
- **price**: total fare for the requested party size
- **priceWithFee**: total fare including the platform booking fee
- **currency**: currency of the fare
- **status**: availability status, for example available or sold out
- **seatsAvailable**: number of seats still on sale
- **capacity**: remaining capacity hint (low or high)
- **bikeSlots**: bike slots still available
- **transfers**: number of transfers (0 for direct trips)
- **transferType**: direct or transfer
- **operator**: primary operating company
- **operators**: all operating companies across the legs
- **brand**: travel brand, FlixBus or FlixTrain
- **meansOfTransport**: bus, train or a mix
- **amenities**: onboard amenities such as WiFi and power sockets
- **decks**: number of decks on the vehicle
- **seatLayout**: seat column layout, for example TWO_TWO
- **departureStation**: boarding station name
- **arrivalStation**: drop-off station name
- **bikesAllowed**: whether bikes are allowed on the trip
- **wheelchairStatus**: wheelchair accessibility status
- **tripId**: stable FlixBus identifier for the trip
- **legs**: per-leg breakdown (stations, times, operator, amenities) for trips with a transfer
- **bookingUrl**: link to the FlixBus search page for the route and date
- **observedAt**: when this trip was last seen by the scraper

### Who is it for

| Use case | Who benefits |
|---|---|
| Track intercity bus fares over time | Price comparison and travel deal sites |
| Feed live trip and price data into an app | Travel and mobility app developers |
| Analyze routes, frequencies and durations | Transport and mobility analysts |
| Monitor seat availability and capacity | Tour operators and group travel planners |
| Benchmark coach fares against rail and air | Travel market researchers |

### Frequently Asked Questions

**Which countries and routes does the FlixBus scraper cover?**  
It covers the full FlixBus and FlixTrain network across more than 40 countries in Europe plus the United States. You enter any origin and destination city served by FlixBus and a travel date, and the scraper returns every trip on sale for that day.

**How many trips can I get per run?**  
One run covers a single origin, destination and date and returns every trip offered, commonly 20 to 80 results on busy corridors. The Max Items setting caps how many of those trips are saved. To cover several dates or routes, run the actor once per combination.

**Can I choose the currency and number of passengers?**  
Yes. You can pick from currencies such as EUR, USD, GBP, CHF and PLN, and set the number of adult passengers. Prices are returned for that party size and in the chosen currency, including the breakdown with the platform booking fee.

**Does it include transfers, seats and onboard amenities?**  
Yes. Each trip reports the number of transfers, the transfer stations, seats still available, remaining capacity, bike slots and onboard amenities like WiFi and power sockets. Trips with a connection also include a per-leg breakdown.

**What happens if a route has no trips on the chosen date?**  
The scraper returns a single record for the route with an error note saying no trips were found, along with the booking link, so the run still finishes cleanly and you can tell apart empty routes from failures.

<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [FlixBus Berlin to Munich Prices](https://apify.com/scrapers_lat/flixbus-scraper/examples/flixbus-berlin-munich-prices): Scrape FlixBus schedules and fares from Berlin to Munich with departure, arrival, duration, transfers and price.
- [FlixBus Los Angeles to Las Vegas Prices](https://apify.com/scrapers_lat/flixbus-scraper/examples/flixbus-los-angeles-las-vegas-prices): Scrape FlixBus Los Angeles to Las Vegas trips with departure times, duration, transfers and USD ticket prices.
- [FlixBus Paris to Amsterdam Prices](https://apify.com/scrapers_lat/flixbus-scraper/examples/flixbus-paris-amsterdam-prices): Track FlixBus Paris to Amsterdam departures with times, duration, seats availability and live ticket prices.

<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [Eventbrite Event Listings Scraper](https://apify.com/scrapers_lat/eventbrite-scraper): Extract public events with venues, dates and ticket prices worldwide.
- [MercadoLibre Product Listings Scraper](https://apify.com/scrapers_lat/mercadolibre-scraper): Pull product listings, prices and sellers across Latin America.
- [Rappi Restaurants & Stores Scraper](https://apify.com/scrapers_lat/rappi-scraper): Collect stores, menus and prices from the Rappi delivery marketplace.
- [Google News Article Scraper](https://apify.com/scrapers_lat/google-news-scraper): Gather news headlines, sources and links for any topic or region.
- [Instagram Profile & Posts Scraper](https://apify.com/scrapers_lat/instagram-scraper): Extract public profiles, posts and engagement metrics from Instagram.
- [X (Twitter) Profiles & Tweets Scraper](https://apify.com/scrapers_lat/x-twitter-scraper): Collect public profiles and tweets with engagement data from X.

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with FlixBus. It only accesses data that is publicly available on the platform. Use it in accordance with FlixBus's terms of service.

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum number of trips to collect for the route and date. Optional.
## `fromCity` (type: `string`):

Origin city name, for example 'Berlin', 'Paris' or 'New York'. The scraper resolves it to the best matching FlixBus city.
## `toCity` (type: `string`):

Destination city name, for example 'Munich', 'Amsterdam' or 'Washington'. The scraper resolves it to the best matching FlixBus city.
## `departureDate` (type: `string`):

Travel date as YYYY-MM-DD. If left empty, the scraper uses a date about two weeks from today.
## `passengers` (type: `integer`):

Number of adult passengers. Prices are returned for this party size.
## `currency` (type: `string`):

Currency in which fares are returned.
## `proxyConfiguration` (type: `object`):

Optional proxy. Direct requests work for FlixBus, so a proxy is normally not needed. Enable it only if the host starts rate limiting the run.

## Actor input object example

```json
{
  "maxItems": 10,
  "fromCity": "Berlin",
  "toCity": "Munich",
  "passengers": 1,
  "currency": "EUR",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "fromCity": "Berlin",
    "toCity": "Munich",
    "passengers": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/flixbus-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "fromCity": "Berlin",
    "toCity": "Munich",
    "passengers": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/flixbus-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "fromCity": "Berlin",
  "toCity": "Munich",
  "passengers": 1
}' |
apify call scrapers_lat/flixbus-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/flixbus-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FlixBus Trips, Prices & Availability Scraper",
        "description": "Extract FlixBus intercity bus trips, fares, seat availability, transfers and amenities by route and date across Europe and the US. Export JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "ET9Laauh3KvgpaPqL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~flixbus-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-flixbus-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~flixbus-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-flixbus-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~flixbus-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-flixbus-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "fromCity",
                    "toCity"
                ],
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of trips to collect for the route and date. Optional."
                    },
                    "fromCity": {
                        "title": "From City",
                        "type": "string",
                        "description": "Origin city name, for example 'Berlin', 'Paris' or 'New York'. The scraper resolves it to the best matching FlixBus city."
                    },
                    "toCity": {
                        "title": "To City",
                        "type": "string",
                        "description": "Destination city name, for example 'Munich', 'Amsterdam' or 'Washington'. The scraper resolves it to the best matching FlixBus city."
                    },
                    "departureDate": {
                        "title": "Departure Date",
                        "type": "string",
                        "description": "Travel date as YYYY-MM-DD. If left empty, the scraper uses a date about two weeks from today."
                    },
                    "passengers": {
                        "title": "Passengers (adults)",
                        "minimum": 1,
                        "maximum": 9,
                        "type": "integer",
                        "description": "Number of adult passengers. Prices are returned for this party size."
                    },
                    "currency": {
                        "title": "Currency",
                        "enum": [
                            "EUR",
                            "USD",
                            "GBP",
                            "CHF",
                            "PLN",
                            "CZK",
                            "DKK",
                            "SEK",
                            "NOK",
                            "HUF",
                            "RON",
                            "BGN",
                            "HRK",
                            "BRL"
                        ],
                        "type": "string",
                        "description": "Currency in which fares are returned.",
                        "default": "EUR"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Optional proxy. Direct requests work for FlixBus, so a proxy is normally not needed. Enable it only if the host starts rate limiting the run.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
