Overall Stats API

The Overall Stats API provides project-wide statistics about Project Sidewalk's data collection efforts in Mexiko-Stadt, Mexiko, including total distance covered, label counts by type, user participation metrics, and data quality indicators.

Overall Stats API Preview

Below is a live preview of the Overall Stats API data for Mexiko-Stadt, Mexiko:

Loading project statistics...

Endpoint

Retrieve overall statistics for the entire Project Sidewalk dataset.

GET /v3/api/overallStats

Examples

/v3/api/overallStats?filetype=json Get overall stats for Mexiko-Stadt, Mexiko in JSON (default)

/v3/api/overallStats?filetype=csv Get overall stats for Mexiko-Stadt, Mexiko in CSV

Quick Download

Download overall statistics data directly in your preferred format:

Query Parameters

This endpoint accepts the following optional query parameters.

Parameter Type Description
filetype string Specify the output format. Options: json (default), csv.
filterLowQuality boolean When set to true, excludes data from low-quality contributors to provide more reliable statistics. Default: false (includes all data).

Responses

Success Response (200 OK)

On success, the API returns an HTTP 200 OK status code and the requested data in the specified filetype format.

JSON Format (Default)

Returns a JSON object with comprehensive project statistics:

{
    "launchDate": "2021-06-15T00:00:00Z",
    "avgTimestampLast100Labels": "2023-09-25T14:32:47Z",
    "kmExplored": 1834.26,
    "kmExploreNoOverlap": 1523.75,
    "nUsers": 4287,
    "nExplorers": 3892,
    "nValidators": 895,
    "nRegistered": 3456,
    "nAnon": 831,
    "nTurker": 214,
    "nResearcher": 42,
    "totalLabels": 183427,
    "severityByLabelType": {
        "CurbRamp": {
            "n": 72964,
            "nWithSeverity": 61837,
            "severityMean": 1.2,
            "severitySD": 0.5
        },
        "NoCurbRamp": {
            "n": 35682,
            "nWithSeverity": 31245,
            "severityMean": 3.8,
            "severitySD": 0.9
        },
        "Obstacle": {
            "n": 14256,
            "nWithSeverity": 12589,
            "severityMean": 2.7,
            "severitySD": 1.1
        },
        "SurfaceProblem": {
            "n": 22784,
            "nWithSeverity": 19873,
            "severityMean": 2.4,
            "severitySD": 1.2
        },
        "NoSidewalk": {
            "n": 15682,
            "nWithSeverity": 14352,
            "severityMean": 4.2,
            "severitySD": 0.7
        },
        "Crosswalk": {
            "n": 9427,
            "nWithSeverity": 0,
            "severityMean": null,
            "severitySD": null
        },
        "Signal": {
            "n": 7851,
            "nWithSeverity": 6284,
            "severityMean": 3.1,
            "severitySD": 1.0
        },
        "Occlusion": {
            "n": 3475,
            "nWithSeverity": 0,
            "severityMean": null,
            "severitySD": null
        },
        "Other": {
            "n": 1306,
            "nWithSeverity": 582,
            "severityMean": 2.9,
            "severitySD": 1.4
        }
    },
    "nValidations": 125834,
    "accuracyByLabelType": {
        "CurbRamp": {
            "n": 54321,
            "nAgree": 48923,
            "nDisagree": 5398,
            "accuracy": 0.90
        },
        "NoCurbRamp": {
            "n": 21456,
            "nAgree": 18237,
            "nDisagree": 3219,
            "accuracy": 0.85
        },
        "Obstacle": {
            "n": 8932,
            "nAgree": 7324,
            "nDisagree": 1608,
            "accuracy": 0.82
        },
        "SurfaceProblem": {
            "n": 12879,
            "nAgree": 10561,
            "nDisagree": 2318,
            "accuracy": 0.82
        },
        "NoSidewalk": {
            "n": 9871,
            "nAgree": 8765,
            "nDisagree": 1106,
            "accuracy": 0.89
        },
        "Crosswalk": {
            "n": 6543,
            "nAgree": 5982,
            "nDisagree": 561,
            "accuracy": 0.91
        },
        "Signal": {
            "n": 5432,
            "nAgree": 4812,
            "nDisagree": 620,
            "accuracy": 0.89
        },
        "Occlusion": {
            "n": 2154,
            "nAgree": 1723,
            "nDisagree": 431,
            "accuracy": 0.80
        },
        "Other": {
            "n": 743,
            "nAgree": 521,
            "nDisagree": 222,
            "accuracy": 0.70
        }
    }
}
JSON Field Descriptions

The response includes the following fields:

