Project Sidewalk API

Notice

We have completed our pilot deployment in Washington, DC! We are no longer collecting new data in DC, but the REST API will continue to be available, and you can find the API documentation on this page. If you would like to contribute accessibility data, you can head to projectsidewalk.org and check out all of the cities where Project Sidewalk has been deployed. We will continue to make improvements to this API over time.

Overview

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.

Access APIs


Access Attributes

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". Optionally, you can also query for the individual labels that make up the attributes.
URL /v2/access/attributes
/v2/access/attributesWithLabels
Method GET
Parameters
Required:
You need to pass a pair of latlng coordinates to define a bounding box, which is used to specify where you want to query the data from.
  • lat1=[double]
  • lng1=[double]
  • lat2=[double]
  • lng2=[double]
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.).
Example /v2/access/attributes?lat1=38.909&lng1=-76.989&lat2=38.912&lng2=-76.982
/v2/access/attributesWithLabels?lat1=38.909&lng1=-76.989&lat2=38.912&lng2=-76.982

Access Score: Streets

This API serves Accessibility Scores of the streets within a specified region. Accessibility Score is a value between 0 and 1, where 0 means inaccessible and 1 means accessible.
URL /v2/access/score/streets
Method GET
Parameters
Required:
You need to pass a pair of latlng coordinates to define a bounding box, which is used to specify where you want to query the data from.
  • lat1=[double]
  • lng1=[double]
  • lat2=[double]
  • lng2=[double]
Success Response
200
The API returns the streets that have been audited at least once as a Feature Collection of LineString features. Each LineString feature include street's geometry as well as the corresponding Access Score.
Example /v2/access/score/streets?lat1=38.899&lng1=-77.008&lat2=38.920&lng2=-76.971

Map

Access Score: Neighborhood

This API serves Accessibility Scores of the neighborhoods within a specified region. Accessibility Score is a value between 0 and 1, where 0 means inaccessible and 1 means accessible.
URL /v2/access/score/neighborhoods
Method GET
Parameters
Required:
You need to pass a pair of latlng coordinates to define a bounding box, which is used to specify where you want to query the data from.
  • lat1=[double]
  • lng1=[double]
  • lat2=[double]
  • lng2=[double]
Success Response
200
The API returns neighborhoods in a given area as a Feature Collection of Polygon features. Each Polygon feature includes its geometry as well as the corresponding Access Score.
Example /v2/access/score/neighborhoods?lat1=38.899&lng1=-77.008&lat2=38.920&lng2=-76.971

Access Dataset

We are working on this!

Changes in API v2

We have moved to v2 of the public API as of October, 2018. Changes include:

  1. More sophisticated clustering is used for the Attribute and Access Score endpoints.
  2. Accessibility attribute metadata in v1 included lat, lng, label type, and panorama id. In v2, the attribute metadata includes lat, lng, label type, neighborhood name, severity, whether the problem was marked as temporary, and a unique attribute id (see disclaimer section for caveats).
  3. The Access Feature endpoint has been renamed Access Attribute, because "attribute" has a more neutral connotation than "feature", and is thus more suitable to describe both curb ramps and missing curb ramps. The v1 API can still be accessed using either /v1/access/features or /v1/access/attributes.
  4. We've added a new /v2/access/attributesWithLabels endpoint, which gives access to the individual labels that are clustered into accessibility attributes.

Disclaimer

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. We are focusing on collecting data only from Washington, D.C. at the moment.

Contribute

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!

Contact Us

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!

License

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