OpenAQ

OpenAQ

Let AI connect your sources for you

Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Learn more
PostHog Wizard hedgehog

Connect OpenAQ to PostHog to sync your data into the PostHog data warehouse for analysis and modeling.

Enter your OpenAQ API key to pull global air-quality data into the PostHog Data warehouse.

You can create a free API key from your OpenAQ Explorer account.

The free tier is limited to 60 requests per minute. The measurement tables fetch data per sensor, so syncing them against a broad set of locations makes many requests — they're off by default; enable only the sensors you need.

Configuration

OptionTypeRequired
API keypasswordYes

Linking OpenAQ to PostHog

  1. Go to the Data pipeline page in PostHog
  2. Click New source and select OpenAQ
  3. Fill in the required configuration fields
  4. Click Next, select the tables you want to sync, and then press Import

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
locations

Monitoring locations (stations) that report air-quality measurements.

Full refreshid
parameters

Pollutants and other parameters measured across the network (e.g. PM2.5, O3, NO2).

Full refreshid
countries

Countries with at least one monitoring location in the network.

Full refreshid
providers

Organizations that supply air-quality data to OpenAQ.

Full refreshid
instruments

Instrument models used by monitoring locations.

Full refreshid
manufacturers

Manufacturers of the instruments used across the network.

Full refreshid
owners

Entities that own monitoring locations.

Full refreshid
licenses

Data licenses that govern how each provider's data may be used.

Full refreshid
sensors

Sensors materialized from each location's embedded sensor list. Full refresh only

Full refreshid
measurements

Fetched per sensor across all locations — request-heavy, so off by default

Incremental, Full refreshdatetime_fromsensor_id, datetime_from
measurements_hourly

Fetched per sensor across all locations — request-heavy, so off by default

Incremental, Full refreshdatetime_fromsensor_id, datetime_from
measurements_daily

Fetched per sensor across all locations — request-heavy, so off by default

Incremental, Full refreshdatetime_fromsensor_id, datetime_from