Grid carbon emission factors by US ZIP code

emission-factors.com unifies US government datasets - EPA eGRID (annual grid carbon), EIA-930 (hourly fuel mix), EIA Form 861 (retail rates), EPA CAMD (plant-level emissions), and OpenEI URDB (utility-specific tariffs) behind one REST API indexed by US ZIP code. Scope 2 (location- and market-based) and Scope 1 fuel emissions, site comparison and cleanest-hour scheduling; 12 data endpoints and an 11-tool MCP server for AI agents, free, no key, no signup.

None of these government data sources are unified, ZIP-indexed, or accessible as a developer API on their own. EPA eGRID ships as Excel files organized by subregion. EIA-930 is hourly JSON from a separate system. URDB is its own database with its own API. This wraps them all behind a single call pattern, with MCP tooling so Claude, Cursor, and Cline can call them directly.

What you can retrieve per ZIP code

Carbon

Cost

Grid composition

API endpoints

Core lookups (annual emission factors)

Hourly grid intensity (EIA-930)

Cost (EIA Form 861 + OpenEI URDB)

Plant-level emissions (EPA CAMD)

Bulk enrichment

Discovery + AI agents

Full API reference with response schemas and code examples: API documentation

Data sources

eGRID2023 Rev 2 (official, default)

Released June 12, 2025 by the US EPA. Table 1: eGRID Subregion Output Emission Rates. 27 subregions covering the contiguous US, Alaska, Hawaii, and Puerto Rico. This is the most recent official EPA release as of 2026.

eGRID2024 (Cornerstone, via ?year=2024)

Generated by Cornerstone Data by running EPA's open-source eGRID code on 2024 EIA and EPA CAMD input data. Published on Zenodo under CC-BY-4.0. Validated against official 2023 release (<1% discrepancy). Full 2023 vs 2024 comparison.

ZIP-to-subregion mapping

33,700+ Census ZCTAs mapped to 27 eGRID subregions via centroid-in-polygon spatial intersection with EPA subregion boundary shapefiles. Covers every Census ZCTA in the eGRID system (99.9%); PO-box ZIPs have no ZCTA and are not mapped. Each ZIP gets the one subregion containing its centroid.

It's free

No tiers, no key, no credit card. Every endpoint and the MCP server are open to call directly, rate-limited per IP.

Read the API docs - no key, no signup, just call the endpoints.

What you can build - 7 canonical use cases

1. EV charging network planner

"I need to rank candidate ZIPs for new fast-charger sites by clean, cheap grid - not guess."

For each candidate ZIP, pull the annual carbon factor, the retail rate, and the hourly intensity profile for its balancing authority. Rank candidates by "cleanest + cheapest kWh" and pinpoint the best hours to charge. A few API calls combined server-side, ~20 lines of Python.

Endpoints: /api/lookup, /api/rate, /api/intensity. Outcome: data-backed siting instead of gut feel.

2. Sustainability consultant replacing Climatiq

"My two-person shop needs US grid factors for client facility lists without a paid data contract."

US ZIP → eGRID factor with audit provenance. Bulk CSV upload (up to 1 MB) enriches client facility lists with each site's factor and, with a kWh column, location- and market-based CO₂e. Free.

Endpoints: /api/lookup/batch, /api/bulk. Outcome: a facility list enriched in one call, free.

3. SaaS founder adding "carbon footprint" to their product

"Users want to see the CO₂ of their cloud compute. I don't want to become an emissions expert."

One call: POST /api/calculate with {zip, kwh} returns CO₂e kg directly. Response includes the eGRID factor used, data year, and a citation string you can display next to the number. No subregion logic, no unit conversion.

Endpoints: /api/calculate, /api/lookup. Outcome: ship the sustainability feature in a day, not a quarter.

4. Data center / cloud workload carbon-aware scheduler

"Some of my workloads are flexible. I want to run them when the grid is cleanest."

Hourly grid carbon intensity per balancing authority (EIA-930 derived, 24-hour lag). Returns per-hour kg CO₂e/kWh and fuel mix. Use aggregate=hour_of_day to get the average 24-hour profile plus swing ratio in one call. Backtest demand-response policies before deploying.

