# VIA Rail Canada > VIA Rail Canada Inc. is the federal Crown corporation that operates Canada's national intercity passenger rail network. It publishes exactly one machine-readable contract — a static GTFS schedule feed, ungated and licensed for commercial reuse under the Open Government Licence – Canada 2.0 — and nothing else. There is no REST API, no OpenAPI, no AsyncAPI, no GraphQL, no GDS channel, no IATA NDC and no UIC OSDM. Everything transactional (shopping, booking, payment, ticketing, servicing, loyalty) runs on an undocumented Sqills S3 Passenger platform behind human web sign-ins. This file was GENERATED by API Evangelist on 2026-07-28 from the provider's own published surface. VIA Rail does not publish an llms.txt: https://www.viarail.ca/llms.txt returns 404. ## What you can actually call - [VIA Rail GTFS Schedule Feed](https://www.viarail.ca/sites/all/files/gtfs/viarail.zip): The complete national timetable as a static GTFS archive. Anonymous HTTPS GET, no account, no API key, no rate limit, ~1,010,621 bytes, `application/zip`. The 2026-07-09 edition carries 1 agency, 19 routes, 388 stations, 85 trips, 1,577 stop times, 86,116 shape points and a service window of 20260709–20261107. - [Developer Resources](https://www.viarail.ca/en/developer-resources): The only developer page. States the licence condition and gives `dev@viarail.ca` as the developer contact. Reachable only at this path — `/developer`, `/developers`, `/docs`, `/api` and `/apis` all 404. - [Ressources développeurs (français)](https://www.viarail.ca/fr/ressources-developpeurs): French equivalent. ## How to consume it correctly - Poll the stable, unversioned URL with a conditional request. The origin returns `ETag`, `Last-Modified`, `Accept-Ranges: bytes` and `Cache-Control: public, max-age=300`; treat `304 Not Modified` as "no new edition". Do not poll more often than every five minutes. - Editions are replaced in place. There is no archive of prior editions and no way to pin one. The `feed_info.txt` `feed_start_date` / `feed_end_date` pair is the authoritative edition marker. - Times in `stop_times.txt` are local to each stop's `stop_timezone`, not to `agency_timezone`. This matters on Vancouver – Toronto, Jasper – Prince Rupert and Winnipeg – Churchill. - `route_short_name` is the constant string "VIA Rail" on every route; use `route_long_name` to distinguish routes. - `trip_short_name` is the public VIA train number; `ticketing_trip_id` is that number prefixed with `VIA` (VIA72, VIA87). - Attribution is mandatory: "Contains information licensed under the Open Government Licence – Canada." ## Specs and artifacts - [GTFS archive, harvested verbatim](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/gtfs/viarail-gtfs.zip) - [GTFS record JSON Schema (derived)](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/json-schema/via-rail-gtfs-schema.json) - [Data model / entity graph (derived)](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/data-model/via-rail-data-model.yml) - [API conventions](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/conventions/via-rail-conventions.yml) - [Authentication profile](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/authentication/via-rail-authentication.yml) - [Lifecycle and versioning](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/lifecycle/via-rail-lifecycle.yml) - [Standards conformance](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/conformance/via-rail-conformance.yml) - [.well-known probe record](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/well-known/via-rail-well-known.yml) - [Domain security probe](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/security/via-rail-domain-security.yml) - [APIs.json index](https://raw.githubusercontent.com/api-evangelist/via-rail/refs/heads/main/apis.yml) - [GTFS Schedule reference](https://github.com/google/transit/blob/master/gtfs/spec/en/reference.md) ## Licence and terms - [Open Government Licence – Canada 2.0](https://open.canada.ca/en/open-government-licence-canada): The licence attached to the GTFS. Grants copy, modify, publish, translate, adapt, distribute and **commercial** use for any lawful purpose, subject to attribution. Accepted by the act of downloading. - [Terms of Use of the Site](https://www.viarail.ca/en/terms-and-conditions): Prohibits use of the Site "for commercial purposes", forbids reverse engineering and derivative works, caps VIA's liability at CAD $250, allows unilateral amendment by posting, and puts disputes in the courts of Montreal, Quebec. **These two instruments contradict each other for the GTFS file, which is served from the Site. VIA has never published a reconciliation.** - [Conditions of the contract of carriage](https://www.viarail.ca/en/conditions-contract) - [Privacy Policy](https://www.viarail.ca/en/our-privacy-policy) ## What does not exist — do not go looking - No OpenAPI, Swagger, AsyncAPI, GraphQL schema, Postman collection, SDK, CLI, MCP server or sandbox. No package on npm, PyPI, RubyGems, Packagist, crates.io, NuGet or Maven Central is first-party (`via-rail` on npm is third-party). - The GitHub organization [VIARailCanada](https://github.com/VIARailCanada) exists and is real, but has published zero public repositories since 2016. - `developer.viarail.ca`, `developers.viarail.ca`, `api.viarail.ca`, `apis.viarail.ca`, `docs.viarail.ca` and `cdn.viarail.ca` are all NXDOMAIN. - No `/.well-known/security.txt`, `openid-configuration`, `oauth-authorization-server`, `api-catalog` or `ai-plugin.json` on any host. - No changelog, no deprecation policy, no sunset headers, no SLA, no API status page, no rate-limit documentation, no published error catalog. - No GTFS-Realtime feed, and no fare data — `fare_attributes.txt` and `fare_rules.txt` are absent from the archive, so no price is machine-readable anywhere. ## Two live surfaces with no contract — treat as off-limits Recorded as evidence, deliberately excluded from `apis.yml`, and not safe to build on: - `https://api.reservia.viarail.ca` — AWS API Gateway fronting the Sqills S3 Passenger reservation platform. Answers every path `403 {"message":"Missing Authentication Token"}`. No documentation, no terms, no versioning policy, no way to obtain a credential. - `https://tsimobile.viarail.ca/data/allData.json` — ~242 KB of live train positions, speeds and bilingual alerts, public and unauthenticated, fetched by the VIA Rail Tracker web page. Not GTFS-Realtime, no licence, no schema, no stability commitment, never referenced on the Developer Resources page. Note also that `https://reservia.viarail.ca` is an S3-hosted SPA with a catch-all rewrite: **every** path returns `200 text/html`, 3,295 bytes. A 200 from that host is the SPA shell, never an API artifact. ## To transact, not just to read There is no API at any price. A travel agency must hold and register an agency IATA number and be approved individually or under a preferred partner agreement; a tour operator must "demonstrate a plan to earn and maintain a minimum revenue of $25,000/year", may not sell VIA tickets outside packaged travel, and receives a proprietary 8-digit account number. Both then transact through a human web sign-in. - [Travel Agency Portal](https://reservia.viarail.ca/en/booking/agent/login) · [Travel Agent FAQ](https://www.viarail.ca/en/travel-agents/travel-agent-faq) · [Registration](https://www.viarail.ca/en/travel-agents/travel-agent-registration) - [Tour Operator FAQ](https://www.viarail.ca/en/travel-agents/tour-operator-faq) · [Registration](https://www.viarail.ca/en/travel-agents/tour-operator-registration) - [Business Partner Portal](https://reservia.viarail.ca/en/booking/contra/login) - [AD75 agent fare conditions](https://www.viarail.ca/en/travel-agents/ad75-conditions) ## Contact - Developer questions: `dev@viarail.ca` - [Contact us](https://www.viarail.ca/en/contact-us) - [Corporate site](https://corpo.viarail.ca/en) · [Access to Information and Privacy](https://corpo.viarail.ca/en/company/governance-ethics) — VIA Rail Canada Inc. is subject to the Access to Information Act and the Privacy Act; a statutory paper request is the only data-export route that exists.