redBus Scraper
Pricing
$0.90 / 1,000 bus services
redBus Scraper
Search public redBus bus services for one route and travel date. Get structured schedules, fares, seat availability, boarding points, operators, and bus types in your dataset. Filter services by market, fare, time, operator, bus type, or seat availability.
Pricing
$0.90 / 1,000 bus services
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
🚌 Compare redBus routes with structured service data
For travel teams, route planners, and developers, redBus Scraper searches public redBus services for one origin, destination, market, and travel date. It saves structured rows with operators, service names, bus types, times, fares and currency, seat availability, boarding and dropping locations, ratings, and source-provided details. Use the rows to compare route options or build a travel view.
- Check one route for a travel date with Redbus Ticket.
- Review sleeper options on a route with Sleeper Bus Booking.
- Compare fares and departure times with Bus Ticket Prices and Schedules.
- Filter a route by fare for Cheap Last Minute Bus Tickets.
- Find lower-fare one-way options with Cheap One Way Bus Tickets.
📦 RedBus service rows at a glance
Each dataset item is one public redBus bus service for the selected market, route, and travel date. Optional fields are present when the source provides them.
▶️ Run a redBus route search
This Actor searches one origin, one destination, and one travel date per run. It does not book, reserve, pay for, cancel, or change a ticket.
- Choose a market and enter the origin and destination city or bus station.
- Choose a calendar date such as
2026-10-01, or enter a relative interval such as1 day from now. Relative dates are resolved in UTC. - Add optional filters for operators, bus types, fares, departure time, arrival time, or seat availability.
- Run the Actor and open the dataset to read or export the service rows.
⚙️ Input
Choose one market, origin, destination, and travel date. Optional filters use the selected market's fare currency and local times.
Input fields
| Field | Type | What it does |
|---|---|---|
market | string | Chooses co, id, in, my, pe, or sg for Colombia, Indonesia, India, Malaysia, Peru, or Singapore and sets the fare currency. |
origin | string | Sets the departure city or bus station. |
destination | string | Sets the arrival city or bus station. |
travelDate | string | Accepts a calendar date such as 2026-10-01 or a relative interval such as 1 day from now. Relative dates are resolved in UTC. |
operators | string[] | Keeps services run by the listed operators. Leave it empty to include all operators. |
busTypes | string[] | Keeps services with the listed bus types. Leave it empty to include all bus types. |
minFare | number | Keeps services with a fare at or above this amount in the selected market's currency. |
maxFare | number | Keeps services with a fare at or below this amount in the selected market's currency. |
departureWindow | object | Keeps services that depart within a selected local-time window. Set from, to, or both. |
departureWindow.from | string | Sets the earliest departure time in HH:MM. |
departureWindow.to | string | Sets the latest departure time in HH:MM. |
arrivalWindow | object | Keeps services that arrive within a selected local-time window. Set from, to, or both. |
arrivalWindow.from | string | Sets the earliest arrival time in HH:MM. |
arrivalWindow.to | string | Sets the latest arrival time in HH:MM. |
onlyAvailableSeats | boolean | When on, keeps only services with seats available. When off, includes all matching services. |
Example input
This is the public input from a successful current-beta default-input run.
{"market": "in","origin": "Delhi","destination": "Mumbai","travelDate": "1 day from now","onlyAvailableSeats": false}
🧾 Output
The Output tab exposes dataset, a link to the run dataset. Each dataset item uses one bus-service shape.
Output fields
| Field | Type | What it does |
|---|---|---|
route | object | Holds the service origin and destination. |
route.origin | string | Gives the departure city or bus station shown by the source. |
route.destination | string | Gives the arrival city or bus station shown by the source. |
service | object | Holds the operator and service identity. |
service.operator | string | Gives the bus operator shown by the source. |
service.serviceName | string, optional | Gives the source service name when available. |
service.serviceId | string, optional | Gives the source identifier when available. |
service.busType | string | Gives the bus type shown by the source. |
travelDate | string | Gives the service date in YYYY-MM-DD form. |
schedule | object | Holds the departure and arrival times. |
schedule.departureTime | string | Gives the local departure time shown by the source. |
schedule.arrivalTime | string | Gives the local arrival time shown by the source. |
durationMinutes | integer | Gives the journey duration in minutes. |
fare | object | Holds the fare amount and currency. |
fare.amount | number | Gives the ticket fare amount. |
fare.currency | string | Gives the currency used for the fare. |
seatAvailability | object | Holds the source seat status and available-seat details. |
seatAvailability.status | string | Gives the seat availability status. |
seatAvailability.count | integer, optional | Gives the available seat count when provided. |
seatAvailability.seatLayoutAvailable | boolean, optional | Says whether a seat layout is available. |
boardingLocations | string[] | Lists places where passengers can board. |
droppingLocations | string[] | Lists places where passengers can leave the service. |
ratings | object | Holds the rating and review count. |
ratings.rating | number, optional | Gives the service rating when provided. |
ratings.reviewCount | integer, optional | Gives the number of reviews when provided. |
amenities | string[], optional | Lists source-provided amenities. |
cancellationStatus | string, optional | Gives the source cancellation status. |
reschedulingStatus | string, optional | Gives the source rescheduling status. |
liveTrackingAvailable | boolean, optional | Says whether live tracking is available according to the source. |
mTicketAvailable | boolean, optional | Says whether an m-ticket is available according to the source. |
offers | string[], optional | Lists source-provided offers. |
Example row
This unshortened row comes from a successful current-beta run for Lima to Ica.
{"route": {"origin": "Lima","destination": "Ica"},"service": {"operator": "Jaksa","serviceName": "VIP ICA","serviceId": "43","busType": "VIP"},"travelDate": "2026-09-22","schedule": {"departureTime": "2026-09-22 22:35:00","arrivalTime": "2026-09-23 03:25:00"},"durationMinutes": 290,"fare": {"amount": 60,"currency": "PEN"},"seatAvailability": {"status": "available","count": 36,"seatLayoutAvailable": true},"boardingLocations": ["Paradero Atocongo"],"droppingLocations": ["Terminal Ica"],"ratings": {"rating": 3.2,"reviewCount": 0},"amenities": ["52","41","49","37","33","32","24","23","22","9","7","47"],"reschedulingStatus": "4","offers": ["Descuento 10 hasta 10 %","Prueba lo nuevo"]}
💳 Pricing
This Actor uses pay-per-event pricing. The Bus service event costs $0.0009 for each bus service saved to the dataset.
🔌 Integrations
Read the dataset through the Apify API or export it from the run.
❓ FAQ
Can I search more than one route in one run?
No. Each run uses one origin, one destination, and one travel date. Start another run for another route or date.
Can I use a relative travel date?
Yes. Use a value such as 1 day from now or 2 weeks. Relative dates are resolved in UTC.
Can I filter services by operator, bus type, fare, or time?
Yes. Use the operator and bus-type lists, fare limits, or departure and arrival windows. You can also keep only services with available seats.
Does this Actor book or change a ticket?
No. It reads public service listings and saves route, schedule, fare, seat, location, and source-provided detail. It does not book, reserve, pay for, cancel, or change tickets.
What happens when no service matches my search?
The dataset contains only services exposed for the selected market, route, date, and filters. A search with no matching service has no service row to review.
Why can a field be missing from a row?
Some fields are optional because the source may not provide them for every service. Check the field table and use the values that are present.
Can I compare fares from different markets?
Choose the same market when comparing fare amounts. Each market returns fares in its own currency.
Do I need a redBus account or API key?
No. The Actor reads public route listings without a buyer-supplied redBus account, API key, or credential.
📝 Changelog
v0.0 (21-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Flight Scraper compares public flight route prices, schedules, airlines, stops, and durations for trips that continue by air.
- Flightpoints & Roame Award Flights Scraper finds public award itineraries with dates, fares, seats, and cabin details for points-based travel.
- redBus API Scraper searches redBus services between two cities for a date and returns route, fare, schedule, and seat details.
- 12go.asia Scraper - Train, Bus, Ferry, Flight Schedules (Asia) compares public train, bus, ferry, and flight schedules and fares across Asian routes.
- Rome2Rio API Scraper finds public transport route options with modes, durations, prices, operators, and segments.
Made with ❤️ by Maxime Dupré