12Go Flights, Trains, Buses & Ferries Scraper – Worldwide Fares
Pricing
from $0.50 / 1,000 results
12Go Flights, Trains, Buses & Ferries Scraper – Worldwide Fares
Scrape 12go.asia travel prices worldwide: flights, trains, buses, ferries, vans and transfers. Search many origins, destinations and dates at once, with fares converted to your currency.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Boring Internet Explorer
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
✈️ 12Go Flights, Trains, Buses & Ferries Scraper — Worldwide Travel Prices
12Go is a multi-modal travel booking platform covering flights, trains, buses, ferries, shared vans and private transfers on one search, with routes across Asia and many other regions worldwide. This scraper searches it for you across several origins, destinations and dates at once and returns every trip with its operator, flight numbers, times, duration, fare classes and price. Prices are converted to your own currency (70+ currencies supported), so fares from different countries are directly comparable.
Why use this scraper?
- ✈️ Fare monitoring — track flight prices on any route and see how they move before your travel dates
- 💱 Prices in your currency — compare fares in one currency instead of mixed THB / USD / local amounts
- 🧭 Multi-route search — add many origins and destinations in one run; every combination is searched
- 🚆 Compare every mode — flights vs trains vs buses vs ferries for the same route, with duration and price side by side
- 🏨 Travel agency feeds — build itineraries and quotes for customers travelling anywhere 12go operates
- 📊 Market research — study operators, fare classes, baggage allowances and seat availability per route
- 🔔 Deal alerts — schedule daily runs and alert on trips under your maximum price
Supported URL types
You normally use the dedicated fields (origins, destinations, dates). Pasting a 12go search page is also supported:
| Type | Example |
|---|---|
| Search page | https://12go.asia/en/travel/bangkok/phuket?date=2026-12-01 |
| Search page with passengers | https://12go.asia/en/travel/bangkok/chiang-mai?date=2026-12-01&people=2 |
Origins and destinations can be a city name (Bangkok), an airport code (BKK) or Arabic / local names (القاهرة).
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
origins | array | — | Departure cities, airports or stations. Use a name (Bangkok), an airport code (BKK) or a 12go place ID (1p). Add several to search each one. |
destinations | array | — | Arrival cities, airports or stations (Phuket, HKT, 73p...). Add several to search each one. |
departureDates | array | — | Travel dates in YYYY-MM-DD format. Leave empty to search tomorrow. |
passengers | integer | 1 | Number of travelers (1-9). Prices are per passenger, except private transfers which are per vehicle. |
transportTypes | array | — | Only keep these transport types. Leave empty for all. A trip that mixes types is kept if any of its parts matches. |
country | string | OTHER | Used to pick the default currency and to label results (country / market fields). |
currency | string | AUTO | Currency for all prices. Auto uses the currency of your country, and falls back to USD when it is not supported by the site. |
sortBy | string | cheapest | Applied before Max items is taken, so 'cheapest' returns the cheapest trips of each search. |
minPrice | number | — | Only trips priced at or above this amount (in the selected currency). |
maxPrice | number | — | Only trips priced at or below this amount (in the selected currency). |
departureAfter | string | — | Earliest departure time, 24h format, e.g. 06:00. |
departureBefore | string | — | Latest departure time, 24h format, e.g. 22:00. |
includeUnbookable | boolean | false | Also return trips that cannot currently be booked (no price). |
startUrls | array | — | Alternative to the fields above: 12go.asia search pages like https://12go.asia/en/travel/bangkok/phuket?date=2026-12-01 |
maxItems | integer | 5 | Maximum trips returned for EACH origin / destination / date combination. |
proxyConfiguration | object | {"useApifyProxy": false} | Your proxy configuration from Apify |
Example input
{"origins": ["Bangkok", "Chiang Mai"],"destinations": ["Phuket", "Krabi"],"departureDates": ["2026-12-01"],"passengers": 1,"transportTypes": ["flight"],"country": "OTHER","currency": "USD","sortBy": "cheapest","maxItems": 5,"proxyConfiguration": {"useApifyProxy": false}}
Output
Each trip found is stored as one record in the default dataset. maxItems applies per search (origin × destination × date).
Example output
{"scrapedAt": "2026-10-08T10:00:13.900Z","url": "https://12go.asia/en/travel/bangkok/phuket?date=2026-12-01&people=1","title": "Flight with Thai Vietjet Suvarnabhumi Airport to Phuket Airport","price": 48.19,"currency": "USD","country": "Other","market": "other","priceMax": 48.19,"nativePrice": 48.19,"nativeCurrency": "USD","priceBasis": "per_passenger","passengers": 1,"transportType": "flight","transportTypes": ["flight"],"operators": ["Thai Vietjet"],"flightNumbers": ["VZ2308"],"originQuery": "Bangkok","destinationQuery": "Phuket","origin": "Suvarnabhumi Airport","originCode": "BKK","originCountryCode": "TH","destination": "Phuket Airport","destinationCode": "HKT","destinationCountryCode": "TH","searchDate": "2026-12-01","departure": "2026-12-01 18:45:00","arrival": "2026-12-01 20:25:00","durationMinutes": 100,"stops": 0,"className": "Economy","seatsAvailable": 3,"isBookable": true,"instantConfirmation": null,"refundable": false,"checkedBaggageKg": 0,"carryOnBaggageKg": 7,"amenities": [],"rating": 4.73,"ratingCount": 11,"options": [{"className": "Economy","price": 48.19,"seatsAvailable": 3,"refundable": false,"amenities": []}],"segments": [{"transportType": "flight","operator": "Thai Vietjet","flightNumber": "VZ2308","from": "Suvarnabhumi Airport","fromCode": "BKK","to": "Phuket Airport","toCode": "HKT","departure": "2026-12-01 18:45:00","arrival": "2026-12-01 20:25:00","durationMinutes": 100,"className": "Economy"}],"tripKey": "TH01xL01y3aCHa00l01ndUrN","tripId": "d7a07ee8da6f02c35caad8d7fa9b4789"}
Field reference
| Field | Type | Description |
|---|---|---|
scrapedAt | string | ISO 8601 scrape timestamp |
url | string | 12go.asia search page for this route and date |
title | string | Trip title |
price | number | null |
currency | string | Currency of price (chosen currency, or the site's own when it cannot be converted) |
country | string | Market country you selected |
market | string | Market code of the selected country (e.g. us, gb, th) |
priceMax | number | null |
nativePrice | number | null |
nativeCurrency | string | null |
priceBasis | string | per_passenger or per_vehicle (private transfers / taxis) |
passengers | number | Passengers searched |
transportType | string | null |
transportTypes | string[] | Every transport type in the trip |
operators | string[] | Airlines / operators |
flightNumbers | string[] | Flight numbers for every flight leg |
originQuery / destinationQuery | string | Origin and destination as you entered them |
origin / destination | string | null |
originCode / destinationCode | string | null |
originCountryCode / destinationCountryCode | string | null |
searchDate | string | Travel date searched |
departure / arrival | string | null |
durationMinutes | number | null |
stops | number | Number of connections |
className | string | null |
seatsAvailable | number | null |
isBookable | boolean | Whether the trip can currently be booked |
instantConfirmation | boolean | null |
refundable | boolean | null |
checkedBaggageKg / carryOnBaggageKg | number | null |
amenities | string[] | Amenities (aircon, wc, ...) |
rating / ratingCount | number | null |
options | object[] | All fare classes with converted prices |
segments | object[] | Each leg: operator, flight number, stations, times, class |
tripKey / tripId | string | null |
❓ FAQ
Can I search more than one origin or destination? Yes. Every origin is combined with every destination and every date, and maxItems is applied to each of those searches separately.
How are prices converted? The site quotes each trip in its own currency (THB, USD, ...). The scraper converts to the currency you choose using the site's own exchange-rate table, and also returns the original amount in nativePrice / nativeCurrency. With currency set to AUTO it uses your country's currency and falls back to USD.
Are prices per person? Yes, per passenger. Private transfers and taxis are priced per vehicle (priceBasis: per_vehicle).
Which transport types are included? Flights, trains, buses, ferries, shared vans and taxis / private transfers. Use transportTypes to keep only some of them.
What if a place is not found? It is skipped with a warning and the other searches continue. Past or badly formatted dates are skipped too.
Does it work for any country? It covers every route 12go sells, mainly Asia plus Egypt, Turkey, Morocco and Europe. Pick your own country and currency regardless of where you travel.
How fresh is the data? Fares are read live at run time, so schedule the actor regularly to track price changes.
🔗 Want More Data?
Compare 12go fares with more flight scrapers from boring_internet_explorer:
- Wingie Flights Scraper — flight prices, airlines and routes worldwide
- Riyadh Air Flights Scraper — fares for all Riyadh Air routes worldwide
- Wego Flights Scraper — Wego flight fares
- Almosafer Flights Scraper — Almosafer flight fares
- flydubai Flights Scraper — compare and track daily flydubai fares
- flynas Flight Fares Scraper — flynas fares
- flyadeal Flight Fares Scraper — flyadeal fares
🛠️ Need a custom scraper?
Need this scraper adapted to your use case — extra fields, additional filters, a different output format, or a new website? Reach out at boringinternetexplorer@gmail.com and we'll make it happen.