MetroFlow API
Creator
Skills
Technologies
Team Size
1 person
The MTA doesn’t offer a direct API for transit data—instead, they publish raw Protocol Buffer feeds that developers must parse and serve themselves. MetroFlow API does the heavy lifting, providing a clean REST interface for real-time subway, LIRR, and Metro-North departure data.
The Problem
Building anything with NYC transit data means wrestling with MTA’s GTFS-Realtime ProtoBuf feeds—a format designed for machine efficiency, not developer ergonomics. Every app that wants departure times needs to decode these feeds, match trips to stops, and handle the quirks of each transit system.
What I Built
- 1
Feed Ingestion
Fetch and decode GTFS-Realtime ProtoBuf feeds from MTA for all three transit systems.
- 2
Data Normalization
Transform raw feed data into consistent, queryable formats across Subway, LIRR, and Metro-North.
- 3
REST API
Expose clean endpoints for station departures, service alerts, and trip information.
- 4
Containerization
Package everything in Docker for easy self-hosting and deployment.
Live Demo
Here’s the API in action, showing real-time departures from Graham Av:
Graham Av
Live departures
Unable to load departures
No upcoming departures
API Endpoints
The API provides straightforward endpoints for common transit queries:
- Station Departures - Real-time arrivals for any station
- Service Alerts - Current delays, planned work, and service changes
- Trip Details - Full trip information including all stops
Impact
MetroFlow removes the barrier to building with NYC transit data. Instead of spending days parsing ProtoBuf feeds, developers can start building useful applications immediately.
View on GitHub
Self-host your own NYC transit API
github.com