Skip to content

v0.4.2 — Georgian Railway connector

Latest

Choose a tag to compare

@keysersoft keysersoft released this 14 Aug 15:39
· 9 commits to main since this release
5c8d6a0

New connector: Georgian Railway

Read-only access to Georgian Railway (საქართველოს რკინიგზა) — station lookup, journey search with live seat availability and fares in GEL, and the operator's service notices. No account and no API key, so it works from the moment it is installed.

Tool What it does
gr_search_stations Resolve a place name to a station code. Searches Georgian, English and Russian names at once, so Tbilisi, თბილისი and Тбилиси all work.
gr_search_trains Services between two stations on a date, with train number, local departure/arrival times, seats left per class and fares in GEL. Add a return date for a round trip.
gr_get_notifications Current service notices: timetable changes, engineering works, cancellations.

Covers the Tbilisi–Batumi and Tbilisi–Zugdidi main lines and every regional stop.

Built on response mapping

gr.com.ge repeats each station in five near-identical objects per train and wraps outbound and return legs in a nested array. The connector ships a JMESPath transform that flattens it to one row per train:

{ "train": 803, "from": "BATUMI(pass)", "to": "TBILISI(pass)",
  "departure": "08:00:00", "arrival": "12:12:00", "onSale": true,
  "classes": [ { "class": "II Class", "seatsLeft": 17, "price": 35, "currency": "GEL" } ] }

Measured on a real four-train response: 12,172 B → 1,072 B (−91%). Station search is mapped the same way (−78%) and cached for a day.

Notes for agents

The connector's instructions encode the behaviour that is easy to get wrong:

  • An empty classes array means the train is sold out for the requested party, not that no train exists.
  • Kutaisi's bookable station is the airport (57450). Kutaisi I (57530) appears in the station list but returns no trains.
  • Tbilisi and Batumi each have technical stations on adjacent codes; the passenger terminals are 56014 and 57151.
  • departure and arrival are local Georgian time (UTC+4) — those are the values to quote to a traveller.

Booking is not exposed; this connector reads timetables, availability and fares only.

Caveat

gr.com.ge publishes no API. This is built on the endpoints its own booking site calls and can change without notice. The adapter spec pins the host, the HTTP verbs and the mapping shape, so a break surfaces as a failing test rather than a silently wrong answer.