Skip to main content


More from Developers

Select from the list below to learn more about the information and tools available for developers interested in MBTA data.

This page logs the non-backwards compatible changes to the V3 API. See the documentation on Versioning for how to use the different versions.


This version coincides with a major change to stop IDs for Commuter Rail stops and Nubian (formerly Dudley) station. For backwards compatibility, versions before this one treat all requests that specify an "old" stop ID as though they had also specified the corresponding "new" stop ID(s). This version removes that translation. (After January 9th, 2021, stop IDs in responses are always the "new" ones in all API versions.)

This version also includes the following minor changes:

  • The `/predictions` endpoint now correctly returns an error if a `date` filter is specified; previously it would accept one, but not do anything with it
  • The `/shapes` endpoint no longer accepts `direction_id` as a filter or a sort key; these were mistakenly not removed in version 2020-05-01 when the corresponding attribute was removed from shapes


The version removes several fields on the Shapes API.

  • `name`, `direction_id`, and `priority` have been removed from attributes
  • `route` and `stops` have been removed from relationships

The use cases fulfilled by these fields should be accommodated by the Route Patterns API.


This version introduces cleanups to make the API more consistent.

  • The Schedules API no longer returns an departure time if it’s not possible to board, or an arrival time if it’s not possible to alight at a stop
    • This brings it into line with the Predictions API
  • The use of underscores (_) has been made consistent throughout the API
    • /route-patterns/ was renamed to /route_patterns/
    • /live-facilities/ was renamed to /live_facilities/ and the type of those results is now `live_facility`
  • Facilities now have a `short_name` and `long_name` field: the `name` field was removed
    • This brings it into line with the Routes API

For security purposes, we have also disabled TLS 1.0/1.1 access to the API. From this date, TLS 1.2 is the minimum supported version.


This version introduces strict validation of parameters passed as a `filter` and/or `include`. The API will return HTTP 400 should the caller pass an unsupported value. List of supported values for filters and includes could be found in the Swagger documentation.


The `stop_id` field for `Prediction` can now change in some additional cases:

  • Red Line: Alewife, Braintree
  • Orange Line: Forest Hills, Oak Grove
  • Green Line: Kenmore, Park Street


The `stop_id` field for `Prediction` can now change in some cases where we know that the vehicle will be stopping at a different stop. In particular, we use this for the Commuter Rail: Back Bay, South Station, and North Station for track assignments.

Since track assignments are now reflected in the `stop_id` field, the `track` field is removed.


The `last_updated` field on `Vehicle` was replaced by `updated_at` to more closely match the names used by `Alert`.


Initial public release.