# API

**URL:** https://community.purpleair.com/c/data/api/18.md

[Latest](https://community.purpleair.com/latest.md) · [Categories](https://community.purpleair.com/categories.md)

---

## [About the PurpleAir API](https://community.purpleair.com/t/about-the-purpleair-api/7145)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 4\
**Last updated:** [September 1, 2026, 7:20pm UTC](https://community.purpleair.com/t/about-the-purpleair-api/7145 "2026-09-01T19:20:13Z")

</div>

The PurpleAir API The PurpleAir API is a web service that allows you to obtain air quality data reported by PurpleAir sensors. This is an extensive dataset going back to early 2016. Users wanting to jump straight into …

---

## [PurpleAir Data Download Tool](https://community.purpleair.com/t/purpleair-data-download-tool/3787)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 18\
**Last updated:** [September 5, 2025, 7:11pm UTC](https://community.purpleair.com/t/purpleair-data-download-tool/3787 "2025-09-05T19:11:22Z")

</div>

This article is related to the PurpleAir API. If you are unfamiliar with it, check out our About the PurpleAir API page to get started. The PurpleAir Data Download Tool is an open-source tool for downloading PurpleAir…

---

## [About the API category](https://community.purpleair.com/t/about-the-api-category/146)

<div class="topic-metadata">

**Author:** [@Adrian](https://community.purpleair.com/u/Adrian)\
**Replies:** 0\
**Last updated:** [October 22, 2021, 11:18pm UTC](https://community.purpleair.com/t/about-the-api-category/146 "2021-10-22T23:18:34Z")

</div>

The PurpleAir API provides a way to programmatically interact with PurpleAir sensors and data. This category provides information and discussion around the API.

---

## [API Pricing](https://community.purpleair.com/t/api-pricing/4523)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 52\
**Last updated:** [August 25, 2026, 8:17pm UTC](https://community.purpleair.com/t/api-pricing/4523 "2026-08-25T20:17:13Z")

</div>

The PurpleAir API uses a points-based billing system. API calls consume points, and if you do not have enough points to make an API call, the API will return an error. If you are a PurpleAir sensor owner, you can get d…

---

## [US EPA Conversion: AQI 38; Woodsmoke: AQI 18. What's the "real" air quality?](https://community.purpleair.com/t/us-epa-conversion-aqi-38-woodsmoke-aqi-18-whats-the-real-air-quality/22874)

<div class="topic-metadata">

**Author:** [@TMEdelman](https://community.purpleair.com/u/TMEdelman)\
**Replies:** 0\
**Last updated:** [August 8, 2026, 12:38am UTC](https://community.purpleair.com/t/us-epa-conversion-aqi-38-woodsmoke-aqi-18-whats-the-real-air-quality/22874 "2026-08-08T00:38:38Z")

</div>

Hi, I can get my home interior to US EPA Conversion 2.5 PM to AQI 12 or so with air purifiers, and I typically close the windows at outside AQI 28. The readings above are for my Zen, outside on the second floor balcony. …

---

## [Is there a field that returns data with US EPA pm2.5 conversion formula applied?](https://community.purpleair.com/t/is-there-a-field-that-returns-data-with-us-epa-pm2-5-conversion-formula-applied/4593)

<div class="topic-metadata">

**Author:** [@Karen\_Wang](https://community.purpleair.com/u/Karen_Wang)\
**Replies:** 16\
**Last updated:** [March 4, 2026, 8:45pm UTC](https://community.purpleair.com/t/is-there-a-field-that-returns-data-with-us-epa-pm2-5-conversion-formula-applied/4593 "2026-03-04T20:45:46Z")

</div>

Hello, I was trying to pull sensor data for pm2.5 using the API. I noticed that there’s an option to apply US EPA conversion formula to the data directly in the data layer on the website. However, I did not find a corres…

---

## [Can't create API Key](https://community.purpleair.com/t/cant-create-api-key/22619)

<div class="topic-metadata">

**Author:** [@cchopper123](https://community.purpleair.com/u/cchopper123)\
**Replies:** 2\
**Last updated:** [July 30, 2026, 12:55am UTC](https://community.purpleair.com/t/cant-create-api-key/22619 "2026-07-30T00:55:31Z")

</div>

I can’t create an API Key. It says I am missing my last name but I already updated it.

---

## [Home Assistant / API key access to private sensor](https://community.purpleair.com/t/home-assistant-api-key-access-to-private-sensor/11508)

<div class="topic-metadata">

**Author:** [@ptr727](https://community.purpleair.com/u/ptr727)\
**Replies:** 3\
**Last updated:** [July 17, 2026, 7:19pm UTC](https://community.purpleair.com/t/home-assistant-api-key-access-to-private-sensor/11508 "2026-07-17T19:19:51Z")

</div>

Hi, long time user of HA and PurpleAir (custom integration and now native). I have an indoor and outdoor sensor, during the LA fires my neighbors found my sensors through the map, and expressed confusion why my (indoor)…

---

## [Invalid API Read Key](https://community.purpleair.com/t/invalid-api-read-key/22804)

<div class="topic-metadata">

**Author:** [@PaulMykolajtchuk](https://community.purpleair.com/u/PaulMykolajtchuk)\
**Replies:** 1\
**Last updated:** [July 16, 2026, 10:23pm UTC](https://community.purpleair.com/t/invalid-api-read-key/22804 "2026-07-16T22:23:08Z")

</div>

Good morning all, Currently am attempting to create an API read key in order to access historical data. However, when a new read key is created & enabled, I am getting 403 errors, & a warning label on the Data Download …

---

## [Trouble downloading sensor data](https://community.purpleair.com/t/trouble-downloading-sensor-data/22771)

<div class="topic-metadata">

**Author:** [@ReynaB](https://community.purpleair.com/u/ReynaB)\
**Replies:** 2\
**Last updated:** [June 25, 2026, 7:04pm UTC](https://community.purpleair.com/t/trouble-downloading-sensor-data/22771 "2026-06-25T19:04:11Z")

</div>

I am trying to download hourly pm2.5 data from all sensors in Texas, but I keep encountering the same issue within the Data Download Tool. It appears that sensors with a 6 digit sensor index keep reporting ‘No data found…

---

## [PurpleAir Download Tool](https://community.purpleair.com/t/purpleair-download-tool/12636)

<div class="topic-metadata">

**Author:** [@kitkat](https://community.purpleair.com/u/kitkat)\
**Replies:** 5\
**Last updated:** [June 24, 2026, 11:49pm UTC](https://community.purpleair.com/t/purpleair-download-tool/12636 "2026-06-24T23:49:26Z")

</div>

I am trying to download data from three sensors using the data download tool on MacOS. I have a read and write API key which I have entered into the tool, and I have no invalid inputs in the download tab when I attempt t…

---

## [API Points for Sensor Owners](https://community.purpleair.com/t/api-points-for-sensor-owners/7525)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 6\
**Last updated:** [June 16, 2026, 12:26am UTC](https://community.purpleair.com/t/api-points-for-sensor-owners/7525 "2026-06-16T00:26:17Z")

</div>

Since the release of the points-based billing system in the PurpleAir API, several PurpleAir Community members have come to us with concerns regarding how this system is intended to work for PurpleAir sensor owners. In t…

---

## [Request for PurpleAir API Access for Academic Disaster Detection Project (CRISIS-AI)](https://community.purpleair.com/t/request-for-purpleair-api-access-for-academic-disaster-detection-project-crisis-ai/22639)

<div class="topic-metadata">

**Author:** [@Manya\_C\_P](https://community.purpleair.com/u/Manya_C_P)\
**Replies:** 2\
**Last updated:** [April 27, 2026, 12:04am UTC](https://community.purpleair.com/t/request-for-purpleair-api-access-for-academic-disaster-detection-project-crisis-ai/22639 "2026-04-27T00:04:06Z")

</div>

Hello PurpleAir team, I am working on an academic AI project called CRISIS-AI (Disaster Detection and Response System). The system integrates multiple data sources such as air quality, weather, satellite, and sensor da…

---

## [Do API keys ever expire?](https://community.purpleair.com/t/do-api-keys-ever-expire/22646)

<div class="topic-metadata">

**Author:** [@developerAQ](https://community.purpleair.com/u/developerAQ)\
**Replies:** 0\
**Last updated:** [April 24, 2026, 8:02pm UTC](https://community.purpleair.com/t/do-api-keys-ever-expire/22646 "2026-04-24T20:02:36Z")

</div>

Hello, I was wondering if API keys ever expire? I’m handing this project off to another team for long term maintenance and they were wondering this as well.

---

## [API Fields Descriptions](https://community.purpleair.com/t/api-fields-descriptions/4652)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 19\
**Last updated:** [February 18, 2026, 10:05pm UTC](https://community.purpleair.com/t/api-fields-descriptions/4652 "2026-02-18T22:05:49Z")

</div>

This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. This list contains definitions for fields that can be used with the historical API. The left …

---

## [Max Daily Pm2.5 Values?](https://community.purpleair.com/t/max-daily-pm2-5-values/22510)

<div class="topic-metadata">

**Author:** [@qdmchenry](https://community.purpleair.com/u/qdmchenry)\
**Replies:** 1\
**Last updated:** [January 27, 2026, 9:55pm UTC](https://community.purpleair.com/t/max-daily-pm2-5-values/22510 "2026-01-27T21:55:23Z")

</div>

Hi, I’ve been using the API to display hourly average PM2.5 for a while - now have a specific one-time use case for plotting the maximum recorded PM2.5 value for a day, per-sensor. Is this possible through a different e…

---

## [Syncing PurpleAir data to Notion](https://community.purpleair.com/t/syncing-purpleair-data-to-notion/22375)

<div class="topic-metadata">

**Author:** [@ma\_r](https://community.purpleair.com/u/ma_r)\
**Replies:** 0\
**Last updated:** [October 13, 2025, 3:23pm UTC](https://community.purpleair.com/t/syncing-purpleair-data-to-notion/22375 "2025-10-13T15:23:57Z")

</div>

Hi all, has anyone synced PurpleAir readings into a Notion database using the Notion API? I want to pull PM2.5, AQI, sensor ID, location then write them to Notion so teammates can tag events and add notes. Tips on which …

---

## [How to Get Historical Sensor Data Step-by-Step Using the Data Download Tool](https://community.purpleair.com/t/how-to-get-historical-sensor-data-step-by-step-using-the-data-download-tool/11934)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 0\
**Last updated:** [August 29, 2025, 8:26pm UTC](https://community.purpleair.com/t/how-to-get-historical-sensor-data-step-by-step-using-the-data-download-tool/11934 "2025-08-29T20:26:00Z")

</div>

The following guide is meant to provide clear steps for retrieving historical data from a sensor using our Data Download Tool. For a more complex and comprehensive introduction to our API, you can read our About the Pur…

---

## [Issue with PurpleAir Group – Sensors Disappeared After API Call](https://community.purpleair.com/t/issue-with-purpleair-group-sensors-disappeared-after-api-call/12639)

<div class="topic-metadata">

**Author:** [@Charalampos\_Chatzidi](https://community.purpleair.com/u/Charalampos_Chatzidi)\
**Replies:** 4\
**Last updated:** [August 20, 2025, 2:47pm UTC](https://community.purpleair.com/t/issue-with-purpleair-group-sensors-disappeared-after-api-call/12639 "2025-08-20T14:47:03Z")

</div>

Hi everyone, I’m facing an issue with a sensor group I’ve been maintaining for years. The group used to contain over 300 sensors, and everything was working fine until today. This morning, I used the POST /v1/groups/{g…

---

## [How to Make Efficient API Calls](https://community.purpleair.com/t/how-to-make-efficient-api-calls/6906)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 0\
**Last updated:** [November 6, 2023, 10:23pm UTC](https://community.purpleair.com/t/how-to-make-efficient-api-calls/6906 "2023-11-06T22:23:00Z")

</div>

This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. This article outlines many ways that you can reduce the points usage of your API calls. These…

---

## [Contradictory cf Information in API Docs](https://community.purpleair.com/t/contradictory-cf-information-in-api-docs/9827)

<div class="topic-metadata">

**Author:** [@Sina\_Hasheminassab](https://community.purpleair.com/u/Sina_Hasheminassab)\
**Replies:** 1\
**Last updated:** [June 17, 2025, 9:12pm UTC](https://community.purpleair.com/t/contradictory-cf-information-in-api-docs/9827 "2025-06-17T21:12:42Z")

</div>

I find the information about cf=1 and cf=atm in the API documentation confusing. In one section, it says “pm2.5\_a returns channel A. This is equivalent to pm2.5\_atm\_a for sensors registered as indoor, and pm2.5\_cf\_1\_a fo…

---

## [PurpleAir Data Migration to BigQuery and a New API](https://community.purpleair.com/t/purpleair-data-migration-to-bigquery-and-a-new-api/295)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 9\
**Last updated:** [April 28, 2025, 2:35pm UTC](https://community.purpleair.com/t/purpleair-data-migration-to-bigquery-and-a-new-api/295 "2025-04-28T14:35:38Z")

</div>

This API information is from May of 2022. The API update occurred on July 18, 2022. For more information, view this post: https://community.purpleair.com/t/new-version-of-the-purpleair-api-on-july-18th/1251. For the la…

---

## [What is the Difference Between CF=1, ATM, and ALT?](https://community.purpleair.com/t/what-is-the-difference-between-cf-1-atm-and-alt/6442)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 23\
**Last updated:** [March 22, 2025, 3:43pm UTC](https://community.purpleair.com/t/what-is-the-difference-between-cf-1-atm-and-alt/6442 "2025-03-22T15:43:17Z")

</div>

This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. PurpleAir devices use Plantower laser counters to estimate the number of particles that pass …

---

## [Making API Calls with the PurpleAir API](https://community.purpleair.com/t/making-api-calls-with-the-purpleair-api/180)

<div class="topic-metadata">

**Author:** [@Ethan](https://community.purpleair.com/u/Ethan)\
**Replies:** 18\
**Last updated:** [March 20, 2025, 5:45pm UTC](https://community.purpleair.com/t/making-api-calls-with-the-purpleair-api/180 "2025-03-20T17:45:43Z")

</div>

This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. This guide will help you understand the basics of sending HTTP requests and making API call…

---

## [API data varies from Local Data](https://community.purpleair.com/t/api-data-varies-from-local-data/11930)

<div class="topic-metadata">

**Author:** [@Douglas\_Sirkka](https://community.purpleair.com/u/Douglas_Sirkka)\
**Replies:** 3\
**Last updated:** [March 15, 2025, 9:17am UTC](https://community.purpleair.com/t/api-data-varies-from-local-data/11930 "2025-03-15T09:17:46Z")

</div>

Hi, I am quite new to accessing this API. When get the json from my sensor locally, I see what I see on the Purple Air Real Time Map - An AQI of 93. When I access the data from the API, I see it as much lower - 32.6. …

---

## [Is my raw data available?](https://community.purpleair.com/t/is-my-raw-data-available/8856)

<div class="topic-metadata">

**Author:** [@PurpleAir](https://community.purpleair.com/u/PurpleAir)\
**Replies:** 1\
**Last updated:** [June 19, 2024, 4:23pm UTC](https://community.purpleair.com/t/is-my-raw-data-available/8856 "2024-06-19T16:23:40Z")

</div>

I have been doing a citizen science project on PM2.5 and have downloaded a number of graphs over the past few months. I now wonder if the raw data is available on the server in case someone asks for it. Is it? How can I…

---

## [Filtrete Android App keeps loosing connection with PurpleAir air quality monitor](https://community.purpleair.com/t/filtrete-android-app-keeps-loosing-connection-with-purpleair-air-quality-monitor/11208)

<div class="topic-metadata">

**Author:** [@Frank\_C](https://community.purpleair.com/u/Frank_C)\
**Replies:** 3\
**Last updated:** [January 16, 2025, 9:57pm UTC](https://community.purpleair.com/t/filtrete-android-app-keeps-loosing-connection-with-purpleair-air-quality-monitor/11208 "2025-01-16T21:57:41Z")

</div>

I have a new PurpleAir Zen that is connected to my WiFi and is on the PurpleAir map. When I add it to the Filtrete app, it stays Green for 5 - 10 minutes and then the Filtrete app turns it gray and erroneously reports it…

---

## [Can I be OK'd to download data from my own sensors?](https://community.purpleair.com/t/can-i-be-okd-to-download-data-from-my-own-sensors/11078)

<div class="topic-metadata">

**Author:** [@Lance](https://community.purpleair.com/u/Lance)\
**Replies:** 1\
**Last updated:** [January 7, 2025, 3:34am UTC](https://community.purpleair.com/t/can-i-be-okd-to-download-data-from-my-own-sensors/11078 "2025-01-07T03:34:29Z")

</div>

I tried to download data from my own (6) sensors using the PurpleAir Downlaod Tool, but got a 402 message that indicated I needed to buy some points. I understand that you want to allow owners to download their own sens…

---

## [Points update?](https://community.purpleair.com/t/points-update/11065)

<div class="topic-metadata">

**Author:** [@dpattee](https://community.purpleair.com/u/dpattee)\
**Replies:** 2\
**Last updated:** [January 7, 2025, 1:39am UTC](https://community.purpleair.com/t/points-update/11065 "2025-01-07T01:39:49Z")

</div>

Back in 2023 I tried integrating a Purple sensor in to my home automation system, the plugin blew through my “points” and I abandoned it and just used my AirLink data. I am switching HA programs (to ‘home assistant’) an…

---

## [Historical API end\_timestamp incorrect](https://community.purpleair.com/t/historical-api-end-timestamp-incorrect/10989)

<div class="topic-metadata">

**Author:** [@cdaringe](https://community.purpleair.com/u/cdaringe)\
**Replies:** 1\
**Last updated:** [December 23, 2024, 8:30pm UTC](https://community.purpleair.com/t/historical-api-end-timestamp-incorrect/10989 "2024-12-23T20:30:44Z")

</div>

Hi all! Problem The returned historical API response end\_timestamp field is returning a much later timestamp than any of the returned data, which seems to be new/changed/breaking behavior. Example I make a call with th…

[Next page](https://community.purpleair.com/c/data/api/18.md?page=1)
