Sign up for an Electricity Maps API key at electricitymaps.com; free tier provides limited zone access, commercial tiers provide full coverage and historical data.
Include the API key in the auth-token request header for all calls.
Fetch the list of available zones via GET /v3/zones to get zone keys (e.g., 'DE', 'FR', 'US-CAL-CISO') and their display names; use the zone key in subsequent calls.
Retrieve current carbon intensity for a zone via GET /v3/carbon-intensity/latest?zone=<ZONE_KEY>; the response includes carbonIntensity (gCO2eq/kWh), datetime, and the data estimation method.
For hourly historical data, call GET /v3/carbon-intensity/history?zone=<ZONE_KEY> which returns the past 24 hours; for longer histories or power breakdown by source, use the appropriate history or past-range endpoints on paid tiers.
Known gotchas
Carbon intensity values represent grid average (consumption-based) intensity, not marginal intensity; for decisions about shifting flexible loads to minimize marginal emissions impact, WattTime's MOER data is more appropriate than Electricity Maps' average intensity.
Some zones have high estimation percentages (shown in the response as 'estimationMethod') meaning the data is modeled rather than measured; relying on heavily estimated zones for contractual carbon accounting requires additional validation.
Free tier zone access is restricted; queries for unsupported zones on the free tier return a 403 or empty response — build zone coverage checks into your application logic rather than assuming global coverage from any single tier.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp