Playing around with the idea of Alexa Skills based on live data feeds, I created an Alexa Skill which announces unplanned service changes of the New York City subway and bus lines, based on information provided by the Metropolitan Transportation Authority (MTA). This skill, named “New York Transport” and available in English and German, was now certified and has gone live.

The backend code consists of an AWS Lambda function based on Node.js and written in TypeScript. The code uses the MTA real-time data feeds for individual subway and bus lines, provided in XML format. The feed documents are converted to the JSON format for easier handling and only unplanned service changes are used. The descriptions for each service change are then processed for speech output: abbreviations like Pkwy, Tpke, or Jct are replaced with speakable variants, some unnecessary message parts are removed and special pronunciations are handled, which are unique to New York City like Houston Street (pronounced: /haʊstən/). All messages are then read, can be reviewed in the Alexa app and are also shown on Echo devices with a display.

To use this skill, you can navigate to the US Skill Store on if you’re from the US or use the US locale. Alternatively, you can install it from the German Skill Store on if your Echo devices are configured to German. Please mind, that all messages from the MTA are in English only and are not translated to German. In both cases, the invocation name is “New York Transport”. Alternatively, it should be possible to just say “Alexa, enable New York Transport” to install the skill. German users can use the word “aktiviere” instead of “enable”.

Where to go from here

MTA real-time data feeds
US Skill Store
German Skill Store