# EPA GHGRP Emitter Screener — Facility CO2e, Gases & Trend (`malonestar/epa-ghgrp-emitter-screener`) Actor

Every large US greenhouse-gas emitter from EPA GHGRP, on EPA’s own basis: direct CO2e excluding biogenic, with supplier volume and injected CO2 kept separate. Per-gas split (CO2/CH4/N2O/fluorinated), subparts, parent company, YoY delta, multi-year trend, rank and proximity mode. Keyless.

- **URL**: https://apify.com/malonestar/epa-ghgrp-emitter-screener.md
- **Developed by:** [Kyle Maloney](https://apify.com/malonestar) (community)
- **Categories:** Business, Developer tools, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.40 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## EPA GHGRP Emitter Screener — facility CO2e, per-gas split, trend & proximity

Every large US greenhouse-gas emitter, straight from EPA's Greenhouse Gas Reporting
Program (GHGRP), on **EPA's own basis**: direct emissions excluding biogenic CO2.
One row per facility with total CO2e, the split by gas, the reporting subparts, the
parent company and its ownership share, a year-over-year delta, a multi-year trend,
and both a state and a national rank. Or switch on proximity mode and get one row per
site you care about, with every emitter inside a radius.

Keyless. No API key, no login, no scraping — this reads EPA Envirofacts directly.

***

### The number this Actor reports, and why it is not the obvious one

`pub_facts_sector_ghg_emission` mixes three kinds of rows that look identical until
you join `sector_id` to `pub_dim_sector.sector_type`:

| `sector_type` | What it is | RY2023 national total |
|---|---|---|
| `E` | **Direct emissions** — the facility's own stack | **2,578,282,291 t CO2e** (excl. biogenic) |
| `S` | **Supplier volume** — CO2e that will be emitted *downstream* by whoever buys the fuel or industrial gas this facility sold | 4,650,647,215 t CO2e |
| `I` | **CO2 injected underground** (subpart UU) — received and sequestered, not emitted | 16,298,602 t CO2 |

Adding them together gives 7.36 billion t — **2.9x** what EPA publishes. On top of
that, EPA states plainly that "the reported emissions **exclude biogenic CO2**", so a
pulp mill's 2.2 Mt of biomass CO2 does not belong in its headline figure either.

So `latest_year_co2e_tonnes` here is **direct emissions, excluding biogenic CO2**.
Run the Actor for any state and the national context it prints matches EPA's published
RY2023 Data Highlights **exactly**: **7,544 direct-emitting facilities** and
**2.578 billion metric tons CO2e**. Supplier volume, biogenic CO2 and injected CO2 are
each reported on their own field, and the all-sector sum is still available as
`latest_year_all_reported_co2e_tonnes` for anyone who wants it.

What that changes in practice, in the default Wyoming run:

- **HF Sinclair Parco Refining (facility 1007217)** is the state's 10th-largest
  emitter at **1,050,393 t**, not its largest at 13,221,176 t. 12.2 Mt of that was
  petroleum product it *sold*.
- **Laramie River (1001045)** is Wyoming's true #1 at **10,979,532 t**.
- **Black Hills Wyoming Gas (1006579)** reports **no direct emissions at all** — it is
  a pure gas supplier. It gets `latest_year_co2e_tonnes: null` and
  `top_emitter_rank: null`, not a fabricated 1.7 Mt and a top-12 slot.

***

### Who this is for

- **ESG and carbon-accounting analysts** building a Scope 1 picture of an industry, a
  state, or a counterparty — with the gas split you need for a methane or
  fluorinated-gas story, not just a lump CO2e number.
- **Scope 3 / supply-chain screening.** Look a supplier's site up by name, county or
  NAICS and get its reported emissions, its parent company and its trend.
- **Air-permitting and environmental consultants.** Proximity mode answers "what is
  already emitting within N miles of this site" for a permit narrative or a
  cumulative-impacts section.
- **Climate and energy researchers.** Full-state inventories with subpart detail,
  county FIPS and EPA FRS IDs so the rows join to anything else.
- **Industrial-decarbonization and CCS sales teams.** Filter by NAICS and minimum
  tonnage, sort by methane share, and read `co2_captured` / `rr_mrv_plan_url` to see
  who already has a capture project.

***

### Example input

Default inventory mode — every GHGRP reporter in a state:

```json
{
  "states": ["Wyoming"],
  "startYear": 2022,
  "endYear": 2023,
  "minCo2e": 0,
  "maxResults": 2000
}
```

Large power and refining emitters across three states, with a five-year trend:

```json
{
  "states": ["Texas", "Louisiana", "Oklahoma"],
  "startYear": 2019,
  "endYear": 2023,
  "includeTrend": true,
  "naicsPrefix": "2211",
  "minCo2e": 250000,
  "directEmittersOnly": true,
  "maxResults": 500
}
```

Proximity mode — one row per site instead of one per facility:

```json
{
  "states": ["Wyoming", "Colorado"],
  "startYear": 2022,
  "endYear": 2023,
  "assets": [
    { "label": "Gillette WY plant", "lat": 44.2862, "lon": -105.3843, "radiusMiles": 25 },
    { "label": "Denver CO site", "lat": 39.7392, "lon": -104.9903, "radiusMiles": 30 }
  ]
}
```

#### Inputs

| Input | Type | Default | What it does |
|---|---|---|---|
| `states` | array | `["Wyoming"]` | US states to pull. 2-letter codes or full names. |
| `startYear` | integer | `2022` | Prior/baseline reporting year for the YoY delta. |
| `endYear` | integer | `2023` | Headline reporting year, used for ranking. 2023 is the newest EPA has published; the Actor detects this live on every run. |
| `naicsPrefix` | string | — | Keep only facilities whose NAICS starts with this. `2211` power, `3241` refineries, `325` chemicals, `2111` oil & gas extraction, `3221` pulp & paper, `33441` semiconductors. |
| `minCo2e` | integer | `0` | Minimum latest-year **direct** CO2e in metric tons. |
| `directEmittersOnly` | boolean | `false` | Drop supplier-only reporters. |
| `includeTrend` | boolean | `false` | Fetch every year between `startYear` and `endYear` and add the trend fields. Costs one extra national scan per year. |
| `includeWithheldReporters` | boolean | `false` | Include facilities that are on EPA's books for the year but whose CO2e value it does not publish (97 of Wyoming's 169 RY2023 records). They carry no tonnage, so they are off by default and not billed. |
| `strictCompleteness` | boolean | `true` | Fail the run when an upstream read comes back short. See below. |
| `assets` | array | — | Switches to proximity mode: `{lat, lon, radiusMiles, label}`. |
| `maxResults` | integer | `2000` | Cap on emitted rows, largest emitters first. |

