The AccessScore: Regions API returns an accessibility score in the range (0, 1) for each
region (neighborhood) — higher is more accessible. A region's score is the
street-length-weighted mean of the AccessScores of its audited streets, so long streets
count proportionally more than short ones.
AccessScore extends the method introduced in Li et al., A Pilot Study of Sidewalk Equity in Seattle (Urban Access 2022). It is experimental and the weights are subject to change. See the AccessScore: Streets API for how individual street scores are computed.
Below is a live preview of region AccessScores in Hackensack, New Jersey, retrieved directly from the API. Each region is colored from red (low accessibility) to green (high); use the Color by dropdown to switch between the AccessScore and audit coverage. Hover or click a region to see its score and coverage.
One method, not the method. There is no single correct way to measure street- and neighborhood-level accessibility—researchers and practitioners use many different approaches. AccessScore implements just one such algorithm, and it is experimental: the weighting is deliberately simple and subject to change. Treat these scores as one lens rather than a definitive measure, and compute your own index from the Label Clusters API if a different method suits your needs better.
Returns a region boundary and its AccessScore for each region in the queried area, optionally filtered by the Query Parameters below.
GET /v3/api/accessScoreRegions
/v3/api/accessScoreRegions?filetype=geojson Get AccessScores for all regions in GeoJSON (default)
/v3/api/accessScoreRegions?filetype=geojson&inline=true Same, but opened in the browser
/v3/api/accessScoreRegions?filetype=csv Get AccessScores for all regions in CSV
/v3/api/accessScoreRegions?regionId=8 Get the score for a single region
Each of the region's audited streets is scored as described in the
AccessScore: Streets API. The region's
score is the mean of those street scores weighted by street length:
Σ(score × length) / Σ(length). Unaudited streets are excluded. When a region has no audited
streets, its score is null.
coverage reports the fraction of the region's streets that have been audited, so you can judge
how complete a region's score is.
Download region AccessScore data directly in your preferred format:
Note: This downloads scores for all regions. For filtered data, use the API Query Parameters described below.
All parameters are optional.
Note: When multiple location filters are provided (bbox, regionId,
and regionName), bbox takes precedence over region filters, and
regionId takes precedence over regionName.
| Parameter | Type | Description |
|---|---|---|
bbox |
string |
Filter by bounding box, as minLongitude,minLatitude,maxLongitude,maxLatitude (e.g., -74.04,40.88,-74.00,40.91), WGS84 (EPSG:4326). Returns regions within the box. If omitted, the city's default bounding box is used. |
regionId |
integer |
Return only the region with this id. Takes precedence over regionName; bbox takes precedence over both. |
regionName |
string |
Return only the region with this name. Used only when bbox and regionId are absent. |
filetype |
string |
Output format. Options: geojson (default), csv, shapefile, geopackage. |
inline |
boolean |
Whether to display the file inline rather than as an attachment. Default: false. |
On success, the API returns 200 OK and the requested data in the specified filetype format.
Returns a GeoJSON FeatureCollection where each feature is a region (MultiPolygon, WGS84 / EPSG:4326).
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "MultiPolygon", "coordinates": [...] },
"properties": {
"region_id": 8,
"name": "Terhune Park",
"score": 0.5623,
"coverage": 1.0,
"audited_street_count": 52,
"total_street_count": 52,
"avg_cluster_counts": {
"CurbRamp": 2.1, "NoCurbRamp": 0.3, "Obstacle": 0.4, "SurfaceProblem": 0.6,
"NoSidewalk": 0.5, "Crosswalk": 0.9, "Signal": 0.1
}
}
},
...
]
}
| Field Path | Type | Description |
|---|---|---|
geometry | MultiPolygon | The region's boundary polygon(s), in [longitude, latitude] (WGS84 / EPSG:4326). |
properties.region_id | integer | Project Sidewalk's unique identifier for this region. |
properties.name | string | The region (neighborhood) name. |
properties.score | number | Length-weighted mean AccessScore of the region's audited streets, in (0, 1). null when no streets in the region have been audited. |
properties.coverage | number | Fraction of the region's streets that have been audited, in [0, 1]. |
properties.audited_street_count | integer | Number of audited streets in the region. |
properties.total_street_count | integer | Total number of streets in the region. |
properties.avg_cluster_counts | object | Mean number of scored clusters of each label type across the region's audited streets, keyed by label-type name. |
If filetype=csv, the first row is the header. The per-type avg_cluster_counts are flattened into one avg_n_* column per label type, and the geometry is simplified to the region centroid.
region_id,name,score,coverage,audited_street_count,total_street_count,avg_n_curb_ramp,avg_n_no_curb_ramp,avg_n_obstacle,avg_n_surface_problem,avg_n_no_sidewalk,avg_n_crosswalk,avg_n_signal,center_point
8,Terhune Park,0.5623,1.0,52,52,2.1,0.3,0.4,0.6,0.5,0.9,0.1,"-74.012,40.895"
...
If filetype=shapefile, the response is a ZIP archive of Shapefile components (.shp, .shx, .dbf, .prj). Because the DBF format truncates column names at 10 characters, the per-type columns use short codes (e.g. aCRamp); the GeoJSON, CSV, and GeoPackage formats keep the full names.
If filetype=geopackage, the response is a GeoPackage (.gpkg) file with full geometry and attributes (full snake_case column names).
400 Bad Request: Invalid parameter values (e.g., malformed bounding box, non-positive or unknown region id).500 Internal Server Error: An unexpected error occurred on the server.{
"status": 400,
"code": "INVALID_PARAMETER",
"message": "No region found with regionId 99999.",
"parameter": "regionId"
}
coverage alongside score: a high score over low coverage reflects only the audited fraction of the region.Project Sidewalk is an open-source project created by the Makeability Lab and hosted on GitHub. We welcome your contributions! If you found a bug or have a feature request, please open an issue on GitHub.
You can also email us at sidewalk@cs.uw.edu
If you are interested in bringing Project Sidewalk to your city, please read our Wiki page.