Schemas
AQHISchema
scorebanddescriptioncolourAQScoreRequestSchema
Wi-Fi scan to resolve server-side, strongest first.
WGS-84 latitude.
WGS-84 longitude.
Optional caller self-identification for usage attribution (e.g. synthetic_probe). Recognised labels are attributed as client:<name>; unrecognised ones fall back to the endpoint's own label. Never affects the answer.
AQScoreResponseSchema
scoreClean Air Score: 100 = cleanest, 0 = worst.
ttlSeconds until the client should poll again.
ConnectionTokenResponseSchema
connection_idnamescopesThe capabilities the user granted this connection.
tokenThe bearer token — shown once, store it securely.
EnrichRouteRequest
Required when the waypoints carry no timestamps; used with the activity's estimated speed to derive per-waypoint times.
activity_typeenvironment_typeEnrichedRoute
waypoints[lat, lon] per waypoint.
Route-level air-quality summary.
One health metric only — the Clean Air Score, banded with the same vocabulary the AirTrack app shows (Excellent … Very Poor). The AQHI the score derives from stays internal: publishing both invited misreading, since the two run in opposite directions (score: higher is cleaner; AQHI: higher is worse).
Map of measure name to a list of values parallel to waypoints (element i describes waypoints[i] at its point in time). Keys are clean_air_score (0-100, higher is cleaner, adjusted for the request's activity and environment) and pollutant concentrations in µg/m³ — typically pm25, pm10, no2 and o3. Only measures with data for this route appear; null entries mark waypoints a measure could not be computed for.
ErrorResponse
detailA human-readable description of what went wrong.
ForecastRequestSchema
datetimezoneIANA timezone name for the date.
WGS-84 latitude. Omit both coordinates to use the caller's IP location.
WGS-84 longitude.
activity_typeenvironment_typeForecastResponse
locationHuman-readable name of the forecast location.
Shared time axis, epoch seconds (parallel to each measure).
Map of measure name to a list of hourly values parallel to timestamps (element i is the value at timestamps[i]). Keys are clean_air_score (0-100, higher is cleaner) and pollutant concentrations in µg/m³ — typically pm25, pm10, no2, o3 and so2. Only measures with data for this location appear; null entries mark hours a measure has no value for.
LocationInput
latitudelongitudePlanActivityType
Activity types supported by A-B route planning.
PlanPollResponse
statusPlanResult
activity_typeActivity types supported by A-B route planning.
original_distanceBaseline route distance in metres.
best_route_indexPlanRouteRequest
A single geographic point for a planning request.
A single geographic point for a planning request.
activity_typeActivity types supported by A-B route planning.
Optional UTC start time for the route. Defaults to now.
PlanRouteSubmitResponseSchema
request_idPlannedRoute
waypoints[lat, lon] per waypoint.
Route-level air-quality summary.
One health metric only — the Clean Air Score, banded with the same vocabulary the AirTrack app shows (Excellent … Very Poor). The AQHI the score derives from stays internal: publishing both invited misreading, since the two run in opposite directions (score: higher is cleaner; AQHI: higher is worse).
distanceTotal route distance in metres.
distance_deltaDistance difference from the baseline route in metres (positive = longer).
clean_air_score_delta_pctPercentage improvement in Clean Air Score over the baseline route.
Why this alternative was surfaced — a human-readable goal label.
Map of measure name to a list of values parallel to waypoints (element i describes waypoints[i] at its point in time). Keys are clean_air_score (0-100, higher is cleaner, adjusted for the request's activity and environment) and pollutant concentrations in µg/m³ — typically pm25, pm10, no2 and o3. Only measures with data for this route appear; null entries mark waypoints a measure could not be computed for.
Percentage less pollution inhaled vs the baseline route (positive = cleaner); null when there is no comparable baseline.
Estimated duration in seconds.
QuotaResponse
usedlimitremainingdaily_useddaily_limitdaily_remainingRedeemPairingCodeSchema
code^\d{6}$ · requiredThe 6-digit code the user generated in the app.
nameA label to identify this connection.
RouteGoal
titledescriptionRouteSummary
Time-weighted Clean Air Score for the route (0-100, higher is cleaner) with its band number, label and colour.
Relative exposure dose integrated over the route's duration — higher means more inhaled risk. Unitless; comparable across routes and with route planning's dose.
Mean concentration per pollutant, µg/m³.
WaypointInput
latWGS-84 latitude.
lonWGS-84 longitude.
Timestamp at this waypoint (ISO-8601); see the mode note above.
WifiAccessPointSchema
macThe access point's BSSID.
rssiSignal strength in dBm (negative).

