Stations
Returns the station catalogue. Without query parameters it returns departure stations; with departure set, it returns the arrival stations reachable from that departure station.
Endpoint
Method: GET
URL: /v1/stations
Request Headers
| Parameter | Type | Required | Description |
|---|---|---|---|
| Authorization | String | Yes | Bearer <token> from Login |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| departure | String | No | Departure station code; when present, returns the reachable arrival stations |
| country | String | No | ISO country code filter |
| locale | String | No | Language, refer to Locale List |
| limit | Integer | No | Maximum number of stations to return in one page (1–5000, default 1000) |
| page_id | String | No | Opaque keyset cursor from a prior response's next_page_id; omit on the first page |
Pagination
The station catalogue may be very large, so results are paged with an opaque keyset cursor:
- Make the first request with no
page_id(optionally settinglimit). - The response carries a
next_page_id. Repeat the request with that value aspage_idto fetch the next page. - Keep going until
next_page_idisnull(or absent), which marks the last page.
WARNING
The page_id is opaque — pass it back verbatim and do not parse it. The departure, country, and locale filters must stay identical across all pages of one iteration.
Response Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| └ stations | [Object] | Yes | List of stations |
| └ code | String | Yes | Station code |
| └ country_id | String | No | Country identifier |
| └ katotth | String | No | Codifier of administrative-territorial units (KATOTTH) |
| └ koatuu | String | No | Classifier of administrative-territorial units (KOATUU) |
| └ names | LocalizedText | No | Localized station names |
| └ name_variants | LocalizedText | No | Localized name variants |
| └ states | LocalizedText | No | Localized region/state names |
| └ addresses | LocalizedText | No | Localized addresses |
| └ latitude | Number | No | Geographic latitude |
| └ longitude | Number | No | Geographic longitude |
| └ time_zone | String | No | IANA timezone (e.g. Europe/Kyiv) |
| └ next_page_id | String | No | Cursor for the next page; null or absent when this is the last page |
LocalizedTextis a map of language code → text, e.g.{ "en": "Kyiv", "uk": "Київ" }.
Response Example
json
{
"stations": [
{
"code": "2200001",
"country_id": "UA",
"katotth": "UA80000000000093317",
"koatuu": "8000000000",
"names": { "en": "Kyiv", "uk": "Київ" },
"name_variants": { "en": "Kiev" },
"states": { "en": "Kyiv City", "uk": "м. Київ" },
"addresses": { "en": "Central Bus Station", "uk": "Центральний автовокзал" },
"latitude": 50.4501,
"longitude": 30.5234,
"time_zone": "Europe/Kyiv"
}
],
"next_page_id": "eyJsYXN0IjoiMjIwMDAwMSJ9"
}Error Code List
| code | message | Description |
|---|---|---|
| UNAUTHORIZED | Invalid token | The bearer token is missing, invalid, or expired (401). |