Indonesia Transit Scraper — KAI Stations & TransJakarta BRT avatar

Indonesia Transit Scraper — KAI Stations & TransJakarta BRT

Pricing

Pay per event

Go to Apify Store
Indonesia Transit Scraper — KAI Stations & TransJakarta BRT

Indonesia Transit Scraper — KAI Stations & TransJakarta BRT

Scrapes Indonesian public transit: KAI (PT Kereta Api Indonesia) station catalog (217 stations across Java, Sumatra, Sulawesi) with codes and city data, plus TransJakarta BRT corridor listing. For travel apps, logistics planners, and Indonesian transit integrations.

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

3 days ago

Last modified

Share

Extract Indonesian public transit data from two verified public sources:

  • KAI (PT Kereta Api Indonesia) — complete station catalog: 217 stations across Java, Sumatra, and Sulawesi. Each record includes the 3-letter station code, full name, city, and regional classification.
  • TransJakarta BRT — all corridor listings from Jakarta's bus rapid transit network (one of the world's longest BRT systems). Each record includes corridor number, direction, and a link to the official route map image.

Output Fields

FieldDescription
record_typekai_station or transjakarta_route
operatorKAI or TransJakarta
service_typeintercity_rail or brt
station_codeKAI 3-letter station code (e.g. GMR, BD, SBI)
station_nameFull station name (e.g. GAMBIR, BANDUNG)
cityCity name
city_codeInternal city identifier from KAI catalog
regionKabupaten / kota administrative region
lineTransJakarta corridor (e.g. 1 | BLOK M - KOTA)
directionRoute direction text
route_map_urlURL to TransJakarta official corridor map image
source_urlSource URL for the record
scraped_atISO 8601 scrape timestamp

Input

ParameterTypeDefaultDescription
operatorselectanyFilter by source: any, kai, or transjakarta
maxItemsinteger15Cap on total records returned

Data Sources

KAI Stations: The actor fetches booking.kai.id/api/stations2 (KAI's official booking portal JSON API). This endpoint returns the complete station catalog without authentication. A CSRF token is extracted from the booking portal home page and included in the request as required.

TransJakarta BRT: The actor fetches transjakarta.co.id/peta-rute and parses the corridor listing from HTML. Each corridor is identified by a data-caption attribute in the format "N | DIRECTION" with a link to the official route map image hosted at smk.transjakarta.co.id.

What's Not Covered

Several sources from the original spec were investigated but are out of scope:

  • KAI train schedules — the /search endpoint is behind a Cloudflare managed challenge
  • Pelni inter-island shipspelni.co.id was unreachable (connection timeout) at build time
  • Whoosh KCIC, MRT Jakarta, LRT Jabodebek, RedBus — all use JavaScript SPAs with no accessible public API surface

Usage

For the complete KAI station catalog (217 stations), set maxItems to 250 or higher. For all TransJakarta corridors (31 routes), set maxItems to 50 or higher after selecting the transjakarta operator.

The default maxItems: 15 is designed for fast test runs.