PollutionData API Documentation
Canadian pollution data API: GHGRP facility-level GHG emissions and NPRI substance-level pollutant releases, with bilingual substance names. Filter by province, facility, NAICS code, and substance. Data since 1993.
Documentation menu
Quickstart
Three steps to your first call:
- Subscribe on RapidAPI and copy your key (there is a free tier).
- Call the base URL
https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.comwith your key in the headers. - Parse the JSON response.
curl --request GET \
--url 'https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com/facility/FACILITY_ID' \
--header 'x-rapidapi-host: pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_RAPIDAPI_KEY'import requests
url = "https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com/facility/FACILITY_ID"
headers = {"x-rapidapi-host": "pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com", "x-rapidapi-key": "YOUR_RAPIDAPI_KEY"}
resp = requests.get(url, headers=headers)
print(resp.json())const res = await fetch("https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com/facility/FACILITY_ID", {
headers: {
"x-rapidapi-host": "pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com",
"x-rapidapi-key": "YOUR_RAPIDAPI_KEY",
},
});
const data = await res.json();
console.log(data);<?php
$ch = curl_init("https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com/facility/FACILITY_ID");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"x-rapidapi-host: pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com",
"x-rapidapi-key: YOUR_RAPIDAPI_KEY",
]);
echo curl_exec($ch);require "net/http"
require "uri"
uri = URI("https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com/facility/FACILITY_ID")
req = Net::HTTP::Get.new(uri)
req["x-rapidapi-host"] = "pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com"
req["x-rapidapi-key"] = "YOUR_RAPIDAPI_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
puts res.bodypackage main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com/facility/FACILITY_ID", nil)
req.Header.Add("x-rapidapi-host", "pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com")
req.Header.Add("x-rapidapi-key", "YOUR_RAPIDAPI_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}import java.net.URI;
import java.net.http.*;
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com/facility/FACILITY_ID"))
.header("x-rapidapi-host", "pollutiondata-canadian-ghg-emissions-and-pollutant-release.p.rapidapi.com")
.header("x-rapidapi-key", "YOUR_RAPIDAPI_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());Guides
Getting started and authenticationGet an API key and make your first authenticated call in under five minutes.Filtering, search and paginationNarrow results with filters and full-text search, and page through large result sets.Export results to CSV or a spreadsheetPull records across pages and write them to a CSV you can open in Excel or Sheets.Monitor new recordsPoll for records added since your last check and act on them automatically.
Endpoint reference
Every PollutionData route. Click through for parameters, examples and a sample response.
GET/facility/{facility_id}Environmental facility profileGET/emissionSearch facility GHG emissionsGET/releaseSearch NPRI pollutant releasesGET/emission/statsGHG emission statisticsGET/release/statsPollutant release statisticsGET/emission/coverageEmission record count per provinceGET/release/coverageRelease record count per provinceGET/emission/{record_id}Get emission record by IDGET/release/{record_id}Get release record by ID
Ready to build?Subscribe on RapidAPI to get your key and start calling PollutionData in minutes.
Get your API key →