Field Type Description
launchDatestringISO 8601 formatted date when Project Sidewalk was launched in this city.
avgTimestampLast100LabelsstringISO 8601 formatted average timestamp of the 100 most recent labels, indicating data recency.
kmExplorednumberTotal kilometers of streets explored by all users, including overlapping segments.
kmExploreNoOverlapnumberTotal kilometers of unique streets explored, excluding overlapping segments.
nUsersintegerTotal number of users who have contributed to Project Sidewalk.
nExplorersintegerNumber of users who have participated in exploration/labeling tasks.
nValidatorsintegerNumber of users who have participated in validation tasks.
nRegisteredintegerNumber of registered users with accounts.
nAnonintegerNumber of anonymous users.
nTurkerintegerNumber of users from crowdsourcing platforms.
nResearcherintegerNumber of users with researcher role.
totalLabelsintegerTotal number of accessibility labels placed by all users.
severityByLabelTypeobjectStatistics about severity ratings by label type.
severityByLabelType.[type].nintegerTotal number of labels of this type.
severityByLabelType.[type].nWithSeverityintegerNumber of labels of this type that have severity ratings.
severityByLabelType.[type].severityMeannumber | nullMean severity rating for this label type, or null if no severity ratings exist.
severityByLabelType.[type].severitySDnumber | nullStandard deviation of severity ratings for this label type, or null if insufficient data.
nValidationsintegerTotal number of validation judgments made across all labels.
accuracyByLabelTypeobjectStatistics about validation accuracy by label type.
accuracyByLabelType.[type].nintegerNumber of labels of this type that have been validated.
accuracyByLabelType.[type].nAgreeintegerNumber of validations agreeing with the label placement.
accuracyByLabelType.[type].nDisagreeintegerNumber of validations disagreeing with the label placement.
accuracyByLabelType.[type].accuracynumber | nullCalculated accuracy rate (nAgree / n) for this label type, or null if no validations.

CSV Format

If filetype=csv is specified, the response body will be CSV data with key-value pairs. Each row represents a different statistic or metric:

Launch Date,2021-06-15
Recent Labels Average Timestamp,2023-09-25T14:32:47Z
KM Explored,1834.26
KM Explored Without Overlap,1523.75
Total User Count,4287
Explore User Count,3892
Validate User Count,895
Registered User Count,3456
Anonymous User Count,831
Turker User Count,214
Researcher User Count,42
Total Label Count,183427
CurbRamp Count,72964
CurbRamp Count With Severity,61837
CurbRamp Severity Mean,1.2
CurbRamp Severity SD,0.5
NoCurbRamp Count,35682
NoCurbRamp Count With Severity,31245
NoCurbRamp Severity Mean,3.8
NoCurbRamp Severity SD,0.9
...
Total Validations,125834
CurbRamp Labels Validated,54321
CurbRamp Agreed Count,48923
CurbRamp Disagreed Count,5398
CurbRamp Accuracy,0.90
...
CSV Format Description

In CSV format, each row represents a specific metric in a key-value format:

  • Top-level statistics are represented directly as named rows (e.g., "KM Explored,1834.26")
  • Nested statistics like severityByLabelType and accuracyByLabelType are flattened into multiple rows with descriptive names
  • For each label type, severity stats are presented as four rows: Count, Count With Severity, Severity Mean, and Severity SD
  • For each label type, accuracy stats are presented as four rows: Labels Validated, Agreed Count, Disagreed Count, and Accuracy
  • This flat structure makes the data easy to parse and analyze in spreadsheet applications

Error Responses

If an error occurs, the API will return an appropriate HTTP status code and a JSON response body containing details about the error.

  • 400 Bad Request: Invalid parameter values.
  • 404 Not Found: The requested resource does not exist.
  • 500 Internal Server Error: An unexpected error occurred on the server.
  • 503 Service Unavailable: The server is temporarily unable to handle the request.

Error Response Body

Error responses include a JSON body with the following structure:

{
    "status": 400, // HTTP Status Code
    "code": "INVALID_PARAMETER", // Machine-readable error code
    "message": "Invalid value for filetype parameter. Expected 'csv' or 'json'.", // Human-readable description
    "parameter": "filetype" // Optional: The specific parameter causing the error
}

Data Analysis Tips

The Overall Stats API provides a comprehensive view of Project Sidewalk data. Here are some suggestions for effectively using this data:

  • Consider using filterLowQuality=true for more reliable analysis, especially when examining severity ratings
  • Compare accuracy rates across label types to identify which accessibility issues might be more ambiguous or difficult to detect
  • Use kmExplored vs. kmExploreNoOverlap to understand the level of redundancy in data collection
  • Look at avgTimestampLast100Labels to gauge how recently the data has been updated
  • Analyze the ratio of validators to explorers to understand community participation patterns

Related APIs

For more detailed analysis, consider using the Overall Stats API in conjunction with:

  • User Stats API - Get statistics for individual users and their contributions
  • Raw Labels API - Access the individual label data with geographic information
  • Label Types API - Get information about the different types of accessibility issues
  • Cities API - See all cities where Project Sidewalk is deployed

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