Project Sidewalk APIs

Unlock the world's sidewalk data!

Imagine a world where every sidewalk is accessible, safe, and easily navigable. Project Sidewalk is building that world, one data point at a time. Through a fusion of crowdsourcing, AI, and online map imagery, we're on a mission to accurately map and assess every sidewalk globally. Our ultimate goal? To revolutionize urban walkability, rollability, and safety, while empowering innovative urban analytics and personalized mapping solutions.

Working with local community groups and governmental partners, we have deployed Project Sidewalk in cities across several countries and many natively translated languages, including Spanish, German, and Chinese. Together, our users have assessed thousands of kilometers of city streets.

Ready to build the future of urban accessibility? All Project Sidewalk data is open and public, accessible in popular formats like CSV, GeoJSON, or shape files or accessed programmatically via our APIs.

API Overview

Our API is divided into four sections:
  • Metadata APIs: for describing our data structures and deployment cities
  • Data APIs: for our collected label data and validations
  • AccessScores APIs: for scoring of sidewalk accessibility of streets and regions
  • Stats APIs: for overall stats on users and collected data

We expand on each below. You can also navigate to the individual API pages on the left sidebar. Before describing the API endpoints, we first explain the core data type in Project Sidewalk: labels.

Conventions

Preview. The /v3 API is currently in preview. We may make breaking changes (including field renames) in place as we refine it, so depend on a specific response shape with care.

  • Query parameters use camelCase (for example minSeverity, regionId, validationStatus).
  • Output field names use snake_case consistently across every format — JSON, GeoJSON properties, CSV headers, and shapefile/GeoPackage fields (for example label_id, region_name, city_id).
  • Output format is selected with the filetype query parameter (for example ?filetype=csv); the HTTP Accept header is not used.

Labels

In Project Sidewalk, users navigate street view imagery and label sidewalk features (like curb ramps) as well as barriers (like surface problems), which are then geolocated by our tool (i.e., assigned a lat,lng). For each label, users can provide tags, a severity rating, and an open-ended description. For quality control, labels are also validated by other users in tools like Validator, LabelMap, or Gallery. You can filter labels by their validation ratings.

You can download either the raw label dataset or label clusters.

Label Types

Project Sidewalk has the following label types (see the Label Types API):

Label Tags

Each label can have one or more tags for more detailed categorization. These tags are customizable per city, reflecting the diverse needs of different communities, geographies, and sidewalk designs. Below is a summary of available tags by label type (see the Label Tags API):

Metadata APIs

We have four Metadata APIs:

Label Data APIs

We provide two different labeling datasets plus an aggregated version (by street) along with validation data.

  • Raw Labels: Individual geolocated labels provided by our users.
  • Label Clusters (recommended): Because the same sidewalk feature/barrier could be labeled by multiple users or even the same user from different street view images (i.e., from different perspectives), we use a custom clustering algorithm to group labels together.
  • Streets: Labeling data organized per street.
  • Validations: User judgments of label data.

Access Score APIs

Inspired by WalkScore, we also compute an aggregate AccessScore based on Project Sidewalk data. AccessScore extends the method from Li et al. (Urban Access 2022) by weighting each feature by its severity/quality rating and its tags. These scoring algorithms are experimental and the weights are subject to change; you can also compute your own indices via the Labels API.

  • AccessScore: Streets: AccessScore for individual streets (GET /v3/api/accessScoreStreets).
  • AccessScore: Regions: AccessScore for regions (neighborhoods), length-weighted across their streets (GET /v3/api/accessScoreRegions).

Both endpoints accept the standard geo-filters (bbox, regionId, regionName) and output formats (filetype= geojson [default], csv, shapefile, geopackage).

How the score is computed:

  • Each clustered label contributes a weight: positive features (curb ramps, crosswalks) are rated on a Good/Okay/Bad quality scale (a Bad one counts against the score); negative features (missing curb ramps, obstacles, surface problems) are rated Low/Medium/High severity; pedestrian signals and missing sidewalks have no rating and contribute a fixed amount for their presence.
  • Certain tags adjust the weight further (e.g. a signal tagged hard to reach buttons counts negatively).
  • A street's score is the logistic (sigmoid) of the summed weights, mapped to (0, 1) — higher is more accessible.
  • A region's score is the street-length-weighted mean of its audited streets' scores; coverage reports the fraction of the region's streets that have been audited.

Stats API

Finally, we also provide basic statistics about Project Sidewalk data and users.

  • Overall Stats: Basic data stats, including number of users, kilometers audited, label counts (broken down by label type), accuracy, severity.
  • User Stats: Basic user stats, including total labels placed, validations, meters explored. The IDs for users are anonymized but persist over time.

Contribute

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

Project Sidewalk in Your City!

If you are interested in bringing Project Sidewalk to your city, please read our Wiki page.

On This Page