JSON proxy server for the MTA's realtime New York City subway feed
MTAPI is a small HTTP server that converts the MTA's realtime subway feed from Protocol Buffers/GTFS to JSON. The app also adds caching and makes it possible to retrieve information by location and train line.
This project is under active development and any part of the API may change. Feedback is very welcome.
MTAPI is a Flask app designed to run under Python 3.3+.
settings.cfgfile. A sample is provided as
$ python3 -m venv .venv
$ source .venv/bin/activate
$ python3 -m pip install -r requirements.txt
$ python app.py
If your configuration is named something other than
settings.cfg, set the
MTAPI_SETTINGSenv variable to your configuration path.
This app makes use of Python threads. If running under uWSGI include the --enable-threads flag.
The API key provided at hhttps://api.mta.info/#/signup default: None
Path to the JSON file containing station information. See Generating a Stations File for more info.
Add CORS headers to the HTTP output.
default: "*" when in debug mode, None otherwise
Limits the number of trains that will be listed for each station.
Limits how far in advance train information will be listed.
How frequently the app will request fresh data from the MTA API.
Enable background data refresh. This will prevent requests from hanging while new data is retreived from the MTA API.
Standard Flask option. Will enabled enhanced logging and wildcard CORS headers.
The MTA provides several static data files about the subway system but none include canonical information about each station. MTAPI includes a script that will parse the
transfers.txtdatasets provided by the MTA and attempt to group the different train stops into subway stations. MTAPI will use this JSON file for station names and locations. The grouping is not perfect and editing the resulting files is encouraged.
Usage: ``` $ python makestationscsv.py stops.txt transfers.txt > stations.csv
$ python makestationsjson.py stations.csv > stations.json
Submit a GitHub Issues request.
Here are some projects that use MTAPI.
The project is made available under the MIT license.