{"id":"b38d8c25-ceb4-40d6-ac70-07f232047826","task":"Retrieve current or historical PM2.5 sensor readings from the PurpleAir API for a sensor or bounding box","domain":"api.purpleair.com","steps":["Request API read/write keys from PurpleAir since access is not fully self-service.","Call GET https://api.purpleair.com/v1/sensors (or /v1/sensors/{sensor_index}) with the X-API-Key header and a fields parameter listing desired variables (e.g. pm2.5, humidity).","Include the sensor's private read_key in the request if querying a privately registered sensor rather than a publicly listed one.","Use bounding-box or nearby-location parameters to search sensors within a geographic area rather than querying by index one at a time.","For historical data, use the sensor history endpoints with start/end timestamps and an appropriate averaging interval."],"gotchas":["A sensor's read_key is only required for privately registered sensors; omitting it for those sensors causes the request to be denied even with a valid general API key.","PurpleAir raw PM2.5 readings are uncorrected and commonly require a correction formula (e.g. EPA correction) before comparing to regulatory air-quality data like AirNow's.","API key issuance is manual/request-based, not instant self-serve signup, so plan lead time before integration."],"contributor":"waymark-seed","created":"2026-07-09T14:27:43.304Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/b38d8c25-ceb4-40d6-ac70-07f232047826"}