Download Data with the Sensor Data Download Tool

This community article refers to a method of downloading data that has been discontinued. We now recommend using our Data Download Tool, which uses the PurpleAir API.


The “Sensor data download tool” page allows users to download PurpleAir sensor data. You can read about how to access this tool here. Depending on how this page was accessed, there will be a vertical list of at least one sensor that you can download data from. Each sensor has two channels (A and B). Each channel has two data sets referred to as Primary Data and Secondary Data. Each of the four data sets holds unique data that can be downloaded. Lists explaining the data in these sets can be found below.

At the top of the page, enter the start and end date for the data you want to collect. To the right of those fields, set the average in minutes of the data entries you are collecting.

Once a start date, end date, and average have been entered, the sensors and channels you want to collect data from must now be selected. To the left of each channel, there is a checkbox. Check the boxes of every channel you want to collect data from. More information about the data that each channel contains can be found below.

At the top-left corner of the page, you can click “All” to select all available channels or “None” to deselect all available channels.

Now that the wanted channels have been selected, click “Download Selected” in the top-right corner to download all data sets of each selected channel.

Data can be downloaded for individual channels without selecting them by clicking the “Download Primary” or “Download Secondary” buttons.

The following lists contain the data found in each unique data set:

Channel A

  • Primary Data
    • field1: PM1.0 (CF=1) ug/m3
    • field2: PM2.5 (CF=1) ug/m3
    • field3: PM10.0 (CF=1) ug/m3
    • field4: Uptime (Minutes)
    • field5: RSSI (WiFi Signal Strength)
    • field6: Temperature (F)
    • field7: Humidity (%)
    • field8: PM2.5 (CF=ATM) ug/m3
  • Secondary Data
    • field1: 0.3um particles/deciliter
    • field2: 0.5um particles/deciliter
    • field3: 1.0um particles/deciliter
    • field4: 2.5um particles/deciliter
    • field5: 5.0um particles/deciliter
    • field6: 10.0um particles/deciliter
    • field7: PM1.0 (CF=ATM) ug/m3
    • field8: PM10 (CF=ATM) ug/m3

Channel B

  • Primary Data

    • field1: PM1.0 (CF=1) ug/m3
    • field2: PM2.5 (CF=1) ug/m3
    • field3: PM10.0 (CF=1) ug/m3
    • field4: Free HEAP memory
    • field5: ADC0 (analog input) voltage
    • field6: FIRMWARE 2.5 and up: Atmospheric Pressure
    • field7: FIRMWARE 4.10 and up: Bosch BSEC IAQ when BME680 gas sensor is present
    • field8: PM2.5 (CF=ATM) ug/m3
  • Secondary Data

    • field1: 0.3um particles/deciliter
    • field2: 0.5um particles/deciliter
    • field3: 1.0um particles/deciliter
    • field4: 2.5um particles/deciliter
    • field5: 5.0um particles/deciliter
    • field6: 10.0um particles/deciliter
    • field7: PM1.0 (CF=ATM) ug/m3
    • field8: PM10 (CF=ATM) ug/m3

All timestamps are in UTC.

PurpleAir sensors send primary and secondary data to our server every two minutes.