***

### How it fails

A wrong emissions number is worse than no number, so this Actor is loud:

- **Every query is COUNT-guarded.** Before paging any table it asks EPA
  `.../COUNT/JSON` and checks the retrieved row count against the answer. A short read
  is truncation, not a result — with `strictCompleteness` on (the default) the run
  fails and bills nothing. Turn it off and every row is stamped `data_complete: false`
  with the exact shortfall in `partial_reason`.
- **Twelve live drift assertions** run on every execution and fail the run if EPA's
  tables change shape: both `sector_type` `E` and `S` must still exist, national
  supplier and injection volumes must still be non-zero (if either collapses to zero
  the direct total has silently absorbed it), the national direct total must stay
  inside 1.5-4.0 billion t, the direct facility count inside 5,000-12,000, every
  column the Actor reads must still be present, and no fact row may carry a
  `sector_id` missing from `pub_dim_sector`.
- **The dimension tables are not optional.** If `pub_dim_sector` cannot be read the run
  fails rather than guessing which rows are emissions.
- **`null` means "not reported", never zero.** A facility with no direct emissions gets
  `null`, not `0`. A row EPA files without a published CO2e value is counted in
  `latest_year_withheld_rows` and never folded in as a zero.
- **No state, no run.** An empty `states` list fails immediately with an actionable
  message, before anything is billed.

