12go.asia Scraper - Train, Bus, Ferry, Flight Schedules (Asia) avatar

12go.asia Scraper - Train, Bus, Ferry, Flight Schedules (Asia)

Pricing

Pay per event

Go to Apify Store
12go.asia Scraper - Train, Bus, Ferry, Flight Schedules (Asia)

12go.asia Scraper - Train, Bus, Ferry, Flight Schedules (Asia)

Scrape multimodal transport from 12go.asia: trains, buses, ferries, flights, vans, and private transfers across 40+ Asian countries. Returns operator, vehicle class, schedules, fares, ratings, and route metadata for travel apps and aggregators.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

12go.asia Multimodal Transport Scraper

Scrape multimodal transport schedules and fares from 12go.asia. Returns trains, buses, ferries, flights, vans, and private transfers across Thailand, Vietnam, Indonesia, Malaysia, Philippines, Cambodia, Laos, Japan, India, Sri Lanka, and 30+ other countries — with operator names, schedules, fares, ratings, and direct booking links in clean JSON.


12go Asia Scraper Features

  • Extracts trip data across all 12go transport modes — train, bus, ferry, flight, van, private transfer, taxi, and mixed multi-segment journeys.
  • Returns a flat record per scheduled trip with operator, vehicle class, departure and arrival times, duration, transfers, price, currency, rating, route distance, and a deep link back to the 12go search page.
  • Searches by city pair — supply origin, destination, and an optional travel date. Slug resolution is automatic (e.g. Koh Samui becomes koh-samui, Ho Chi Minh City becomes ho-chi-minh-city).
  • Currency override built in. Pick from USD, EUR, GBP, THB, VND, IDR, MYR, SGD, PHP, JPY, INR, or AUD and 12go converts at the listing currency.
  • Multi-route batches in a single run — each search executes against a shared warmed session with deduplication, so the same trip never appears twice.
  • Resilient session bootstrap. If a route page is briefly rate-limited, the scraper rotates the proxy session and retries automatically.
  • Residential proxy support out of the box for stable runs.

Who Uses 12go Asia Data?

  • Travel aggregators — feed real-time schedules and fares into route-planning apps without negotiating partner agreements.
  • Backpacker booking platforms — rebuild the 12go index with your own filtering and presentation, or pull in price comparisons.
  • Tourism startups in Southeast Asia — track operator pricing, route popularity, and seat availability across the region's biggest multimodal booking engine.
  • Hostel and accommodation sites — show transport options between properties as a value-add.
  • Travel-tech researchers — analyze pricing trends, operator coverage, and route density across countries that don't surface this data anywhere else.
  • Affiliate marketers — generate booking-link inventory for content sites and SEO landing pages.

How 12go Asia Scraper Works

  1. Provide a list of { origin, destination, date? } searches. City names get lowercased and dashed into 12go's URL slugs.
  2. The scraper warms a session against the 12go homepage to establish the cookies the site expects.
  3. For each route, it fetches the rendered schedule page and parses the embedded payload — every departure 12go shows for that route on that date.
  4. One record per scheduled trip is written to the dataset. Set maxItems to cap the total across all searches.

Input

