Project Sidewalk APIs

Hey, we need your help! Use the sidewalk accessibility data that we have collected to make new technologies that support people with mobility impairments!

We serve our accessibility data in two formats: Access Attribute and Access Score. Access Attribute contains point-level information on what accessibility attributes exist and where (latitude-longitude). See below for an example. Access Score is a value that indicates how (in)accessible a given street/area is. See the Access Score APIs for examples.

You can get the data through the REST APIs. You can also help contribute! The code is available on Github.


This API serves point-level location data on accessibility attributes. The major categories of attributes include: "Curb Ramp", "Missing Curb Ramp", "Obstacle", and "Surface Problem". The less common attributes are "No Sidewalk", "Occlusion", and "Other". You can also query for the individual labels that make up the attributes.
URL /v2/access/attributes
/v2/access/attributesWithLabels
Method GET
Parameters
Optional:

You can pass a pair of latlng coordinates to define a bounding box, which is used to specify where you want to query the data from. If you need data for the entire city, you can use the download button above, or you can simply exclude the lat/lng parameters. Note that the query could take a long time to complete if you are requesting all the data for this city.
lat1=[double]
lng1=[double]
lat2=[double]
lng2=[double]

You can filter for a specific severity rating in the returned dataset using the "severity" parameter. Severity can be an integer from 1-5 or "none" to represent data without a severity rating.
severity=[int|string]

You can choose the file type for the data using the "filetype" parameter. The valid options are "csv", "geojson", or "shapefile". The GeoJSON format is returned by default.
filetype=csv|shapefile|geojson

Success Response
200
The API returns all the available accessibility attributes in the specified area as a Feature Collection of Point features. Properties of the attributes include label type, neighborhood name, severity, whether the problem was marked as temporary, and a unique attribute id (see disclaimer section for caveats). The attributesWithLabels endpoint also includes the parameters needed to recreate the environment in Google Street View (including heading, pitch, etc.).
Examples



This API serves Accessibility Scores of the streets within a specified region. Accessibility Score is a value between 0 (inaccessible) and 1 (accessible).
URL /v2/access/score/streets
Method GET
Parameters
Optional:

You can pass a pair of latlng coordinates to define a bounding box, which is used to specify where you want to query the data from. If you need data for the entire city, you can use the download button above, or you can simply exclude the lat/lng parameters. Note that the query could take a long time to complete if you are requesting all the data for this city.
lat1=[double]
lng1=[double]
lat2=[double]
lng2=[double]

You can choose the file type for the data using the "filetype" parameter. The valid options are "csv", "geojson", or "shapefile". The GeoJSON format is returned by default.
filetype=csv|shapefile|geojson

Success Response
200
The API returns the streets that have been audited at least once as a Feature Collection of LineString features. Each LineString includes the street geometry and the corresponding Access Score.
Examples

Map
This API serves Accessibility Scores of the neighborhoods within a specified region. Accessibility Score is a value between 0 (inaccessible) and 1 (accessible).
URL /v2/access/score/neighborhoods
Method GET
Parameters
Optional:

You can pass a pair of latlng coordinates to define a bounding box, which is used to specify where you want to query the data from. If you need data for the entire city, you can use the download button above, or you can simply exclude the lat/lng parameters. Note that the query could take a long time to complete if you are requesting all the data for this city.
lat1=[double]
lng1=[double]
lat2=[double]
lng2=[double]

You can choose the file type for the data using the "filetype" parameter. The valid options are "csv", "geojson", or "shapefile". The GeoJSON format is returned by default.
filetype=csv|shapefile|geojson

Success Response
200
The API returns neighborhoods in a given area as a Feature Collection of Polygon features. Each Polygon feature includes its geometry and the corresponding Access Score.
Examples
URL /v2/overallStats
Method GET
Examples /v2/overallStats
/v2/overallStats?filterLowQuality=true
/v2/overallStats?filetype=csv
Description This endpoint gives some general stats about the data collected through Project Sidewalk in this city. It includes stats like the number of users and km audited. It also includes the following, broken down by label type: labels placed, average severity, and accuracy. There is an optional filterLowQuality parameter to remove low quality data.
URL /v2/userStats
Method GET
Examples /v2/userStats
/v2/userStats?filetype=csv
Description This endpoint gives some statistics about Project Sidewalk users. It includes some overall statistics like accuracy and meters explored. It also gives counts of the number of labels placed for each label type. More formal documentation is in the works! The IDs for users are anonymized, but persistent over time.
URL /v2/rawLabels
Method GET
Parameters
Optional:

You can pass a pair of latlng coordinates to define a bounding box, which is used to specify where you want to query the data from. If you need data for the entire city, you can use the download button above, or you can simply exclude the lat/lng parameters. Note that the query could take a long time to complete if you are requesting all the data for this city.
lat1=[double]
lng1=[double]
lat2=[double]
lng2=[double]

You can choose the file type for the data using the "filetype" parameter. The valid options are "csv", "geojson", or "shapefile". The GeoJSON format is returned by default.
filetype=csv|shapefile|geojson

Examples

Description This endpoint gives you the raw labels placed by users in this city, without any data cleaning that we do for the Access APIs. The /attributes and /attributesWithLabels APIs filter out data that has been marked as incorrect by users of the Validate page, and data from some users who have been flagged as providing low quality data in our system. They also filter out duplicate data, since multiple users can label the same location. The Raw Labels API has none of that filtering. You probably only want to use this API if you are interested in doing your own data cleaning.

We moved to v2 of the public API in October 2018, and support for v1 was removed in March 2024.

We are still in the experimental stage of the project, so we want you to keep in mind a few things, for example:

  1. The unique id that comes with each accessibility attribute is not guaranteed to correspond to the same attribute over time (the ids are likely to change daily right now).
  2. In the /access/attribute endpoint the severity property may be null, as we do not require users to mark severity for their labels.
  3. APIs' design (e.g., URL, response formats) could change.
  4. As of now, you must access the API separately for each available city. Though we plan to add a combined API across cities in the future.

All the code for Project Sidewalk is open source. You can find it in our GitHub repo. We welcome your help in advancing the project. If you make an enhancement or fix a bug, send a pull request!

Questions? Bugs? Feature requests and suggestions? Or anything else? Email us (sidewalk@cs.uw.edu), post a GitHub issue, or follow and talk to us on Twitter @projsidewalk!

The Project Sidewalk code is licensed under the terms of the MIT License.