The NYC Subway API that actually works.

Stop parsing 5MB Protobuf files on your Arduino. Get clean, cached JSON arrivals for any station in milliseconds.

Get an API Key Read the Docs
example.js
const response = await fetch('https://api.mta-json.com?line=G', {
    headers: { 'x-api-key': 'mta_live_...' }
});

const data = await response.json();
// Returns:
{
  "station": "Nassau Av",
  "northbound": [2, 14, 21], // minutes
  "southbound": [0, 8, 15]
}

30ms Response Time

Cached at the edge using Cloudflare Workers. 100x faster than hitting MTA directly.

📦

JSON, Not Protobuf

We do the hard work of decoding GTFS-Realtime so your 8KB RAM microcontroller doesn't have to.

🔒

Reliable & Up

99.9% Uptime. We handle the MTA's weird errors, downtime, and random SSL handshake failures.

Simple Pricing

Hobby

$0/mo
  • ✔ 100 requests / day
  • ✔ Limit: 1 Station Only
Start Free
Best Value

Maker

$5/mo
  • ✔ 50,000 requests / day
  • ✔ Updates every 30 seconds
  • ✔ All Lines (G, L, 7, etc)
Subscribe

Commercial

$50/mo
  • ✔ Unlimited requests
  • ✔ Updates every 30 seconds
  • ✔ All Lines (G, L, 7, etc)
Subscribe