APTA Fare Database - Demand-Response Fares by Agency

Agency-level demand-response fare information from the APTA Fare Database. One row is a transit agency record with geography and fare-policy fields for demand-response service; the profile contains 387 rows and includes many optional yes/no and text response columns from the source survey.

american-public-transportation-association-fare-demand-response·55 columns·54 KB·APTA statistical publication reuse terms / site copyright notice·updated 2d ago

Schema

member_idint64
new_2025_datastring
survey_sent_in_2025string
last_data_submissionstring
transit_agency_namestring
citystring
state_or_provincestring
countrystring
month_of_most_recent_fare_changestring
year_of_most_recent_fare_changestring
disabled_minimum_base_faredouble
disabled_maximum_base_faredouble
attendant_to_disabled_minimum_base_faredouble
attendant_to_disabled_maximum_base_faredouble
companion_to_disabled_minimum_base_faredouble
companion_to_disabled_maximum_base_faredouble
senior_minimum_base_faredouble
senior_maximum_base_faredouble
pre_school_child_minimum_base_faredouble
pre_school_chiild_maximum_base_faredouble
elementary_school_child_minimum_base_faredouble
elementary_school_child_maximum_base_faredouble
secondary_school_child_minimum_base_faredouble
secondary_school_child_maximum_base_faredouble
university_student_minimum_base_faredouble
university_student_maximum_base_faredouble
low_income_person_minimum_base_faredouble
low_income_person_maximum_base_faredouble
social_service_agency_client_minimum_base_faredouble
social_service_agency_client_maximum_base_faredouble
general_public_minimum_base_faredouble
general_public_maximum_base_faredouble
service_in_areas_fixed_route_service_does_not_operatestring
service_during_hours_fixed_route_service_does_not_operatestring
service_during_same_hours_and_in_same_areas_as_fixed_route_servicestring
service_only_when_space_availablestring
mobility_pilot_with_uberstring
mobility_pilot_with_lyftstring
mobility_pilot_with_viastring
mobility_pilot_with_otherstring
self_operated_mobility_pilotstring
first_last_mile_mobility_pilotstring
paratransit_supplement_mobility_pilotstring
other_service_mobility_pilotstring
mobility_pilot_per_trip_subsidy_discount_voucher_amount_minimumdouble
mobility_pilot_per_trip_subsidy_discount_voucher_amount_maximumdouble
mobility_pilot_flat_or_distance_based_fare_maximumdouble
mobility_pilot_flat_or_distance_based_fare_minimumdouble
mobility_pilot_fare_notesstring
microtransit_mobility_pilotstring
pilotnotesstring
suspended_fares_due_to_covid_19string
reduced_fares_due_to_covid_19string
start_of_fare_suspension_reductionstring
end_of_fare_suspension_reductionstring

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-fare-demand-response\" 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.