PurpleAir
Crowd-hosted air-quality sensors reporting every 2 minutes, read through a prepaid points API.
Self-serve API, key required, irlpls adapter · docs
- Mode
- Live · minutes
- Coverage
- Global
- Price
- $10 / minimum points purchase
- Key
- Required
- Resale
- Not allowed
- AI training
- Not stated
Eight links
0 of 8 links claimed · 0 evidenced
Compiled from public sources, unclaimed. What they mean
Each link
- 1. Real personNot stated
Person · Not stated
Still open: Whether a sensor owner is a real, distinct person; owners register sensors themselves and API keys are tied to a developer account, not to sensor hosts
- 2. Captured locallyNot stated
Camera · Not stated
Still open: Not applicable: this is a particulate sensor network and collects no imagery
Place · Claimed. The Terms say each sensor's location is extrapolated from Google's Wi-Fi-based location services together with the location the owner enters, calculated on the sensor or on PurpleAir's servers. The owner sets the inside/outside label.
Still open: How the Wi-Fi fix and the owner's entry are reconciled, and whether a moved or misregistered sensor is detected; the Terms call the location 'likely' and publish no per-sensor check
Needs both: the weaker one counts.
- 3. Genuine deviceNot stated
App · Not stated
Still open: Whether readings come from unmodified PurpleAir firmware or hardware; the terms forbid modifying sensors, but no attestation or signing is documented
- 4. Sealed captureNot stated
Camera · Not stated
Still open: Not applicable: this is a particulate sensor network and collects no imagery
Content · Not stated
Still open: Whether a sensor is exposed to staged or local sources (smoke, cooking, indoor placement); the provider disclaims accuracy and documents no tamper checks. The dual laser counters (A and B channels) are exposed as fields, but no provider-side flagging method is documented
- 5. Known timestampReported
Time · Not stated. The API exposes time stamps for each sensor's readings and a last_seen time, as the sensors and PurpleAir report them.
Still open: How sensor clocks are set or checked is not documented; no timing-integrity method is documented and nothing is signed.
A time stated, not attested (RFC 3161, a log): Reported.
- 6. Tracked in transitNot stated
Custody record (optional field) · Not stated
- 7. Independently verifiedNot stated
Cross-check · Not stated
Still open: PurpleAir documents no per-sensor cross-check against reference monitors. The only independent check recorded here (AQ-SPEC) tested three units of one model near Los Angeles in 2016-2017 and says nothing about current models, other climates or any individual sensor in the network
- 8. Delivered to youNot stated
Delivery receipt (optional field) · Not stated
Independent checks
- South Coast AQMD AQ-SPEC: Accuracy of the PurpleAir PA-II model against reference instruments (content/corroboration), three units source
API
Needs an account first.
- base
- https:/
/ api.purpleair.com/ v1 - auth
- API key · X-API-Key +1 more
- access
- Self-serve
- adapter
purpleair- pay
- card, checkout page, invoice
- GET /
sensors - GET /
sensors/ :sensor_index - GET /
sensors/ :sensor_index/ history - GET /
groups/ :group_id/ members - GET /
keys - GET /
organization
Rate limit. Per-endpoint default rate limits (100 ms for /keys, single sensor and most group calls; 400 ms for /groups; 500 ms for /sensors and group members; 1 s for history and /organization). Exceeding one returns RateLimitExceededError; PurpleAir can adjust limits per key on request. Every call also spends prepaid points; with too few points the API returns PaymentRequiredError. The Fair Use Policy lets PurpleAir throttle or disable keys used for scraping or unusually heavy use, and asks bulk historical requests (thousands of sensors) to go by email instead.
Sources
20 sources
- Base URL https://api.purpleair.com/v1; apidoc version 1.0.15, generated 2026-09-09 api.purpleair.com
- Endpoints /sensors, /sensors/:sensor_index, /sensors/:sensor_index/history(/csv), /groups and members, /keys, /organization with their parameters (bounding box, location_type, max_age default 604800, modified_since, show_only, read_keys, average windows up to 525600, privacy); per-endpoint default rate limits; RateLimitExceededError; X-API-Key header preferred, api_key query string or POST body; READ vs WRITE keys; Developer Dashboard with Google login; 1 million free starting points; last_seen field api.purpleair.com
- API documentation home (renders client-side; content read from api_data.js) api.purpleair.com
- Keyless request to /v1/sensors returns 403 ApiKeyMissingError (probed 2026-10-26) api.purpleair.com
- Live points tier table and $10 minimum purchase (public JSON behind the store) www.purpleair.com
- Points-based billing; tier table; cost formula; base cost at most 5 points; get_sensor 1, get_sensor_history 2; field costs 1-2 points; 432 points a day example; one million starting points; values subject to change community.purpleair.com
- Sensor owners' own-data pulls still use points; free points on request by email; earning points planned; the map stays free community.purpleair.com
- Account via Google login on develop.purpleair.com; 1 million points on sign-up; dataset back to early 2016; no limit on sensors per Get Sensors Data call; keys must not be shared community.purpleair.com
- Developer Dashboard structure (organizations, projects, keys); PaymentRequiredError when out of points community.purpleair.com
- Sensors report every two minutes; real-time data held in memory; modified_since; bulk historical requests by email; access may be lost for over-querying community.purpleair.com
- Terms of Service (updated 18 July 2022): PurpleAir owns all data; licence grants and end-user limits; no raw data to third parties or competing database; only the key holder makes API calls; grantback licence naming AI training data and outputs; no open-source materials; attribution; location from Google Wi-Fi location plus owner entry; health and emergency disclaimers; API Fair Use Policy (Exhibit A); Shopify payments www.purpleair.com
- Terms of Service page (renders client-side; text read from the store policies JSON above) www.purpleair.com
- Data License (updated 18 July 2022): grantback, attribution, distribution limited to one level removed, cannot resell data or an API modelled on it, Fair Use Policy www.purpleair.com
- Data Attribution guide: 'Data from PurpleAir' for direct use, 'Powered by PurpleAir' for derived data, a link for APIs and ML models, health or emergency disclaimer www.purpleair.com
- Store payment methods: cards, Shop Pay, PayPal, Google Pay, Apple Pay, Meta Pay; purchase orders Net 30; checks, money orders, wire by invoice www.purpleair.com
- Over 35,000 sensors worldwide; real-time readings updated every 2 minutes; points bought in the store cart (site JavaScript bundle, since www.purpleair.com renders client-side) www.purpleair.com
- No PurpleAir server in the official MCP Registry registry.modelcontextprotocol.io
- AQ-SPEC PA-II evaluation: three units, field PM1 R2>0.96, PM2.5 R2>0.93, PM10 R2>0.66, lab PM2.5 R2>0.99, 95% data recovery, deployment 12/18/2016-01/26/2017 www.aqmd.gov
- AQ-SPEC field evaluation of PA-II against GRIMM and BAM reference instruments www.aqmd.gov
- Owners can read their sensor locally at its IP address /json without the API; one million points cover years of single-sensor data community.purpleair.com
Notes
About. Network of over 35,000 consumer-owned optical particulate sensors that report every two minutes, read through a points-metered REST API (api.purpleair.com) with real-time and historical data back to 2016.
Price. New users get 1,000,000 points on sign-up. Live tier table (minimum purchase $10): $10-$49 at 100,000 points/USD, $50-$249 at 150,000, $250-$499 at 200,000, $500-$999 at 300,000, $1,000-$4,999 at 500,000, $5,000+ at 1,000,000. Cost per call = endpoint base cost + (cost of all fields x data rows); base cost is at most 5 points (get_sensor 1, get_sensor_history 2); fields cost 1-2 points per row in the published examples. Example: one sensor's pm2.5 every 10 minutes costs 432 points a day. The full per-field table is on the Developer Dashboard (login, not read). Sensor owners still spend points on their own sensors' data, but PurpleAir gives free points on request by email and plans to automate that. Values are subject to change. A points subscription also exists in the account area (terms not public).
Coverage. PurpleAir says over 35,000 sensors worldwide. Coverage is wherever owners have installed and registered sensors, and only public sensors are readable without the owner's read key. You cannot request a new placement. No per-country list or density figures are published.
Timing. PurpleAir API Use Guidelines: "PurpleAir sensors report data every two minutes" and "Real-time data is instantly available in memory."
Licence. PurpleAir's Terms (updated 18 July 2022) say PurpleAir owns all PurpleAir Data and any derivatives' underlying data. The licence is non-exclusive, non-transferable and non-sublicensable. You may use the data internally to test and develop your own product, and distribute that product commercially only to end users for their internal, non-commercial, non-public use, after written notice to PurpleAir. No raw data to third parties, no reselling the data or an API modelled on it, and no competing air-quality database without written permission. API calls must be made only by you, and keys must not be shared. A grantback licence gives PurpleAir rights in your derivatives, explicitly including AI algorithms trained on PurpleAir data and their outputs. You may not combine the data with open-source-licensed materials. Attribution is required: 'Data from PurpleAir' for direct use, 'Powered by PurpleAir' for derived data, with a link for APIs and ML models. Health or emergency uses need a disclaimer. The terms do not explicitly allow or forbid AI training; they attach the grantback to it.
Compiled from public sources. Is this your company? Publish your card ›
Compiled from public sources · updated 2026-10-28JSONSiteCompare