***

### Output fields

One row per facility in inventory mode.

#### Identity and location

| Field | Description |
|---|---|
| `facility_id` | EPA GHGRP facility ID. |
| `facility_name` | Facility name as reported. |
| `facility_role` | `Direct Emitter`, `Supplier`, `CO2 Injection`, or a combination — derived from the facility's own fact rows. |
| `is_direct_emitter` / `is_supplier` / `is_co2_injection` | Booleans behind `facility_role`. |
| `facility_types_reported` | EPA's own `facility_types` string, verbatim. Null on about half of records — which is why `facility_role` exists. |
| `state` / `state_name` / `city` / `county` / `county_fips` / `zip` / `address1` | Location. `county_fips` joins to census, FEMA and county datasets. |
| `latitude` / `longitude` | WGS84 coordinates. |
| `naics_code` / `reported_industry_types` | Industry classification. |
| `frs_id` | EPA Facility Registry Service ID — joins to ECHO, RCRA, NPDES and TRI. |
| `eggrt_facility_id` / `program_sys_id` | EPA system identifiers. |
| `tribal_land_id` | Populated when the facility sits on tribal land (208 of Oklahoma's 493 RY2023 facilities). |
| `metadata_year` / `metadata_is_stale` | Which reporting year the metadata came from, and whether it is older than the emissions year. |
| `source_url` / `flight_url` | The raw Envirofacts rows behind this row, and the EPA FLIGHT page to verify it. |

#### Emissions — latest year

| Field | Description |
|---|---|
| `latest_year` | The reporting year behind the headline figure. |
| `latest_year_co2e_tonnes` | **Direct emissions, metric tons CO2e, excluding biogenic CO2.** The headline. `null` for a pure supplier. |
| `latest_year_direct_co2e_tonnes` | The same value, named explicitly so the basis is unambiguous in a spreadsheet. |
| `latest_year_biogenic_co2_tonnes` | Biogenic CO2, held out of the headline exactly as EPA does. 533 US facilities in RY2023. |
| `latest_year_supplier_co2e_tonnes` | Supplier volume — burned downstream by customers, not here. |
| `latest_year_injected_co2_tonnes` | CO2 injected underground (subpart UU). |
| `latest_year_all_reported_co2e_tonnes` | Every numeric row added together regardless of type. **Not an emissions figure** — kept for continuity. |
| `latest_year_co2_tonnes` | Fossil CO2. |
| `latest_year_ch4_co2e_tonnes` | Methane, as CO2e (AR4 GWP). |
| `latest_year_n2o_co2e_tonnes` | Nitrous oxide, as CO2e. |
| `latest_year_fluorinated_co2e_tonnes` | SF6, HFCs, PFCs, NF3, HFEs, HFC-23 and other fully fluorinated gases combined. 155 US facilities in RY2023; dominant at semiconductor and fluorochemical sites — Samsung Austin Semiconductor is 88.7% fluorinated. |
| `latest_year_other_gas_co2e_tonnes` | Gases EPA classes as "Other". |
| `latest_year_methane_share_pct` | Methane as a percent of direct CO2e. |
| `gas_breakdown_json` | All gas buckets as one JSON object. |
| `co2e_basis` | A one-line statement of exactly what the headline measures, on every row. |

#### Sectors, subparts and completeness

| Field | Description |
|---|---|
| `largest_sector_name` / `largest_sector_co2e_tonnes` / `largest_sector_share_pct` | The GHGRP sector contributing the most direct CO2e. |
| `sectors_reported` | Every direct sector the facility reported under. |
| `subparts_reported` / `subparts_reported_count` | 40 CFR Part 98 subpart letters, derived from the facility's own fact rows — far more complete than the raw `reported_subparts` column, which is null on about half of records. |
| `reported_subparts` | EPA's raw subpart string, verbatim. |
| `latest_year_reported_rows` / `latest_year_withheld_rows` / `latest_year_value_withheld` | How many upstream rows carried a number, how many did not, and whether the total is therefore a floor. |
| `cems_used` | `Y` when Continuous Emissions Monitoring was used — a materially higher-confidence figure. |
| `co2_captured` / `emitted_co2_supplied` / `rr_mrv_plan_url` | CCS/CCUS markers, including the subpart RR sequestration MRV plan. |
| `emission_classification_code` / `reporting_status` | EPA classification and filing status. |

#### Change over time

| Field | Description |
|---|---|
| `prior_year` / `prior_year_co2e_tonnes` / `prior_year_direct_co2e_tonnes` | The baseline year, same basis. |
| `prior_year_biogenic_co2_tonnes` / `prior_year_supplier_co2e_tonnes` / `prior_year_all_reported_co2e_tonnes` | Baseline components. |
| `yoy_delta_co2e` / `yoy_pct` | Change in direct CO2e from prior to latest year. `null` when the facility did not report both years. |
| `trend_years_json` / `trend_years_count` / `trend_first_year` / `trend_first_year_co2e_tonnes` / `trend_change_pct` / `trend_cagr_pct` | Multi-year series and growth rate. Populated when `includeTrend` is true. |

#### Ownership, rank and context

| Field | Description |
|---|---|
| `parent_company` | EPA's raw parent string, verbatim. |
| `parent_company_primary` / `parent_company_primary_pct` / `parent_company_count` / `parent_companies_json` | Parsed owners with ownership percentages, largest first. |
| `top_emitter_rank` | Rank by direct CO2e within the run. `null` for a facility with no direct emissions. |
| `state_rank` / `state_rank_of` / `state_share_pct` | Rank and share within the facility's own state. |
| `national_share_pct` / `national_direct_co2e_tonnes` / `national_direct_facilities` | Share of all US direct GHGRP emissions, and the national denominators — which match EPA's published figures exactly. |

#### Run status (on every row)

| Field | Description |
|---|---|
| `facility_source_status` / `emissions_source_status` / `dimension_source_status` | `ok`, `partial` or `unavailable` per upstream table. |
| `data_complete` / `partial_reason` | Whether every read returned its full advertised row count, and if not, exactly what fell short. |
| `reporting_year_latest_available` / `reporting_year_is_latest` | The newest published GHGRP year, detected live, and whether you asked for it. |
| `checked_at` / `disclaimer` | Run timestamp and provenance note. |

#### Proximity mode

One row per asset instead of one per facility.

| Field | Description |
|---|---|
| `asset_label` / `asset_lat` / `asset_lon` / `radius_miles` | Echo of your input. |
| `emitters_within_radius` / `direct_emitters_within_radius` | Facilities inside the radius, and how many actually emit. |
| `total_nearby_co2e_tonnes` / `total_nearby_direct_co2e_tonnes` | Combined direct CO2e inside the radius. `null` when nothing inside reported any. |
| `total_nearby_biogenic_co2_tonnes` / `total_nearby_supplier_co2e_tonnes` | The components kept out of that total. |
| `nearest_facility_id` / `nearest_facility_name` / `nearest_distance_miles` / `nearest_co2e_tonnes` / `nearest_direct_co2e_tonnes` / `nearest_facility_role` / `nearest_parent_company` / `nearest_naics_code` | The closest facility. |
| `largest_nearby_facility_id` / `largest_nearby_facility_name` / `largest_nearby_co2e_tonnes` / `largest_nearby_distance_miles` | The biggest emitter inside the radius, which is usually not the closest. |
| `nearby_facilities_json` | Up to 25 nearby facilities with distance and tonnage. |
| `states_searched` | The states actually screened. Emitters outside them are not counted, so list a neighbouring state for a site near a border. |
| `emitters_screened` / `nearby_without_coordinates` | How many candidates were distance-tested, and how many had no published coordinates. |
| `error` | Populated when a single asset could not be screened. One bad asset never fails the run. |

***

### Use as an MCP tool

This Actor is available to AI agents through [mcp.apify.com](https://mcp.apify.com).
Every input and output field carries a description, so an agent can call it directly to
answer questions like "what are the ten largest methane emitters in New Mexico" or "how
much CO2 is emitted within 20 miles of this address" without any glue code.
`co2e_basis` ships on every row so an agent cannot misread the number.

### Pricing

Pay per result: **$8.00 per 1,000 rows** ($0.008 per row), with graduated discounts on
paid Apify plans down to $0.0024 per row on Diamond. One row per facility in inventory
mode, one row per asset in proximity mode. `minCo2e`, `naicsPrefix`,
`directEmittersOnly` and `maxResults` all let you pay only for the rows you want.

### Data source and limits

EPA Envirofacts GHGRP: `pub_dim_facility`, `pub_facts_sector_ghg_emission`,
`pub_dim_sector`, `pub_dim_ghg`, `pub_dim_subsector`. Keyless and public.

- GHGRP covers **large** direct emitters, generally above 25,000 t CO2e/yr. It is not a
  complete national inventory; it captures roughly half of US emissions directly, and
  85-90% once supplier reporting is included.
- All values are **self-reported** to EPA and use AR4 global warming potentials.
- Reporting year **2023** is the newest EPA has published. The Actor detects the newest
  available year live and stamps it on every row.
- Facility metadata comes from the newest facility record at or below `endYear`;
  `metadata_is_stale` flags the cases where that is older than the emissions year.

### FAQ

**Why is a facility's number lower than what I read elsewhere?**
Almost certainly because the other source added supplier volume or biogenic CO2 into
the total. Compare `latest_year_all_reported_co2e_tonnes` — that is the all-in sum —
and open `flight_url` to check the split against EPA's own viewer.

**Why does a facility have `null` emissions and no rank?**
It reports to GHGRP only as a supplier or a CO2 injection site, so it has no direct
emissions to rank. `null` means "not reported", never zero.

**Can I get 2024 data?**
Not yet — EPA has not published it. Ask for it and the run tells you which year is the
newest available rather than quietly returning nothing.

**Why did my run fail instead of returning fewer rows?**
`strictCompleteness` is on by default: if EPA returned fewer rows than it said the
query had, every emissions total would be understated by an unknown amount. That is a
wrong answer, not a small answer, so the run fails and nothing is billed.

**Does proximity mode search the whole country?**
No — it screens the facilities in the `states` you list, and `states_searched` says so
on every row. For a site near a state line, list the neighbouring state too.

### Related Actors

- **EPA Nonattainment Air Permit Screener** — NAAQS nonattainment status for a site,
  the other half of an air-permitting screen.
- **EPA RCRA Hazardous Waste Generator Rollup** — the same facilities' hazardous-waste
  profile.
- **EPA Contaminated Site Screener** — Superfund, RCRA, tanks and spills near a site.
- **Site Due Diligence Bundle** — twenty environmental layers for one coordinate in a
  single call.

# Actor input Schema

## `states` (type: `array`):

US states to pull GHGRP direct-emitter facilities for. Accepts 2-letter codes (e.g. "WY", "TX") OR full names (e.g. "Wyoming"). This is the primary (inventory) input — one dataset row per facility. Leave assets empty to run in inventory mode.

## `startYear` (type: `integer`):

The earlier reporting year used as the year-over-year baseline. GHGRP data currently runs through reporting year 2023; 2024 is not yet published. Default 2022.

## `endYear` (type: `integer`):

The later reporting year used for the headline CO2e total, the top-emitter ranking, and the YoY delta (endYear minus startYear). Latest confirmed available = 2023. Default 2023.

## `naicsPrefix` (type: `string`):

Optional. Keep only facilities whose 6-digit NAICS industry code starts with this prefix. E.g. "2211" = electric power generation, "325" = chemical manufacturing, "3241" = petroleum refineries, "2111" = oil & gas extraction. Leave blank for all industries.

## `minCo2e` (type: `integer`):

Optional. Only emit facilities whose latest-year total CO2e (metric tons) is at least this value. Default 0 (all reporting facilities). Set e.g. 250000 to see only the largest emitters.

## `assets` (type: `array`):

Optional proximity mode. Provide a list of locations, each {"lat": <number>, "lon": <number>, "radiusMiles": \<number, default 25>, "label": "..."}. When present, the actor instead emits ONE row per asset: how many GHGRP emitters fall within the radius, their total CO2e, and the nearest emitter. Emitters are still drawn from the states you list, so include the relevant state(s). Leave empty for the default inventory-by-state mode.

## `directEmittersOnly` (type: `boolean`):

Drop facilities that only report as SUPPLIERS of fuels or industrial gases (their CO2e is burned downstream by customers, not emitted on site) and keep only facilities with their own reported direct emissions. Default false, which keeps suppliers in the results but reports their volume on latest\_year\_supplier\_co2e\_tonnes and leaves latest\_year\_co2e\_tonnes null.

## `includeTrend` (type: `boolean`):

Fetch EVERY reporting year between startYear and endYear (not just the two boundary years) and add trend\_years\_json, trend\_change\_pct and trend\_cagr\_pct to each row. Costs one extra national scan per additional year, so a 2010-2023 trend takes noticeably longer. Default false.

## `includeWithheldReporters` (type: `boolean`):

EPA files a placeholder row for facilities that are on the books for a reporting year but whose CO2e value it does not publish (97 of Wyoming's 169 RY2023 records). They carry no tonnage, so by default they are neither emitted nor billed. Set true to receive them with null tonnages, latest\_year\_value\_withheld=true, and their role, subparts and location intact.

## `strictCompleteness` (type: `boolean`):

EPA Envirofacts is asked how many rows each query has before it is paged, and the retrieved count is checked against it. When they disagree the data is truncated and every CO2e total would be understated by an unknown amount. Default true: fail the run loudly and bill nothing. Set false to accept partial data, in which case every row is stamped data\_complete=false with the shortfall in partial\_reason.

## `maxResults` (type: `integer`):

Safety cap on the number of emitter rows emitted (inventory mode), ranked by latest-year CO2e descending. Default 2000.

## Actor input object example

```json
{
  "states": [
    "Wyoming"
  ],
  "startYear": 2022,
  "endYear": 2023,
  "minCo2e": 0,
  "directEmittersOnly": false,
  "includeTrend": false,
  "includeWithheldReporters": false,
  "strictCompleteness": true,
  "maxResults": 2000
}
```

# Actor output Schema

## `results` (type: `string`):

The default dataset with one row per facility or asset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "states": [
        "Wyoming"
    ],
    "startYear": 2022,
    "endYear": 2023,
    "minCo2e": 0,
    "directEmittersOnly": false,
    "includeTrend": false,
    "includeWithheldReporters": false,
    "strictCompleteness": true,
    "maxResults": 2000
};

// Run the Actor and wait for it to finish
const run = await client.actor("malonestar/epa-ghgrp-emitter-screener").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "states": ["Wyoming"],
    "startYear": 2022,
    "endYear": 2023,
    "minCo2e": 0,
    "directEmittersOnly": False,
    "includeTrend": False,
    "includeWithheldReporters": False,
    "strictCompleteness": True,
    "maxResults": 2000,
}

# Run the Actor and wait for it to finish
run = client.actor("malonestar/epa-ghgrp-emitter-screener").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "states": [
    "Wyoming"
  ],
  "startYear": 2022,
  "endYear": 2023,
  "minCo2e": 0,
  "directEmittersOnly": false,
  "includeTrend": false,
  "includeWithheldReporters": false,
  "strictCompleteness": true,
  "maxResults": 2000
}' |
apify call malonestar/epa-ghgrp-emitter-screener --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=malonestar/epa-ghgrp-emitter-screener",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/Fuf1xocB6ioLyyf37/builds/sRUFaje1lb18EqGfT/openapi.json
