Skip to content
A node.js NYC MTA API library
Branch: master
Clone or download
Latest commit 9ea3578 Aug 13, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib adds option to configure feed_id on schedule call Aug 13, 2017
test adds option to configure feed_id on schedule call Aug 13, 2017
.eslintrc fixes path issue Jul 28, 2015
.gitignore Initial commit Mar 5, 2015
LICENSE Initial commit Mar 5, 2015
README.md
index.js Initial commit Mar 5, 2015
package.json 1.1.0 Aug 13, 2017
update_gtfs.sh updates gtfs 20151207, creates update_gtfs.sh Feb 4, 2016

README.md

mta-gtfs

An NYC MTA API library

Install

npm install mta-gtfs --save

Usage

Library

var Mta = require('mta-gtfs');
var mta = new Mta({
  key: 'MY-MTA-API-KEY-HERE', // only needed for mta.schedule() method
  feed_id: 1                  // optional, default = 1
});
  • uses node-fetch to make http requests
  • returns Promise objects and makes use of native Promises (make sure you are using >= Node v0.12)

MTA

For feed information, see http://datamine.mta.info/list-of-feeds.

In order to use the MTA real-time APIs, you will need an MTA API key from here: http://datamine.mta.info/user/register.

Get subway stop info

Get ids, name, and lat/long for all subway stops.

mta.stop().then(function (result) {
  console.log(result);
}).catch(function (err) {
  console.log(err);
});

Get info for specific stop, given an id.

mta.stop(635).then(function (result) {
  console.log(result);
});

An array of ids may also be passed to this method.

The stop ids given here are used in mta.schedule().

Get MTA service status info

You can get ALL service types:

mta.status().then(function (result) {
  console.log(result);
});

Or, specify a specific service type (subway, bus, BT, LIRR, MetroNorth):

mta.status('subway').then(function (result) {
  console.log(result);
});

The API route this method hits is updated by the MTA every 60 seconds.

Get real-time subway schedule data

Only available for the routes found in this list.

Given a single subway stop id (or an array of stop ids) and an optional feedId, it gives schedule data for both northbound and southbound trains.

mta.schedule(635, 1).then(function (result) {
  console.log(result);
});

The API route this method hits is updated by the MTA every 30 seconds.

Tests

See test cases for more examples.

MTA_API_KEY='your-api-key-here' npm test

To do

You can’t perform that action at this time.