mta

NYC MTA transit — real-time subway arrivals, bus predictions, service alerts, and route info for the New York City subway and bus system. Use when the user asks about NYC public transit, subway times, MTA bus arrivals, service alerts, or nearby stops.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "mta" with this command: npx skills add brianleach/mta

NYC MTA Transit

Real-time New York City MTA transit data — subway arrivals (GTFS-RT protobuf), bus predictions (SIRI JSON API), service alerts, and route information. Subway and alerts work with zero config; bus data requires a free API key.

When to Use

  • User asks about NYC subway, MTA, the train, or specific lines (1/2/3, A/C/E, N/Q/R/W, etc.)
  • User asks "when is the next train" in a New York City context
  • User mentions specific NYC stations (Times Square, Penn Station, Grand Central, Union Square, etc.)
  • User asks about NYC bus routes (M1, B52, Bx12, Q44, S79, etc.)
  • User asks about MTA service alerts, delays, planned work, weekend service changes
  • User asks about MTA fares, MetroCard, OMNY
  • User asks about subway status or weekend service changes
  • User asks about nearby subway stops or bus stops in NYC

Data Sources

NYC MTA is multiple transit agencies with different data formats:

Subway Real-Time Feeds (GTFS-RT Protobuf, NO key required)

Feeds are grouped by line division. Each returns protobuf binary with NYCT extensions (direction, track info).

FeedLinesURL
1234567/GS1, 2, 3, 4, 5, 6, 7, Grand Central Shuttlehttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs
ACEA, C, E, Rockaway Shuttle, Franklin Shuttlehttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-ace
BDFMB, D, F, Mhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-bdfm
GGhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-g
JZJ, Zhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-jz
LLhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-l
NQRWN, Q, R, Whttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-nqrw
SIRStaten Island Railwayhttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs-si

Feeds update every ~30 seconds. No API key required.

Bus Real-Time (SIRI JSON API, requires MTA_BUS_API_KEY)

Get a free key at: https://register.developer.obanyc.com/

EndpointDescription
SIRI StopMonitoringArrivals at a specific bus stop
SIRI VehicleMonitoringAll vehicles on a bus route
OneBusAway Stop InfoStop details and nearby stops
OneBusAway RoutesRoute discovery

Rate limit: 1 request per 30 seconds.

Service Alerts (GTFS-RT Protobuf, NO key required)

FeedURL
Subway Alertshttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/subway-alerts
Bus Alertshttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/bus-alerts
All Alertshttps://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/all-alerts

GTFS Static Feed

FeedURL
Subwayhttp://web.mta.info/developers/data/nyct/subway/google_transit.zip

Implementation

Script: scripts/mta.mjs

Main entry point. Supports these commands:

# Subway arrivals
node scripts/mta.mjs arrivals --stop-search "times square"
node scripts/mta.mjs arrivals --stop-search "penn station" --line A
node scripts/mta.mjs arrivals --stop 127N
node scripts/mta.mjs arrivals --station "Grand Central"

# Bus arrivals (requires MTA_BUS_API_KEY)
node scripts/mta.mjs bus-arrivals --stop MTA_308209
node scripts/mta.mjs bus-arrivals --stop MTA_308209 --route M1

# Vehicle tracking
node scripts/mta.mjs vehicles --line 1
node scripts/mta.mjs bus-vehicles --route B52

# Service alerts
node scripts/mta.mjs alerts
node scripts/mta.mjs alerts --subway
node scripts/mta.mjs alerts --bus
node scripts/mta.mjs alerts --line A

# Routes and stops
node scripts/mta.mjs routes
node scripts/mta.mjs bus-routes
node scripts/mta.mjs stops --search "grand central"
node scripts/mta.mjs stops --near 40.7484,-73.9856
node scripts/mta.mjs bus-stops --near 40.7484,-73.9856
node scripts/mta.mjs bus-stops --route M1
node scripts/mta.mjs route-info --line A

# Maintenance
node scripts/mta.mjs refresh-gtfs

Setup: Bus API Key

Subway and alert commands work with zero configuration. For bus commands:

  1. Get a free key at https://register.developer.obanyc.com/
  2. Set environment variable: MTA_BUS_API_KEY

Setup: GTFS Static Data

On first use, run node scripts/mta.mjs refresh-gtfs to download subway stop/route data to ~/.mta/gtfs/. Refresh periodically (data updates hourly).

NYC Subway Lines Reference

LineColorRouteTerminals
1Red7th Ave LocalVan Cortlandt Park-242 St ↔ South Ferry
2Red7th Ave ExpressWakefield-241 St ↔ Flatbush Ave-Brooklyn College
3Red7th Ave ExpressHarlem-148 St ↔ New Lots Ave
4GreenLexington Ave ExpressWoodlawn ↔ Crown Heights-Utica Ave
5GreenLexington Ave ExpressEastchester-Dyre Ave ↔ Flatbush Ave-Brooklyn College
6GreenLexington Ave LocalPelham Bay Park ↔ Brooklyn Bridge-City Hall
7PurpleFlushingFlushing-Main St ↔ 34 St-Hudson Yards
ABlue8th Ave ExpressInwood-207 St ↔ Far Rockaway / Ozone Park-Lefferts Blvd
CBlue8th Ave Local168 St ↔ Euclid Ave
EBlue8th Ave LocalJamaica Center ↔ World Trade Center
BOrange6th Ave ExpressBedford Park Blvd ↔ Brighton Beach
DOrange6th Ave ExpressNorwood-205 St ↔ Coney Island-Stillwell Ave
FOrange6th Ave LocalJamaica-179 St ↔ Coney Island-Stillwell Ave
MOrange6th Ave LocalMiddle Village-Metropolitan Ave ↔ Forest Hills-71 Ave
GLight GreenBrooklyn-Queens CrosstownCourt Sq ↔ Church Ave
JBrownNassau StJamaica Center ↔ Broad St
ZBrownNassau St ExpressJamaica Center ↔ Broad St (Peak only)
LGray14th St-Canarsie8 Ave ↔ Canarsie-Rockaway Pkwy
NYellowBroadway ExpressAstoria-Ditmars Blvd ↔ Coney Island-Stillwell Ave
QYellowBroadway Express96 St ↔ Coney Island-Stillwell Ave
RYellowBroadway LocalForest Hills-71 Ave ↔ Bay Ridge-95 St
WYellowBroadway LocalAstoria-Ditmars Blvd ↔ Whitehall St-South Ferry
SGray42nd St ShuttleTimes Sq-42 St ↔ Grand Central-42 St
SGrayFranklin Ave ShuttleFranklin Ave ↔ Prospect Park
SGrayRockaway Park ShuttleBroad Channel ↔ Rockaway Park-Beach 116 St
SIRBlueStaten Island RailwaySt George ↔ Tottenville

