Pm2.5 data differs between JSON and API

I’m downloading data directly from my own sensor (sensor index 256753). On the Purple Air map, this sensor is currently reporting a PM2.5 AQI value of 91. Similarly, if I access its json data directly from its local IP address, it reports a value of 92 for pm2.5_aqi and 91 for pm2.5_aqi_b. So far so good, everyone’s in agreement! Historical data downloaded from the map also shows a series of values around ~90.

But if I access the same sensor data via the API, it reports a value of 31.0 for pm2.5. All of the other various pm2.5 values are also in the ~30 range, none of them is near 90. And if I download the historical data from the API (I have to pick pm2.5_alt or pm2.5_atm since pm2.5 isn’t available for historical download for some reason), the recent numbers are also around ~30; there’s nothing around ~90.

What is going on with this discrepancy? Am I misunderstanding the meaning of these fields? Is there a dramatic difference in semantic meaning between the pm2.5 number in the API and the pm2.5_aqi value via direct JSON?

More to the point, how should I get the same number from the API that’s reported on the map?

Thank you!
David

Ah, the forum software linked me to this thread: How to Calculate the US EPA PM2.5 AQI

which answered the question. That is, the pm2.5 value reported by the API is a raw number, and needs to be converted to the value used by the EPA and shown on the map. No problem.

Does this mean that the JSON data retrieved directly from the sensor is already appropriately converted? It’s a curious difference. Did I miss a page that clarifies which values are raw and which are EPA-adjusted?

Thanks!
David

Hi David,

You are correct, the JSON data labeled “pm2.5_aqi” is adjusted to provide a US EPA AQI value. It is important to note that the non-converted values are also available as JSON data. Those would be the atm or cf_1 values.

You may be interested in reading What is the Difference Between CF=1, ATM, and ALT?.

Lastly, I don’t think we have this information expressly noted anywhere, we can look into doing that.