Rail Data Engine

Rail routing. Query it. Don't build it.

Point-to-point rail connections across networks worldwide over a simple REST API. Transfers, operators, and route geometry included.

What it returns

  • Connection options with departure and arrival times
  • Transfer points, wait times, and platform changes
  • Operator and line information per leg
  • Geo-referenced route geometry for map display
  • Via-point support for multi-stop journeys

Example

Request http
POST https://api.viaduct.world/v1/routing
Content-Type: application/json

{
  "from": "Wien Hbf",
  "to": "Salzburg Hbf",
  "departure": "2026-07-10T08:00:00+02:00",
  "max_transfers": 2
}
Response 200 json
{
  "connections": [
    {
      "duration_minutes": 142,
      "transfers": 0,
      "legs": [
        {
          "operator": "ÖBB",
          "line": "RJX 160",
          "from": { "name": "Wien Hbf", "departure": "2026-07-10T08:30:00+02:00" },
          "to":   { "name": "Salzburg Hbf", "arrival": "2026-07-10T10:52:00+02:00" },
          "geometry": "<encoded_polyline>"
        }
      ]
    }
  ]
}

Who uses this

  • Rail app developers who need trip planning without building a routing stack
  • Travel platforms adding rail connections beside flights and buses
  • Tourism and destination services planning rail itineraries
  • Researchers running large batches of connection queries

Integration

  • REST API returning clean JSON — no proprietary formats
  • Coverage across most rail networks worldwide, continuously updated
  • Consulting on user experience, routing logic, and edge cases
  • Predictable rate limits with plans that scale to production

Frequently asked questions

Which networks and countries are covered?
Coverage spans most rail networks worldwide, with continuous expansion. Tell us your priority regions and we will confirm current coverage during evaluation.
How often is the timetable data updated?
Schedule data is refreshed continuously so routing reflects the current published timetables rather than a stale snapshot.
Is this real-time or schedule-based?
Routing is mostly schedule-based. If you need live delays and disruptions, tell us and we will work together to determine what is possible for your coverage area.
What are the rate limits?
We will agree limits that fit your use case.
How is this different from open GTFS feeds?
Open feeds are raw, fragmented, and require you to build and maintain routing yourself. We do the merging, cleaning, and routing so you get answers from a single API instead of a data-engineering project.
Can I request via-points or multi-stop journeys?
Yes. The API accepts via-points so you can plan connections that must pass through specific stations.
Rail routing coverage — Great BritainRail routing coverage — GermanyRail routing coverage — FranceRail routing coverage — Netherlands

Ready to route on live timetables?

Tell us about your requirements and we will solve it together.