Public Transportation Fact Book Appendix B - Urban Transit Agencies by Mode

Urban public transportation operating statistics by agency and mode from APTA Fact Book Appendix B. One row is an agency-mode combination with geography, reporting status, passenger miles, vehicles, vehicle revenue miles and hours, and passenger trips; a verification query found 1,913 rows, 1,002 agencies, 18 modes, and 54 states.

american-public-transportation-association-factbook-b-urban-agency-by-mode·20 columns·127 KB·APTA statistical publication reuse terms / site copyright notice·updated 19d ago

Schema

statestring
agencystring
citystring
uzastring
uza_popint64
modestring
small_systemstring
reporter_typestring
voms_amountint64
voms_rankstring
vehicles_available_for_maximum_service_amountint64
vehicles_available_for_maximum_service_rankstring
vehicle_revenue_miles_amountint64
vehicle_revenue_miles_rankstring
vehicle_revenue_hours_amountint64
vehicle_revenue_hours_rankstring
upt_amountint64
upt_rankstring
passenger_miles_amountint64
passenger_miles_rankstring

Get this dataset on your machine

subsets sync --bundle medium clones the mid-size tiers as queryable local tables — use --bundle large for the widest tier

pip install subsetsio
subsets sync --bundle small # or medium, or large
subsets serve # search + SQL at http://localhost:8080

Free and open — the data syncs straight from the public bucket, and search + SQL run entirely on your machine. See docs →

Query it locally

Full docs →
Bash
subsets serve   # local API on http://localhost:8080
curl -s -X POST "http://localhost:8080/query" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM \"american-public-transportation-association-factbook-b-urban-agency-by-mode\" LIMIT 5"}'

No account, no API key — the data syncs straight from bundles.subsets.io and every query runs on your machine. See the local API reference.