{
"searches": [
{ "origin": "Bangkok", "destination": "Koh Samui" },
{ "origin": "Ho Chi Minh City", "destination": "Phnom Penh", "date": "2026-08-15" }
],
"currency": "USD",
"maxItems": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
FieldTypeDefaultDescription
searchesarray of objects— (required)List of routes. Each entry has origin (string), destination (string), and optional date (YYYY-MM-DD).
currencystringUSDOutput currency. One of: USD, EUR, GBP, THB, VND, IDR, MYR, SGD, PHP, JPY, INR, AUD.
maxItemsinteger15Maximum total trip records across all searches.
proxyConfigurationobjectresidentialApify proxy configuration. Residential is recommended for stable runs.

12go Asia Scraper Output Fields

{
"trip_id": "bangkok|koh_samui|flight|scoot|economy|00_25|07_50",
"mode": "flight",
"operator": "Scoot",
"vehicle_class": "Economy",
"origin_city": "Bangkok",
"origin_terminal": "",
"origin_country": "TH",
"destination_city": "Koh Samui",
"destination_terminal": "",
"destination_country": "TH",
"departure_time": "00:25",
"arrival_time": "07:50",
"travel_date": "2026-05-05",
"duration_minutes": 445,
"duration_text": "7h 25m",
"transfers": 0,
"distance_km": 971,
"daily_route_count": 85,
"operators_on_route": "Bangkok Airways | BangkokTaxi24 | Boonsiri High Speed Ferries | Lomprayah | Nok Air | Raja Ferry | Seatran Discovery | Thai AirAsia | Thai Lion Air | Thai Railways | Thai Vietjet | ...",
"price_total": 267,
"price_text": "EUR 267",
"price_currency": "EUR",
"rating": null,
"booking_url": "https://12go.asia/en/travel/bangkok/koh-samui?date=2026-05-05&currency=USD",
"scraped_at": "2026-05-02T11:53:28.482Z"
}
FieldTypeDescription
trip_idstringStable per-route synthesized ID (origin|dest|mode|operator|class|dep|arr).
modestringTransport mode: train, bus, ferry, flight, van, private_transfer, taxi, or mixed for multi-segment trips.
operatorstringOperator name (Lomprayah, State Railway of Thailand, Bangkok Airways, Giant Ibis, etc.).
vehicle_classstringVehicle class label (VIP Van 9pax, Sleeper, Economy, Standard, etc.).
origin_citystringOrigin city as supplied in the search.
origin_terminalstringDeparture terminal — usually empty in the schedule view.
origin_countrystringOrigin country ISO 3166-1 alpha-2 code (TH, VN, ID, etc.).
destination_citystringDestination city as supplied in the search.
destination_terminalstringArrival terminal — usually empty in the schedule view.
destination_countrystringDestination country ISO 3166-1 alpha-2 code.
departure_timestringScheduled departure as HH:MM (24-hour, local), or Any time for on-demand transfers.
arrival_timestringScheduled arrival as HH:MM, or +Nh when arrival is on the next day.
travel_datestringTravel date in YYYY-MM-DD if supplied in the search; otherwise empty.
duration_minutesnumberTotal duration in minutes (computed from departure/arrival; null when timing is non-numeric).
duration_textstringDuration as a human-readable string (14h, 13h 30m).
transfersnumberNumber of connections. 0 for direct trips, 1 for mixed-mode rows.
distance_kmnumberRoute distance in kilometers (route-level).
daily_route_countnumberTotal daily departures across all operators on this route.
operators_on_routestringPipe-separated list of every operator serving this route (route-level metadata).
price_totalnumberNumeric total price in the listing currency.
price_textstringPrice as displayed (THB 18750, EUR 267).
price_currencystringISO currency code from 12go's price object.
ratingnumberOperator/trip rating from 1 to 5. null when there are no reviews.
booking_urlstringCanonical 12go.asia search-page URL — deep link into the booking flow.
scraped_atstringISO 8601 timestamp of the scrape.

FAQ

How do I scrape 12go.asia transport data?

12go Asia Scraper handles it. Supply a list of city pairs in the searches input, and the scraper resolves them to 12go URL slugs, fetches each route's schedule page, parses the embedded data, and writes structured JSON to the dataset.

How much does the 12go Asia Scraper cost to run?

Pricing is pay-per-event: $0.10 per actor start, plus $0.001 per trip record. Most runs cost a few cents — a 50-trip search comes in around $0.15. Apify proxy usage is included in the per-record price.

What data can I get from 12go.asia?

Operator name, transport mode, vehicle class, departure and arrival times, duration in minutes, number of transfers, total price in your chosen currency, operator rating, route distance in kilometers, daily-departures count for the route, and a direct booking URL. Plus the full list of operators serving each route.

Does the 12go Asia Scraper need proxies?

Apify residential proxies are recommended and on by default. 12go is geo-aware, and a stable residential session keeps page fetches consistent across the run. You can switch to no proxy or datacenter via the proxyConfiguration input if your use case allows.

Can I get prices in a specific currency?

Yes. Set currency to any of USD, EUR, GBP, THB, VND, IDR, MYR, SGD, PHP, JPY, INR, or AUD. 12go converts in real time. The default is USD.

What countries does 12go cover?

Heavy coverage across Southeast Asia — Thailand, Vietnam, Indonesia, Malaysia, Philippines, Cambodia, Laos, Myanmar — plus growing service in Japan, India, Sri Lanka, Turkey, Egypt, Morocco, and more. Some EU routes are bundled via partner integrations.


Need More Features?

Need extra fields, a different output format, or a related scraper? File an issue or get in touch.

Why Use 12go Asia Scraper?

  • Affordable — about $0.001 per trip record, with a $0.10 start fee.
  • Multimodal coverage — train, bus, ferry, flight, van, and private transfer in a single actor — more than the source site's official partners offer in their own APIs.
  • Clean structured JSON — flat records with parsed duration in minutes, ISO country codes, and direct booking links. No HTML cleanup on your end.