SEPTA logo


Southeastern Pennsylvania Transportation Authority: Serving Bucks, Chester, Delaware, Montgomery, and Philadelphia Counties.

13 datasets

SEPTA Bus and Rail Routes and Times

Data includes SEPTA transit information, such as departure and arrival times, sequence of transit stops for select routes, and files providing prerequisite route and trip information along with related scheduled transit stop times over a specified seasonal period.

SEPTA Bus and Trolley Location API

This REST API provides real-time SEPTA vehicle positions based on a GPS data feed for each bus and trolley. There are two services - one returning JSON points for the current locations of all vehicles on a particular route and one returning a KML route.


The JSON API has one variable at the end of the URL in the format:

[var1] is the route name. It must be alpha-numeric and must be a valid SEPTA route. Lettered routes are not case sensitive for the JSON service but must be in caps for the KML service.

An example:


The KML service trace file shows the patterns that the route follows. The API has one variable in the format:

[var1] is the name of the route. Lettered routes must be in Caps, such as:

SEPTA Bus Detours

Provides access to current SEPTA bus detours via an API. All detours for all routes can be accessed at
</br> To specify detours for a specific route, add the parameter: route number to the URL.
</br> Example:
</br> This API was created as part of the Apps for SEPTA hackathon.


SEPTA schedule and location information in GTFS format. Please use GitHub ( or Google group (!forum/septadev)

SEPTA Locations API

The SEPTA Locations API provides data related to SEPTA locations (bus stops, rail stations, SEPTA pass perks locations, trolley stops, and sales locations) within a certain radius of a latitude and longitude point. The API is JSONP or JSON compatible.
</br> The API takes in four parameters: latitude, longitude, type, and radius. A full sample is available at

SEPTA Mobile

Mobile web site for alerts, schedules, maps, fare, and next to arrive information

SEPTA Next to Arrive

The SEPTA Next to Arrive application provides users with real-time schedule train information for trips on the SEPTA Regional Rail system. Users identify their beginning and destination stations and receive information on the next four available train options.
</br> The SEPTA Next to Arrive JSON based API is available for public use. Users must provide a start station and end station. The parameters are: start station/ end station/ number of results (optional). The JSON API was released on October 12, 2011.
</br> The SEPTA Next to Arrive REST-based API is also available for public use. Users must provide a start and end station in the following format:
</br> Example:
</br> The only valid Start/End stations are: 30th Street Station, 49th St, Airport Terminal A, Airport Terminal B, Airport Terminal C-D, Airport Terminal E-F, Allegheny, Allen Lane, Ambler, Angora, Ardmore, Ardsley, Bala, Berwyn, Bethayres, Bridesburg, Bristol, Bryn Mawr, Carpenter, Chalfont, Chelten Avenue, Cheltenham, Chester TC, Chestnut Hill East, Chestnut Hill West, Churchmans Crossing, Claymont, Clifton-Aldan, Colmar, Conshohocken, Cornwells Heights, Crestmont, Croydon, Crum Lynne, Curtis Park, Cynwyd, Daylesford, Darby, Delaware Valley College, Devon, Downingtown, Doylestown, East Falls, Eastwick Station, Eddington, Eddystone, Elkins Park, Elm St, Elwyn Station, Exton, Fern Rock TC, Fernwood, Folcroft, Forest Hills, Ft Washington, Fortuna, Fox Chase, Germantown, Gladstone, Glenolden, Glenside, Gravers, Gwynedd Valley, Hatboro, Haverford, Highland Ave, Highland, Holmesburg Jct, Ivy Ridge, Jenkintown-Wyncote, Langhorne, Lansdale, Lansdowne, Lawndale, Levittown, Link Belt, Main St, Malvern, Manayunk, Marcus Hook, Market East, Meadowbrook, Media, Melrose Park, Merion, Miquon, Morton, Moylan-Rose Valley, Mt Airy, Narberth, Neshaminy Falls, New Britain, Newark, Noble, Norristown TC, North Broad St, North Hills, North Philadelphia, North Wales, Norwood, Olney, Oreland, Overbrook, Paoli, Penllyn, Pennbrook, Philmont, Primos, Prospect Park, Queen Lane, Radnor, Ridley Park, Rosemont, Roslyn, Rydal, Ryers, Secane, Sedgwick, Sharon Hill, Somerton, Spring Mill, Ste. Davids, Ste. Martins, Stenton, Strafford, Suburban Station, Swarthmore, Tacony, Temple U, Thorndale, Torresdale, Trenton, Trevose, Tulpehocken, University City, Upsal, Villanova, Wallingford, Warminster, Washington Lane, Wayne Jct, Wayne Station, West Trenton, Whitford, Willow Grove, Wilmington, Wissahickon, Wister, Woodbourne, Wyndmoor, Wynnefield Avenue, Wynnewood, Yardley

SEPTA Regional Rail TransitView

Regional Rail TransitView provides access to real-time information about SEPTA regional rail trains. Users can access the information as a KML file or JSON feed or view the information on a Google Map or SEPTA system map. The information includes the train number, its current location, and possible delays.

</br> These APIs and applications were created as part of the Apps for SEPTA hackathon.
</br> As of March 16, 2012, SEPTA has decommissioned TransitView. The data feeds remain available, however, and the URLs listed below are still active.

SEPTA Schedules

Provides API access to SEPTA regional rail, bus, and trolley schedules.
</br> Regional rail schedules are accessed by train number. Example:
</br> Bus and trolley schedules are accessed at and requested using the following parameters - ?req1=stop_id req2=route (optional) req3=(i or o) (for inbound/outbound)optional req=6 number of results(optional).
</br> These APIs were created as part of the Apps for SEPTA hackathon.


SEPTA SMS Transit enables users to request scheduled trip information via text message. Users subscribe to the service via text. After setting up an account, users can receive schedule information by texting the Stop ID number for a bus, trolley, or subway stop to 41411. They will receive a return text with information on the four next scheduled trips from that stop. Users can include the specific route designation in the text to receive information on a certain route if the stop serves multiple routes.

In addition to using the SMS, there is also a simulator which people can use to experiment at no cost.

Finally, the SMS data can be accessed from an API. The data returned by the API is currently text format, \n separated. SEPTA expects to add JSON and XML versions later. The API can be accessed in the format:

[var1] = stop id
[var2] = route id OR i/o for inbound/outbound
[var3] = i/o for inbound/outbound only if route id is supplied

Stops fall into one of three categories, here’s an explanation with some sample links:

  1. Stops with service provided by only one route, stop is not the first or last stop and all travel is in a single direction:
    Returns the next 4 scheduled trolleys (All Route 13) at Chester Ave & 49th St.

  2. Stops with service provided by multiple routes, but all travel is in one direction:
    Returns the next 4 scheduled trolleys at 22nd St. Station. Note the results shows trolleys regardless or route. To grep just a single route, for a multi-route, uni-directional stop, add another var:
    Returns only the Route 13 trolleys at 22nd St. Station

  3. Stops with travel in multi-directions. This is usually end points, like the trolley loop at Juniper and they may or may not have multiple routes. For example:
    Returns the next 2 inbound and 2 outbound times for all routes
    Returns the next 2 inbound and 2 outbound times for only Route 13
    Returns the next 4 outbound times for all routes
    Returns the next 4 outbound times for only Route 13

SEPTA Train Lateness

The purpose of this dataset is to report inefficiencies in SEPTA’s train scheduling for use by SEPTA employees and casual train riders.

SEPTA TransitView

TransitView provides real-time information about SEPTA buses and trolleys. Users can select a bus route or trolley line to view the current location of the bus or trolley vehicles in service on that route. Clicking on a vehicle displays the identification numbers for that vehicle, the direction it is traveling, and any service alerts for that route. Vehicles transmit information on their locations every three minutes and TransitView updates continuously.
</br> As of March 16, 2012, SEPTA TransitView has been integrated into the SEPTA System Status application. To view real-time data, users can click on the TransitView icon located next to a bus route number or the name of a trolley or train line.

SEPTA Travel Alerts

Provides access to SEPTA travel alerts via an API. All travel alerts can be viewed at
</br> To retrieve travel alerts for a specific route or line, add the parameter: route/line name to the URL.
</br> Example:
</br> This API was created as part of the Apps for SEPTA hackathon.