The Street Types API provides information about the different types of streets (way types) used by Project Sidewalk. Project Sidewalk pre-filters streets based on their OpenStreetMap classification (e.g., residential, primary, secondary) to ensure that the data collected is relevant and useful for sidewalks. Note: each Project Sidewalk city may have a different set of street types.
You can filter streets by type or analyze the correspondence between problem labels and street types using the Streets API.
Below is a live Street Types API preview of the distribution of street segments by street type used by Project Sidewalk in San Pedro Garza García, México, sorted by prevalence:
Retrieve a list of all street types with their metadata and counts.
GET /v3/api/streetTypes
/v3/api/streetTypes Get all street types in JSON
On success, the API returns an HTTP 200 OK status code and a JSON object containing an array of street types.
{
"status": "OK",
"street_types": [
{
"name": "residential",
"description": "Roads that primarily provide access to residential properties and housing developments. These are generally low-speed with traffic calming measures, designed for local access rather than through traffic. In urban areas, they typically form the bulk of the street network within neighborhoods.",
"count": 1243
},
{
"name": "primary",
"description": "Major highways forming a key part of a regional road network, connecting larger towns and cities. In urban areas, these often function as arterial roads with significant traffic volume. In less developed areas, road surface quality may vary considerably, as the classification is based on the road's importance in the network hierarchy rather than its physical characteristics.",
"count": 87
},
// ... more street types
]
}
| Field | Type | Description |
|---|---|---|
status |
string |
Always "OK" for successful responses. |
street_types |
array |
Array of street type objects. |
street_types[].name |
string |
The OpenStreetMap highway tag value for this street type (e.g., "residential", "primary"). |
street_types[].description |
string |
Human-readable description of the street type according to OpenStreetMap standards. |
street_types[].count |
integer |
Number of street segments with this type in the database. |
If an error occurs, the API will return an appropriate HTTP status code and a JSON response body containing details about the error.
500 Internal Server Error: An unexpected error occurred on the server.503 Service Unavailable: The server is temporarily unable to handle the request (e.g., during maintenance).All errors are returned as RFC 7807 “problem details” with the application/problem+json content type and the following structure:
{
"type": "about:blank", // RFC 7807 problem-type URI ("about:blank" means no type beyond the status)
"title": "Invalid Parameter", // Short, human-readable summary of the problem type (stable for a given code)
"status": 400, // HTTP status code (also repeated in the body)
"detail": "Invalid value for the bbox parameter. Expected format: minLng,minLat,maxLng,maxLat.", // This occurrence
"code": "INVALID_PARAMETER", // Stable, machine-readable error code you can branch on
"parameter": "bbox" // Extension member: the specific parameter at fault (omitted when not applicable)
}
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.