Key Bus Routes Reference

RouteNameBorough
M15th Ave / Madison AveManhattan
M151st Ave / 2nd AveManhattan
M3434th Street CrosstownManhattan
M4242nd Street CrosstownManhattan
M60LaGuardia Airport LinkManhattan/Queens
B44Nostrand AveBrooklyn
B52Gates Ave/Greene AveBrooklyn
Bx12Fordham Road/Pelham PkwyBronx
Q44Merrick Blvd/Cross IslandQueens
S79Hylan BlvdStaten Island
X27Bay Ridge-Downtown Manhattan ExpressBrooklyn

MTA Fares Reference (2025)

Fare TypePrice
Subway/Bus (OMNY tap or MetroCard)$2.90
Bus-to-bus / subway-to-bus transferFree within 2 hours
Express Bus$7.00
7-Day Unlimited$34.00
30-Day Unlimited$132.00
Single Ride (vending machine only)$3.25
Reduced Fare$1.45

Payment via OMNY (contactless tap), MetroCard, or Ventra. Free transfers between subway and bus within 2 hours with OMNY.

Tips for Users

  • Subway stop IDs end with N (northbound/uptown) or S (southbound/downtown). Example: 127N = Times Sq northbound
  • Subway works with zero config — no API key needed for any subway command
  • Bus requires a free API key — get one at https://register.developer.obanyc.com/
  • Alerts always work — no key needed
  • Multiple subway feeds exist; the skill automatically fetches the right one(s) for the line requested
  • Use --stop-search for fuzzy name matching, --stop for exact stop IDs

Error Handling

  • If MTA_BUS_API_KEY is not set, bus commands print a helpful message with the signup URL; subway commands still work
  • Invalid station/stop searches show "No matching station found"
  • Network errors and API error responses produce friendly messages
  • If a subway feed returns empty data, note that real-time data may be temporarily unavailable

Response Formatting

When presenting transit info to the user:

  • Lead with the most actionable info (next arrival time, active alerts)
  • Show line letter/number + direction (e.g., "A train toward Far Rockaway, arriving 3 min")
  • For subway: show "Approaching" for trains at the station, minutes for upcoming
  • Show track info when available (actual vs scheduled track)
  • Always mention active service alerts for the line being queried
  • For buses: show route + destination + minutes/stops away
  • Times in 12-hour format with AM/PM

External Endpoints

EndpointData SentData Received
api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct/gtfs*None (GET only)Subway positions/arrivals (Protobuf)
api-endpoint.mta.info/Dataservice/mtagtfsfeeds/camsys/*-alertsNone (GET only)Service alerts (Protobuf)
bustime.mta.info/api/siri/*API key (query param)Bus arrivals/positions (JSON)
bustime.mta.info/api/where/*API key (query param)Stop/route discovery (JSON)
web.mta.info/developers/data/nyct/subway/*None (GET only)GTFS static data (ZIP)

Subway and alert endpoints are open access with no authentication. Bus endpoints require a free API key passed as a query parameter.

Security & Privacy

  • Subway: No credentials required — subway and alert feeds are open access, no API keys or tokens
  • Bus: Free API key required — passed as a URL query parameter to MTA's official BusTime API
  • No user data transmitted — requests contain only API keys and route/stop identifiers, no personal information
  • Local storage only — GTFS static data is cached locally at ~/.mta/gtfs/; no data is written elsewhere
  • No telemetry — this skill does not phone home or collect usage data
  • Input handling — stop names and route IDs from user input are used only for local filtering, never interpolated into shell commands

Trust Statement

This skill reads publicly available transit data from MTA's official feeds and APIs. The bus API key is used only for MTA BusTime API authentication. The skill does not access, store, or transmit any personal information beyond the API key configured by the user.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Charging Ledger

充电记录账本 - 从截图提取充电信息并记录,支持按周、月查询汇总。**快速暗号**: 充电记录、充电账本、充电汇总。**自然触发**: 记录充电、查询充电费用、充电统计。

Registry SourceRecently Updated
General

qg-skill-sync

从团队 Git 仓库同步最新技能到本机 OpenClaw。支持首次设置、定时自动更新、手动同步和卸载。当用户需要同步技能、设置技能同步、安装或更新团队技能,或提到「技能同步」「同步技能」时使用。

Registry SourceRecently Updated
General

Ad Manager

广告投放管理 - 自动管理广告投放、优化ROI、生成报告。适合:营销人员、电商运营。

Registry SourceRecently Updated