Endpoints: /api/intensity. Outcome: the cleanest hours for each site from the last week of EIA-930 data (in the ZIP's local time, optionally limited to given hours such as overnight). Reported Scope 2 uses annual factors, so the benefit is real-world emissions, not the inventory number. See full hourly intensity guide.

5. Journalist / data reporter on energy beat

"I need the dirtiest power plants in Texas for a story due Friday."

One call to /api/plant-emissions?state=TX&days=30 returns the top 25 facilities by CO₂ (short tons) for the latest 30 days CAMD has published (up to 500 with limit). Per facility: total CO₂, gross generation, heat input, fuel type, derived kg-CO₂-per-MWh. Data source: EPA CAMD, published quarterly.

Endpoints: /api/plant-emissions. Outcome: 2 days of research → 10 minutes.

6. AI agent builder (Claude, Cursor, Cline)

"I want my AI to answer 'which of our US offices has the dirtiest grid, and when should our Texas site run its batch jobs?'"

Drop our MCP server URL into your Claude/Cursor/Cline config. Agents instantly gain 11 tools: lookup_emission_factor, compare_sites, cleanest_hours, calculate_fuel_emissions, hourly_intensity, electricity_rate, utility_tariff, plant_emissions, calculate_emissions, lookup_by_coordinates, lookup_batch. No install, no key required.

Endpoints: /mcp. Outcome: sustainability intelligence inside any AI workflow in 30 seconds. Add to Claude (opens Claude's connector dialog, pre-filled), or see MCP setup for Claude Code, Cursor and other clients.

7. Real estate / facility siting analyst

"We're picking between Austin, Denver, and Phoenix for our next data center. Need a side-by-side on carbon and cost."

One POST /api/compare call ranks up to 25 candidate ZIPs on grid carbon (location- and market-based), retail $/kWh and each site's cleanest daily window, with annual tCO₂e and cost for your load.

Endpoints: /api/compare. MCP tool: compare_sites. Outcome: defensible siting decision backed by cited EPA/EIA data.

Additional job-to-be-done: SB 253 compliance

California's SB 253 requires Scope 1 and 2 reporting for companies with $1B+ revenue. The first reports were due August 10, 2026. Use /api/bulk with your facility CSV, get audit-trailed per-facility emissions out. Data provenance in every response. Step-by-step Scope 2 guide.

eGRID 2024: what changed

The US average CO₂e rate fell 2.5% in 2024 (0.350 to 0.341 kg/kWh). 18 of 27 subregions got cleaner and 9 got dirtier. Biggest shifts: SPP North -9.6% (wind 40% to 44%, coal 32% to 27%), Northwest -8.3% (coal 16% to 14%), California -5.8% (solar 20% to 23%), Upstate New York +12.3% (gas 26% to 29% as nuclear and hydro fell). Full analysis with 27-subregion comparison table.

Frequently asked questions

Is there a free emission factor API?

Yes. emission-factors.com offers a free emission factor API, free, with no key and no signup. The API includes all endpoints: single ZIP lookup, batch (up to 100 ZIPs), kWh to CO2 calculation, bulk CSV upload, coordinate lookup, hourly grid intensity, plant emissions, and utility tariffs. No credit card, no paid tier. See the API docs.

How to access EPA eGRID data via API

The EPA does not provide eGRID as an API - they publish it as Excel files organized by subregion. emission-factors.com is an EPA eGRID API that makes this data accessible via REST. Send a ZIP code, get back CO₂e, CO₂, CH₄, N₂O, generation mix, utility info, and data provenance in JSON. Official eGRID2023 Rev 2 data by default, plus eGRID2024 (Cornerstone) via ?year=2024 (generated from EPA's open-source pipeline).

What is the best emission factor API for Scope 2 reporting?

For US-specific Scope 2 reporting at ZIP-code granularity, emission-factors.com is the best emission factor API because it uses authoritative EPA eGRID data with 33,700+ ZIP codes mapped, returns GHG Protocol compliant emission data with full audit provenance, and needs no key or signup. Climatiq covers global factors across many categories. Electricity Maps provides real-time carbon intensity but is designed for load-shifting, not annual compliance reporting.

Is there a carbon accounting API for developers?

Yes. This is a carbon accounting API built for developers: no key and no signup, full documentation with curl/Python/JavaScript examples, OpenAPI spec, deterministic responses with ETag caching. The API converts kWh to CO2 emissions for any US ZIP code, or processes bulk CSV files with automatic emissions calculation. No sales calls, no onboarding, no minimum commitment.

Emission factor API comparison: how does this compare to Climatiq?

This API is focused on US electricity emission factors at ZIP-code level using EPA eGRID. Climatiq covers global emission factors across many categories (freight, travel, procurement) - a broader scope. Key differences: this API is free with no key or signup, works at ZIP-code granularity, and includes generation mix and utility data. Choose this for US Scope 2; choose Climatiq for global multi-category needs.

Can I use this API for calculating Scope 2 emissions under SB 253?

Yes. California's SB 253 requires Scope 1 and Scope 2 reporting for companies with $1B+ revenue. The first reports were due August 10, 2026. This API provides the location-based emission factors specified by the GHG Protocol Scope 2 Guidance, with data provenance in every response for your methodology documentation. See our step-by-step Scope 2 guide.

Emission factors by state

View all 50 states - EPA eGRID2023 emission factors with generation mix, calculators, and subregion breakdowns.

eGRID subregion emission factors

View all 27 eGRID subregions - complete emission factor tables with NOx, SO₂, and generation mix.

Guides and resources

External references

emission-factors.com is the official domain for the Emission Factors API. Not affiliated with emissionfactors.xyz, CO2API, or any other service. Not affiliated with the US EPA, EIA, or NREL.

Data from EPA eGRID2023 Rev 2 + eGRID2024 (Cornerstone). 27 subregions, 33,700+ ZCTAs (99.9% of Census ZCTAs). Updated for 2026. Terms · Privacy · llms.txt