{"users":[{"id":4,"username":"PurpleAir","name":"","avatar_template":"/user_avatar/community.purpleair.com/purpleair/{size}/176_2.png","trust_level":4},{"id":4274,"username":"Kieran","name":"Kieran Berryman","avatar_template":"/user_avatar/community.purpleair.com/kieran/{size}/6220_2.png","primary_group_name":"Employees","flair_name":"Employees","flair_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/1X/c070e67c0a8595c5863e237bf9a9694f2d5b0772.png","flair_bg_color":"aa44aa","flair_color":"fff","flair_group_id":41,"admin":true,"moderator":true,"trust_level":4},{"id":8565,"username":"ptr727","name":"Pieter","avatar_template":"/user_avatar/community.purpleair.com/ptr727/{size}/6291_2.png","trust_level":1},{"id":6,"username":"Ethan","name":"Ethan","avatar_template":"/user_avatar/community.purpleair.com/ethan/{size}/177_2.png","trust_level":3},{"id":1274,"username":"rclevy","name":"Robert C Levy","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/6bbea6/{size}.png","trust_level":1},{"id":3648,"username":"Josh_PurpleAir","name":"Joshua","avatar_template":"/user_avatar/community.purpleair.com/josh_purpleair/{size}/2842_2.png","primary_group_name":"Employees","flair_name":"Employees","flair_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/1X/c070e67c0a8595c5863e237bf9a9694f2d5b0772.png","flair_bg_color":"aa44aa","flair_color":"fff","flair_group_id":41,"admin":true,"moderator":true,"trust_level":4},{"id":18625,"username":"NeemTree-Gilles-Lake","name":"PN","avatar_template":"/user_avatar/community.purpleair.com/neemtree-gilles-lake/{size}/9983_2.png","trust_level":1},{"id":1,"username":"Adrian","name":"Adrian","avatar_template":"/user_avatar/community.purpleair.com/adrian/{size}/611_2.png","admin":true,"moderator":true,"trust_level":4},{"id":21842,"username":"TMEdelman","name":null,"avatar_template":"/user_avatar/community.purpleair.com/tmedelman/{size}/11487_2.png","trust_level":0},{"id":3249,"username":"Karen_Wang","name":"Karen Wang","avatar_template":"/user_avatar/community.purpleair.com/karen_wang/{size}/2575_2.png","trust_level":1},{"id":4963,"username":"Tatian","name":"Tatian Greenleaf","avatar_template":"/user_avatar/community.purpleair.com/tatian/{size}/3751_2.png","trust_level":1},{"id":3461,"username":"cncmills","name":"Christopher Mills","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/c/f6c823/{size}.png","trust_level":0},{"id":1991,"username":"Christopher_Weyandt","name":"Christopher Weyandt","avatar_template":"/user_avatar/community.purpleair.com/christopher_weyandt/{size}/1622_2.png","trust_level":1},{"id":1206,"username":"Andrew","name":"Andrew","avatar_template":"/user_avatar/community.purpleair.com/andrew/{size}/1211_2.png","primary_group_name":"Employees","flair_name":"Employees","flair_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/1X/c070e67c0a8595c5863e237bf9a9694f2d5b0772.png","flair_bg_color":"aa44aa","flair_color":"fff","flair_group_id":41,"admin":true,"moderator":true,"trust_level":4},{"id":20305,"username":"cchopper123","name":"Chloe","avatar_template":"/user_avatar/community.purpleair.com/cchopper123/{size}/10818_2.png","trust_level":0},{"id":9420,"username":"ShawnBoyle","name":"Shawn Boyle","avatar_template":"/user_avatar/community.purpleair.com/shawnboyle/{size}/6816_2.png","primary_group_name":"Employees","flair_name":"Employees","flair_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/1X/c070e67c0a8595c5863e237bf9a9694f2d5b0772.png","flair_bg_color":"aa44aa","flair_color":"fff","flair_group_id":41,"admin":true,"moderator":true,"trust_level":4},{"id":21724,"username":"Octavius","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/o/f04885/{size}.png","trust_level":0},{"id":4162,"username":"Rich_Weinkauf","name":"Rich Weinkauf","avatar_template":"/user_avatar/community.purpleair.com/rich_weinkauf/{size}/3181_2.png","trust_level":2},{"id":21434,"username":"PaulMykolajtchuk","name":"Paul Mykolajtchuk","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/p/ed655f/{size}.png","trust_level":0},{"id":20586,"username":"ReynaB","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/9de053/{size}.png","trust_level":1},{"id":9412,"username":"kitkat","name":"Kat","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/b487fb/{size}.png","trust_level":0},{"id":18784,"username":"nency","name":null,"avatar_template":"https://avatars.discourse-cdn.com/v4/letter/n/5daacb/{size}.png","trust_level":0},{"id":20550,"username":"Mzr","name":"Mzr","avatar_template":"/user_avatar/community.purpleair.com/mzr/{size}/6011_2.png","trust_level":0},{"id":10017,"username":"Amarand","name":"Amarand","avatar_template":"/user_avatar/community.purpleair.com/amarand/{size}/7227_2.png","trust_level":1},{"id":8564,"username":"roarker","name":"Roark","avatar_template":"/user_avatar/community.purpleair.com/roarker/{size}/6356_2.png","trust_level":1},{"id":4604,"username":"Jbx","name":"Jesse Bond","avatar_template":"/user_avatar/community.purpleair.com/jbx/{size}/3475_2.png","trust_level":0},{"id":20308,"username":"Manya_C_P","name":"Manya C P ","avatar_template":"/user_avatar/community.purpleair.com/manya_c_p/{size}/6167_2.png","trust_level":0},{"id":876,"username":"carlkidcrypto-paa","name":"","avatar_template":"/user_avatar/community.purpleair.com/carlkidcrypto-paa/{size}/853_2.png","trust_level":2},{"id":20389,"username":"developerAQ","name":"","avatar_template":"/user_avatar/community.purpleair.com/developeraq/{size}/10858_2.png","trust_level":0},{"id":224,"username":"Lance","name":"Lance Arthur Wallace","avatar_template":"/user_avatar/community.purpleair.com/lance/{size}/422_2.png","trust_level":2},{"id":19360,"username":"Luca_Napora","name":"Luca Napora","avatar_template":"/user_avatar/community.purpleair.com/luca_napora/{size}/10325_2.png","trust_level":0},{"id":20016,"username":"IanB","name":"IanB","avatar_template":"/user_avatar/community.purpleair.com/ianb/{size}/6194_2.png","trust_level":0},{"id":19831,"username":"qdmchenry","name":"Quinn","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/q/bb73d2/{size}.png","trust_level":0},{"id":3752,"username":"Bugs","name":"","avatar_template":"/user_avatar/community.purpleair.com/bugs/{size}/2903_2.png","trust_level":1},{"id":1004,"username":"Scott_Beam","name":"Scott Beam","avatar_template":"/user_avatar/community.purpleair.com/scott_beam/{size}/954_2.png","trust_level":1},{"id":19546,"username":"wlandscape","name":"Joe I","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/w/e79b87/{size}.png","trust_level":0},{"id":19170,"username":"ma_r","name":"ma r","avatar_template":"/user_avatar/community.purpleair.com/ma_r/{size}/9447_2.png","trust_level":0},{"id":9414,"username":"Charalampos_Chatzidi","name":"Charalampos Chatzidiakos","avatar_template":"/user_avatar/community.purpleair.com/charalampos_chatzidi/{size}/5918_2.png","trust_level":0},{"id":2143,"username":"ltravis","name":"Laura Travis","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/l/ea5d25/{size}.png","trust_level":1},{"id":861,"username":"Sina_Hasheminassab","name":"Sina Hasheminassab","avatar_template":"/user_avatar/community.purpleair.com/sina_hasheminassab/{size}/832_2.png","trust_level":1},{"id":342,"username":"ewalks","name":"Ethan Walker","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/e/838e76/{size}.png","trust_level":1},{"id":505,"username":"pjrobertson","name":"Paddy","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/p/c57346/{size}.png","trust_level":0},{"id":9142,"username":"Matthew_Clifford","name":"m","avatar_template":"/user_avatar/community.purpleair.com/matthew_clifford/{size}/6647_2.png","trust_level":0},{"id":5475,"username":"Red","name":"Sue Kelly","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/59ef9b/{size}.png","trust_level":1},{"id":6768,"username":"Masoud.Ghr","name":"","avatar_template":"/user_avatar/community.purpleair.com/masoud.ghr/{size}/5144_2.png","trust_level":1},{"id":7433,"username":"EyasuLake","name":"Eyasu Lake","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/e/8797f3/{size}.png","trust_level":1},{"id":532,"username":"Vivek","name":"","avatar_template":"/user_avatar/community.purpleair.com/vivek/{size}/570_2.png","trust_level":0},{"id":8874,"username":"Stone_King","name":"Stone King","avatar_template":"/user_avatar/community.purpleair.com/stone_king/{size}/6454_2.png","trust_level":1},{"id":8879,"username":"Douglas_Sirkka","name":"Douglas Sirkka","avatar_template":"/user_avatar/community.purpleair.com/douglas_sirkka/{size}/6493_2.png","trust_level":0},{"id":8281,"username":"Frank_C","name":"Frank Columbus","avatar_template":"/user_avatar/community.purpleair.com/frank_c/{size}/6139_2.png","trust_level":0},{"id":441,"username":"dwhitemv","name":"Doug White","avatar_template":"/user_avatar/community.purpleair.com/dwhitemv/{size}/1508_2.png","trust_level":3},{"id":2919,"username":"dpattee","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/d/d26b3c/{size}.png","trust_level":1},{"id":8148,"username":"cdaringe","name":"Chris Dieringer","avatar_template":"/user_avatar/community.purpleair.com/cdaringe/{size}/5997_2.png","trust_level":0}],"primary_groups":[{"id":41,"name":"Employees"}],"flair_groups":[{"id":41,"name":"Employees","flair_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/1X/c070e67c0a8595c5863e237bf9a9694f2d5b0772.png","flair_bg_color":"aa44aa","flair_color":"fff"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/data/api/18?page=1","per_page":30,"topics":[{"fancy_title":"About the PurpleAir API","id":7145,"title":"About the PurpleAir API","slug":"about-the-purpleair-api","posts_count":3,"reply_count":0,"highest_post_number":9,"image_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/2X/1/1e6b800b8cd64487454b6e37782cacf03860badf.png","created_at":"2024-04-22T17:54:00.000Z","last_posted_at":"2026-07-17T19:21:56.122Z","bumped":true,"bumped_at":"2026-07-17T19:21:56.122Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"The PurpleAir API\nThe 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. \n\nUsers wanting to jump straight into &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":33859,"like_count":1,"has_summary":false,"last_poster_username":"ptr727","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41},{"extras":"latest","description":"Most Recent Poster","user_id":8565,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"PurpleAir Data Download Tool","id":3787,"title":"PurpleAir Data Download Tool","slug":"purpleair-data-download-tool","posts_count":19,"reply_count":11,"highest_post_number":20,"image_url":null,"created_at":"2023-03-07T19:19:00.000Z","last_posted_at":"2025-09-05T19:11:22.216Z","bumped":true,"bumped_at":"2025-09-05T19:11:22.216Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"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. \n\nThe PurpleAir Data Download Tool is an open-source tool for downloading PurpleAir&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":57762,"like_count":30,"has_summary":false,"last_poster_username":"NeemTree-Gilles-Lake","category_id":18,"op_like_count":6,"pinned_globally":true,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1274,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":3648,"primary_group_id":41,"flair_group_id":41},{"extras":"latest","description":"Most Recent Poster","user_id":18625,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"About the API category","id":146,"title":"About the API category","slug":"about-the-api-category","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2021-10-22T23:18:34.479Z","last_posted_at":"2021-10-22T23:18:34.487Z","bumped":true,"bumped_at":"2022-01-06T21:22:55.323Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"The PurpleAir API provides a way to programmatically interact with PurpleAir sensors and data. This category provides information and discussion around the API.","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":782,"like_count":0,"has_summary":false,"last_poster_username":"Adrian","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"US EPA Conversion: AQI 38; Woodsmoke: AQI 18. What&rsquo;s the &ldquo;real&rdquo; air quality?","id":22874,"title":"US EPA Conversion: AQI 38; Woodsmoke: AQI 18. What's the \"real\" air quality?","slug":"us-epa-conversion-aqi-38-woodsmoke-aqi-18-whats-the-real-air-quality","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-08-08T00:38:38.214Z","last_posted_at":"2026-08-08T00:38:38.316Z","bumped":true,"bumped_at":"2026-08-08T00:38:38.316Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi, \nI 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. &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":16,"like_count":0,"has_summary":false,"last_poster_username":"TMEdelman","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":21842,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Is there a field that returns data with US EPA pm2.5 conversion formula applied?","id":4593,"title":"Is there a field that returns data with US EPA pm2.5 conversion formula applied?","slug":"is-there-a-field-that-returns-data-with-us-epa-pm2-5-conversion-formula-applied","posts_count":17,"reply_count":13,"highest_post_number":18,"image_url":null,"created_at":"2023-05-21T18:55:11.084Z","last_posted_at":"2026-03-04T20:45:46.008Z","bumped":true,"bumped_at":"2026-08-07T18:34:27.591Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":2189,"like_count":16,"has_summary":false,"last_poster_username":"Andrew","category_id":18,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3249,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":4963,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3461,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":1991,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1206,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"Can&rsquo;t create API Key","id":22619,"title":"Can't create API Key","slug":"cant-create-api-key","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/optimized/2X/9/976919d265913d86c7970ce02628a59044f4595b_2_1024x512.png","created_at":"2026-04-10T03:04:29.689Z","last_posted_at":"2026-07-30T00:55:31.939Z","bumped":true,"bumped_at":"2026-07-30T00:55:31.939Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I can’t create an API Key. It says I am missing my last name but I already updated it.","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":132,"like_count":0,"has_summary":false,"last_poster_username":"Octavius","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":20305,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster, Accepted Answer","user_id":9420,"primary_group_id":41,"flair_group_id":41},{"extras":"latest","description":"Most Recent Poster","user_id":21724,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Home Assistant / API key access to private sensor","id":11508,"title":"Home Assistant / API key access to private sensor","slug":"home-assistant-api-key-access-to-private-sensor","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2025-02-02T15:50:32.632Z","last_posted_at":"2026-07-17T19:19:51.463Z","bumped":true,"bumped_at":"2026-07-17T19:19:51.463Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi, long time user of HA and PurpleAir (custom integration and now native). \nI have an indoor and outdoor sensor, during the LA fires my neighbors found my sensors through the map, and expressed confusion why my (indoor)&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":356,"like_count":2,"has_summary":false,"last_poster_username":"ptr727","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8565,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":4162,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Invalid API Read Key","id":22804,"title":"Invalid API Read Key","slug":"invalid-api-read-key","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2026-07-16T13:58:26.621Z","last_posted_at":"2026-07-16T22:23:08.243Z","bumped":true,"bumped_at":"2026-07-16T22:23:08.243Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Good morning all, \nCurrently am attempting to create an API read key in order to access historical data. However, when a new read key is created &amp; enabled, I am getting 403 errors, &amp; a warning label on the Data Download &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":42,"like_count":0,"has_summary":false,"last_poster_username":"ShawnBoyle","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":21434,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":9420,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"Trouble downloading sensor data","id":22771,"title":"Trouble downloading sensor data","slug":"trouble-downloading-sensor-data","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2026-06-15T18:54:55.867Z","last_posted_at":"2026-06-25T19:04:11.046Z","bumped":true,"bumped_at":"2026-06-25T19:04:11.046Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":41,"like_count":0,"has_summary":false,"last_poster_username":"Andrew","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":true,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":20586,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":1206,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"PurpleAir Download Tool","id":12636,"title":"PurpleAir Download Tool","slug":"purpleair-download-tool","posts_count":6,"reply_count":3,"highest_post_number":7,"image_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/optimized/2X/a/a9378087f5f2ccc7ace4d84678471c2fad018de8_2_1024x640.jpeg","created_at":"2025-06-03T23:00:14.221Z","last_posted_at":"2026-06-24T23:49:26.575Z","bumped":true,"bumped_at":"2026-06-24T23:49:26.575Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":390,"like_count":2,"has_summary":false,"last_poster_username":"Andrew","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":9412,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":18784,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41},{"extras":null,"description":"Recent Poster","user_id":20550,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1206,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"API Points for Sensor Owners","id":7525,"title":"API Points for Sensor Owners","slug":"api-points-for-sensor-owners","posts_count":7,"reply_count":3,"highest_post_number":10,"image_url":null,"created_at":"2024-01-09T22:10:00.000Z","last_posted_at":"2026-06-16T00:26:17.730Z","bumped":true,"bumped_at":"2026-06-16T00:26:17.730Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":3597,"like_count":9,"has_summary":false,"last_poster_username":"Andrew","category_id":18,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":10017,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":8564,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":4604,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1206,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"Request for PurpleAir API Access for Academic Disaster Detection Project (CRISIS-AI)","id":22639,"title":"Request for PurpleAir API Access for Academic Disaster Detection Project (CRISIS-AI)","slug":"request-for-purpleair-api-access-for-academic-disaster-detection-project-crisis-ai","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2026-04-20T21:27:12.089Z","last_posted_at":"2026-04-27T00:04:06.554Z","bumped":true,"bumped_at":"2026-04-27T00:04:06.554Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hello PurpleAir team, \nI am working on an academic AI project called CRISIS-AI (Disaster Detection and Response System). \nThe system integrates multiple data sources such as air quality, weather, satellite, and sensor da&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":80,"like_count":0,"has_summary":false,"last_poster_username":"carlkidcrypto-paa","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":20308,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":9420,"primary_group_id":41,"flair_group_id":41},{"extras":"latest","description":"Most Recent Poster","user_id":876,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Do API keys ever expire?","id":22646,"title":"Do API keys ever expire?","slug":"do-api-keys-ever-expire","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-24T20:02:36.811Z","last_posted_at":"2026-04-24T20:02:36.878Z","bumped":true,"bumped_at":"2026-04-24T20:02:36.878Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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.","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":16,"like_count":0,"has_summary":false,"last_poster_username":"developerAQ","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":20389,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"API Fields Descriptions","id":4652,"title":"API Fields Descriptions","slug":"api-fields-descriptions","posts_count":20,"reply_count":10,"highest_post_number":20,"image_url":null,"created_at":"2023-06-01T16:13:00.000Z","last_posted_at":"2026-02-18T22:05:49.616Z","bumped":true,"bumped_at":"2026-02-18T22:05:49.616Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. \n\nThis list contains definitions for fields that can be used with the historical API. The left &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":5670,"like_count":19,"has_summary":false,"last_poster_username":"Andrew","category_id":18,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":224,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":19360,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":20016,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1206,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"Max Daily Pm2.5 Values?","id":22510,"title":"Max Daily Pm2.5 Values?","slug":"max-daily-pm2-5-values","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2026-01-21T22:30:21.612Z","last_posted_at":"2026-01-27T21:55:23.403Z","bumped":true,"bumped_at":"2026-01-27T21:55:23.403Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi, \nI’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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":107,"like_count":1,"has_summary":false,"last_poster_username":"Kieran","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":19831,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"API Pricing","id":4523,"title":"API Pricing","slug":"api-pricing","posts_count":52,"reply_count":39,"highest_post_number":54,"image_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/2X/8/8a7e29bbe116540fda683c53b443a86e103a923c.png","created_at":"2023-05-24T21:23:00.000Z","last_posted_at":"2025-11-28T14:30:41.831Z","bumped":true,"bumped_at":"2025-11-28T14:30:41.831Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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. \n\nIf you are a PurpleAir sensor owner, you can get d&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":15490,"like_count":73,"has_summary":true,"last_poster_username":"wlandscape","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3752,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1004,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":1206,"primary_group_id":41,"flair_group_id":41},{"extras":"latest","description":"Most Recent Poster","user_id":19546,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Syncing PurpleAir data to Notion","id":22375,"title":"Syncing PurpleAir data to Notion","slug":"syncing-purpleair-data-to-notion","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2025-10-13T15:23:57.032Z","last_posted_at":"2025-10-13T15:23:57.087Z","bumped":true,"bumped_at":"2025-10-13T15:23:57.087Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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 &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":68,"like_count":0,"has_summary":false,"last_poster_username":"ma_r","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":19170,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"How to Get Historical Sensor Data Step-by-Step Using the Data Download Tool","id":11934,"title":"How to Get Historical Sensor Data Step-by-Step Using the Data Download Tool","slug":"how-to-get-historical-sensor-data-step-by-step-using-the-data-download-tool","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/2X/7/72eadb4e86fd6b8ffd38784b2500cd136979baa6.png","created_at":"2025-08-29T20:26:00.000Z","last_posted_at":"2025-08-29T20:26:00.000Z","bumped":true,"bumped_at":"2025-08-29T20:31:06.633Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":879,"like_count":0,"has_summary":false,"last_poster_username":"PurpleAir","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":4,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Issue with PurpleAir Group – Sensors Disappeared After API Call","id":12639,"title":"Issue with PurpleAir Group – Sensors Disappeared After API Call","slug":"issue-with-purpleair-group-sensors-disappeared-after-api-call","posts_count":5,"reply_count":0,"highest_post_number":6,"image_url":null,"created_at":"2025-06-04T12:18:26.915Z","last_posted_at":"2025-08-20T14:47:03.514Z","bumped":true,"bumped_at":"2025-08-20T14:47:03.514Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi everyone, \nI’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. \nThis morning, I used the POST /v1/groups/{g&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":152,"like_count":4,"has_summary":false,"last_poster_username":"nency","category_id":18,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":9414,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2143,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":3648,"primary_group_id":41,"flair_group_id":41},{"extras":"latest","description":"Most Recent Poster","user_id":18784,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"How to Make Efficient API Calls","id":6906,"title":"How to Make Efficient API Calls","slug":"how-to-make-efficient-api-calls","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2023-11-06T22:23:00.000Z","last_posted_at":"2023-11-06T22:23:00.000Z","bumped":true,"bumped_at":"2025-07-08T21:44:21.224Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. \n\nThis article outlines many ways that you can reduce the points usage of your API calls. These&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":2683,"like_count":3,"has_summary":false,"last_poster_username":"PurpleAir","category_id":18,"op_like_count":3,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":4,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Contradictory cf Information in API Docs","id":9827,"title":"Contradictory cf Information in API Docs","slug":"contradictory-cf-information-in-api-docs","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-08-11T20:04:32.768Z","last_posted_at":"2025-06-17T21:12:42.220Z","bumped":true,"bumped_at":"2025-06-17T21:12:42.220Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":97,"like_count":2,"has_summary":false,"last_poster_username":"Andrew","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":861,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1206,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"PurpleAir Data Migration to BigQuery and a New API","id":295,"title":"PurpleAir Data Migration to BigQuery and a New API","slug":"purpleair-data-migration-to-bigquery-and-a-new-api","posts_count":10,"reply_count":5,"highest_post_number":12,"image_url":null,"created_at":"2022-05-06T06:00:00.000Z","last_posted_at":"2025-04-28T14:35:38.735Z","bumped":true,"bumped_at":"2025-04-28T14:35:38.735Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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. \n\nFor the la&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":2128,"like_count":6,"has_summary":false,"last_poster_username":"Matthew_Clifford","category_id":18,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":342,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":505,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":9142,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"What is the Difference Between CF=1, ATM, and ALT?","id":6442,"title":"What is the Difference Between CF=1, ATM, and ALT?","slug":"what-is-the-difference-between-cf-1-atm-and-alt","posts_count":24,"reply_count":20,"highest_post_number":25,"image_url":"https://us1.discourse-cdn.com/flex020/uploads/purpleair/original/2X/9/979bc6c4a8fc0eba405a36bebc2a4c62e9fcf864.png","created_at":"2023-09-13T23:15:00.000Z","last_posted_at":"2025-03-22T15:43:17.557Z","bumped":true,"bumped_at":"2025-03-22T15:55:28.060Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. \n\nPurpleAir devices use Plantower laser counters to estimate the number of particles that pass &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":7483,"like_count":14,"has_summary":false,"last_poster_username":"EyasuLake","category_id":18,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":224,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":5475,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":6768,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":7433,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Making API Calls with the PurpleAir API","id":180,"title":"Making API Calls with the PurpleAir API","slug":"making-api-calls-with-the-purpleair-api","posts_count":19,"reply_count":13,"highest_post_number":28,"image_url":null,"created_at":"2021-11-18T19:48:22.032Z","last_posted_at":"2025-03-20T17:45:43.320Z","bumped":true,"bumped_at":"2025-03-20T17:45:43.320Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This article is related to the PurpleAir API. If you are unfamiliar with it, check out our API Landing Page to get started. \n\nThis guide will help you understand the basics of sending HTTP requests and making API call&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":68405,"like_count":27,"has_summary":false,"last_poster_username":"Andrew","category_id":18,"op_like_count":6,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":532,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41},{"extras":null,"description":"Recent Poster","user_id":8874,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1206,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"API data varies from Local Data","id":11930,"title":"API data varies from Local Data","slug":"api-data-varies-from-local-data","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2025-03-14T10:00:38.326Z","last_posted_at":"2025-03-15T09:17:46.966Z","bumped":true,"bumped_at":"2025-03-15T09:17:46.966Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi, \nI 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. \nWhen I access the data from the API, I see it as much lower - 32.6. \n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":242,"like_count":2,"has_summary":false,"last_poster_username":"Douglas_Sirkka","category_id":18,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":8879,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"Is my raw data available?","id":8856,"title":"Is my raw data available?","slug":"is-my-raw-data-available","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-06-14T09:30:19.238Z","last_posted_at":"2024-06-19T16:23:40.783Z","bumped":true,"bumped_at":"2025-02-14T17:05:26.993Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":372,"like_count":1,"has_summary":false,"last_poster_username":"Kieran","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":4,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"Filtrete Android App keeps loosing connection with PurpleAir air quality monitor","id":11208,"title":"Filtrete Android App keeps loosing connection with PurpleAir air quality monitor","slug":"filtrete-android-app-keeps-loosing-connection-with-purpleair-air-quality-monitor","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2025-01-15T23:53:06.330Z","last_posted_at":"2025-01-16T21:57:41.717Z","bumped":true,"bumped_at":"2025-01-16T21:57:41.717Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":106,"like_count":2,"has_summary":false,"last_poster_username":"Kieran","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":8281,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"Can I be OK&rsquo;d to download data from my own sensors?","id":11078,"title":"Can I be OK'd to download data from my own sensors?","slug":"can-i-be-okd-to-download-data-from-my-own-sensors","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2025-01-05T04:55:30.321Z","last_posted_at":"2025-01-07T03:34:29.203Z","bumped":true,"bumped_at":"2025-01-07T03:39:52.633Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":265,"like_count":3,"has_summary":false,"last_poster_username":"dwhitemv","category_id":18,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":224,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":441,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Points update?","id":11065,"title":"Points update?","slug":"points-update","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2025-01-02T22:20:28.957Z","last_posted_at":"2025-01-07T01:39:49.682Z","bumped":true,"bumped_at":"2025-01-07T01:39:49.682Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"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. \nI am switching HA programs (to ‘home assistant’) an&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":267,"like_count":3,"has_summary":false,"last_poster_username":"dwhitemv","category_id":18,"op_like_count":3,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2919,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":4274,"primary_group_id":41,"flair_group_id":41},{"extras":"latest","description":"Most Recent Poster","user_id":441,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Historical API end_timestamp incorrect","id":10989,"title":"Historical API end_timestamp incorrect","slug":"historical-api-end-timestamp-incorrect","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2024-12-21T23:38:00.128Z","last_posted_at":"2024-12-23T20:30:44.928Z","bumped":true,"bumped_at":"2024-12-23T21:04:08.485Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi all! \nProblem\nThe 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. \nExample\nI make a call with th&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"views":82,"like_count":3,"has_summary":false,"last_poster_username":"dwhitemv","category_id":18,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":8148,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":441,"primary_group_id":null,"flair_group_id":null}]}]}}