Reference · built on requestCommons signalTransit, roads & mobility

SEPTA API

Regional Rail arrivals, bus and trolley positions, detours, alerts, and GTFS-realtime feeds for SEPTA's five-county Philadelphia network.

About

SEPTA runs Regional Rail, trolley, and bus service across Philadelphia and Bucks, Chester, Delaware, and Montgomery counties. Its developer API on www3.septa.org is documented in Swagger under three groups: Real Time Data, Static Data, and GTFS Data. Real-time calls return JSON and need no key. The same host serves the static GTFS zip and six GTFS-realtime protobuf files, split between bus and trolley (septa-pa-us) and Regional Rail (septarail-pa-us).

Through Fibric, an operator watches the stations and routes your people depend on and proposes a roster or notice change with the SEPTA record attached.

This is a reference listing. It documents what Fibric would read from SEPTA API and what it could propose, based on the publisher's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.

Inputs

  • Regional Rail arrivals and departures at a named station through /api/Arrivals, with a results count and a Northbound or Southbound direction
  • Every Regional Rail train on the system through /api/TrainView: train number, origin, destination, and whether it is late
  • Departure and arrival times between two stations through /api/NextToArrive
  • Bus and trolley positions by route through /api/TransitView, or the whole fleet through /api/TransitViewAll
  • Detours by route through /api/BusDetours and travel alerts by route id through /api/Alerts and /api/Alerts/get_alert_data.php
  • Elevator outages through /api/elevator; stops, schedules, and locations within a radius through the Static Data endpoints
  • GTFS-realtime service alerts, trip updates, and vehicle positions as protobuf for bus and trolley and for Regional Rail, plus the static GTFS zip

Proposed actions

Read-only. This feed informs operators; it changes nothing.

Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.

What you can build

  • Cover a shift when a Regional Rail line is suspended

    The operator reads /api/Alerts for the rr_route ids your staff ride and TrainView for late trains. When a line drops, it proposes who covers the first hour and sends the alert text with the request.

    With Shift Coverage

  • Explain a late clock-in with the train record

    A missed start is matched against Arrivals for the nearest station at that time. If the train ran late, the operator proposes marking the absence excused, with the SEPTA row attached.

    With No-Show Response

  • Warn tomorrow's crew about a detour on their route

    BusDetours by route number feeds a notice to the people rostered on that route's stops. The operator drafts the message for your approval and records who received it.

    With Schedule Notice

Requirements

  • The Regional Rail station names and bus or trolley route numbers your sites depend on, from SEPTA's input lists
  • Acceptance of the SEPTA License Agreement before downloading the static GTFS zip
  • A protobuf parser for the GTFS-realtime files; the print.php views beside them show only the top five entries
Authentication
No key or registration. Every endpoint is an open HTTPS GET on www3.septa.org; the Swagger spec declares no security scheme.

Limits

  • SEPTA publishes no rate limit and no refresh interval; with no keys, usage is not metered per application
  • Regional Rail direction is Northbound or Southbound after the old Reading and Pennsylvania railroads, not a compass heading
  • The GTFS licence is revocable, carries no warranty, and SEPTA reserves the right to charge a fee later
  • Alerts are keyed by ids such as bus_route_1 or rr_route_chw, so mapping routes to your sites is manual

Access and pricing

Reference listing. Public feed access is separate from Fibric integration. If you request this feed, your quote covers the build, usage, and support.

Request SEPTA API ↗

Questions and answers

Does the SEPTA API need a key?
No. The Swagger spec on www3.septa.org defines no security scheme, and every Real Time, Static, and GTFS endpoint is a plain GET. SEPTA publishes no per-application quota, so pace your own polling.
Where are the GTFS-realtime feeds?
Six protobuf files under www3.septa.org/gtfsrt: rtServiceAlerts.pb, rtTripUpdates.pb, and rtVehiclePosition.pb under septa-pa-us for bus and trolley, and the same three under septarail-pa-us for Regional Rail. The print.php pages beside them show only the top five entries.
What licence covers the static GTFS zip?
The SEPTA License Agreement, shown before the download at www3.septa.org/developer. It grants a non-exclusive, limited, revocable right to use, reproduce, and redistribute the Trip Planning Data, as is, with no fee today and no right to SEPTA's trademarks.
Ask about SEPTA API

Ask about the capabilities and requirements in this listing.

For project-specific requirements, contact Fibric.