AI Energy Calculator API - Electricity, Water & CO₂ of Any AI Model
Estimate the electricity, water, and carbon footprint of running any AI model with a single API call. The AI Energy Calculator API models the energy of AI inference from the tokens up, then reports an honest P5-P95 range for energy (Wh), water (mL), and CO₂ (gCO₂e) per query, per month, and per year.
Build model-comparison tools, sustainability dashboards, green-AI reporting, or per-request carbon labels. The API covers 45+ models across 9 providers (OpenAI, Anthropic, Google, xAI, DeepSeek, Moonshot, Mistral, and self-hosted open weights), accounts for your region's grid and water intensity, and flags how much to trust each result. When you want to neutralize the footprint, capture the carbon in one more call. Try the free AI Energy Calculator to see it instantly in your browser.
How it works
When you submit a scenario to the API, the following happens:
- Token modelling: The input and output token counts for your workload (chat, RAG, coding agent, reasoning, …) set how much text the model generates, because energy scales with generated tokens.
- Monte-Carlo sampling: Node power, data-center overhead (PUE), and throughput are each sampled thousands of times, so the result is a distribution, not a single false-precise number.
- Water & carbon: A two-term water model (on-site cooling + off-site grid water) and your region's grid intensity turn energy into millilitres of water and grams of CO₂, reported both location-based and market-based.
- Confidence: Every result carries a confidence grade (
measured,derived, orestimated) and an uncertainty factor, because closed models publish no specs and must be inferred from comparable open ones.
Read the full methodology or the FAQ.
Both endpoints require a valid API key and each call counts as 1 API call toward your usage. Numbers are informed estimates, not meter readings, always read the range, not just the midpoint.
Calculate AI energy
This endpoint runs one scenario through the energy engine and returns the full footprint (electricity, water, and carbon) as P5 / median / P95 bands across three time bases (per query, per month, per year), plus a breakdown, human-scale equivalents, the resolved assumptions, and a confidence report.
Only model_id and scale are strictly required. Every other field falls back to a documented default (see GET /v1/ai_energy/options for all valid ids and the current defaults).
Required request body attributes
- Name
model_id- Type
- string
- Description
The model to estimate, e.g.
gpt-5.5,claude-fable-5,gemini-3-pro,llama-3.1-405b. Usegeneric-frontierfor a provider-agnostic frontier model. SeeGET /v1/ai_energy/optionsfor the full list.
- Name
scale- Type
- object
- Description
How much the model is used per month.
modeselects how you express volume:queries(default),tokens, orusers.
- Name
scale.mode- Type
- string
- Description
One of
queries,tokens, orusers. Determines which of the fields below are read.
- Name
scale.queries_per_month- Type
- number
- Description
Number of queries per month. Read when
modeisqueries. Example:1000000.
- Name
scale.input_tokens_per_month- Type
- number
- Description
Total input tokens per month. Read when
modeistokens.
- Name
scale.output_tokens_per_month- Type
- number
- Description
Total output tokens per month. Read when
modeistokens.
- Name
scale.users- Type
- number
- Description
Number of active users/seats. Read when
modeisusers(withqueries_per_user_per_day).
- Name
scale.queries_per_user_per_day- Type
- number
- Description
Queries per user per day. Read when
modeisusers.
Optional request body attributes
- Name
region_id- Type
- string
- Description
Grid & water region for carbon and water intensity, e.g.
us-average,fr,in,eu-average. Defaults tous-average.
- Name
workload_id- Type
- string
- Description
The task shape, which sets typical token counts, e.g.
chat,rag,code-agent,reasoning. Defaults tochat.
- Name
regime_id- Type
- string
- Description
Serving regime (how aggressively requests are batched), e.g.
production-saturated,balanced,single-stream. Defaults toproduction-saturated.
- Name
boundary_id- Type
- string
- Description
What to include in the energy boundary:
accelerator,node, orcomprehensive. Defaults tocomprehensive(full serving stack, recommended).
- Name
input_tokens- Type
- number
- Description
Override the workload's median input token count for this request.
- Name
output_tokens- Type
- number
- Description
Override the workload's median output token count. Output length is the single biggest driver of per-query energy.
- Name
cache_hit_rate- Type
- number
- Description
Share of input tokens served from a prompt cache,
0.0-1.0. Higher values reduce prefill energy.
- Name
reasoning- Type
- boolean
- Description
Set to
trueto switch a hybrid model into extended-thinking mode (far more output tokens, much higher energy). Defaults tofalse.
- Name
input_modality- Type
- string
- Description
text,image, orvideo. Applies the measured multimodal energy premium. Defaults totext.
- Name
batch_size- Type
- integer
- Description
Explicit serving batch size. Only meaningful for self-hosted deployments; API consumers do not control their provider's batching.
- Name
include_embodied- Type
- boolean
- Description
Include embodied (hardware manufacturing) emissions in
co2e_total. Defaults totrue.
- Name
samples- Type
- integer
- Description
Monte-Carlo sample count. Higher is smoother but slower. Defaults to
4000.
- Name
overrides- Type
- object
- Description
Advanced: substitute your own facility/grid figures (
pue,wue_onsite_l_kwh,ewif_l_kwh,grid_ci_gco2_kwh,market_ci_gco2_kwh). Any omitted field falls back to the catalog.
Response attributes
- Name
per_query- Type
- object
- Description
Footprint for a single query. Contains
energy(Wh),water_total/water_onsite/water_offsite(mL), andco2e_location_based/co2e_market_based/co2e_embodied/co2e_total(gCO₂e). Each is a band withp5,p50,p95, andmean.
- Name
per_month- Type
- object
- Description
The same eight quantities scaled to your monthly volume. Energy in kWh, water in L, CO₂ in kg.
- Name
per_year- Type
- object
- Description
The same quantities scaled to a year (monthly × 12). Energy in kWh, water in L, CO₂ in kg.
- Name
breakdown- Type
- object
- Description
Where the energy goes, in percent:
accelerator_pct,host_cpu_memory_pct,idle_capacity_pct,facility_overhead_pct, plusprefill_pct/decode_pctandcache_savings_pct.
- Name
equivalents- Type
- object
- Description
Human-scale comparisons keyed by
carbon,energy, andwater(e.g. tree-years, smartphone charges, showers). Each entry has anid,label,value, and optionalbasis.
- Name
assumptions- Type
- object
- Description
Every resolved input echoed back for reproducibility: model, provider, hardware, region, workload, token counts, batch size, PUE, grid and water intensities,
queries_per_month, and more.
- Name
confidence- Type
- object
- Description
How much to trust the numbers:
overall(measured|derived|estimated),uncertainty_factor(P95/P5 on monthly energy), plusdriversandcaveatsarrays explaining why.
- Name
warnings- Type
- array
- Description
Any load-bearing caveats for this specific scenario (e.g. a closed model whose specs are inferred). Always an array, possibly empty.
- Name
sources- Type
- array
- Description
The primary sources behind the coefficients used, each with a
keyand acitation.
- Name
units- Type
- object
- Description
A map of each field path to its unit (e.g.
per_query.energy→Wh,per_month.co2e→kg), so you never have to guess.
- Name
data_version- Type
- string
- Description
The coefficient dataset version, e.g.
2026.08. Bumped whenever measurements are refreshed.
Request
curl --location 'https://api.1clickimpact.com/v1/ai_energy/calculate' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {PRODUCTION API KEY}' \
--data '{
"model_id": "claude-fable-5",
"workload_id": "chat",
"region_id": "us-average",
"scale": { "mode": "queries", "queries_per_month": 1000000 }
}'
Response
{
"per_query": {
"energy": { "p5": 0.033, "p50": 0.262, "p95": 0.980, "mean": 0.350 },
"water_total": { "p5": 0.522, "p50": 1.037, "p95": 2.001, "mean": 1.113 },
"water_onsite": { "p5": 0.026, "p50": 0.050, "p95": 0.092, "mean": 0.053 },
"water_offsite": { "p5": 0.496, "p50": 0.988, "p95": 1.906, "mean": 1.060 },
"co2e_location_based": { "p5": 0.059, "p50": 0.117, "p95": 0.226, "mean": 0.126 },
"co2e_market_based": { "p5": 0, "p50": 0, "p95": 0, "mean": 0 },
"co2e_embodied": { "p5": 0.006, "p50": 0.011, "p95": 0.022, "mean": 0.012 },
"co2e_total": { "p5": 0.070, "p50": 0.130, "p95": 0.241, "mean": 0.138 }
},
"per_month": {
"energy": { "p5": 158.0, "p50": 314.5, "p95": 607.1, "mean": 337.6 },
"water_total": { "p5": 521.7, "p50": 1037.1, "p95": 2000.8, "mean": 1113.0 },
"co2e_total": { "p5": 70.4, "p50": 129.7, "p95": 240.7, "mean": 138.2 }
},
"per_year": {
"energy": { "p5": 1896, "p50": 3775, "p95": 7285, "mean": 4051 },
"water_total": { "p5": 6260, "p50": 12446, "p95": 24009, "mean": 13356 },
"co2e_total": { "p5": 844, "p50": 1556, "p95": 2888, "mean": 1659 }
},
"breakdown": {
"accelerator_pct": 58, "host_cpu_memory_pct": 24,
"idle_capacity_pct": 10, "facility_overhead_pct": 8,
"prefill_pct": 52.68, "decode_pct": 47.32, "cache_savings_pct": 8.91
},
"equivalents": {
"carbon": [{ "id": "tree-years", "label": "tree-years of sequestration", "value": 6.18 }],
"energy": [{ "id": "phone-charges", "label": "smartphone charges", "value": 25786 }],
"water": [{ "id": "showers", "label": "8-minute showers", "value": 17.0 }]
},
"assumptions": {
"model_id": "claude-fable-5", "model_name": "Claude Fable 5",
"model_confidence": "estimated", "provider_name": "Anthropic",
"hardware_name": "NVIDIA DGX B200 (8x B200)",
"region_name": "United States (national average)",
"workload_name": "General chat assistant",
"queries_per_month": 1000000, "include_embodied": true, "samples": 4000
},
"confidence": {
"overall": "estimated", "uncertainty_factor": 3.84,
"drivers": ["This model's specs are undisclosed; its energy scalar is inferred from comparable open models."],
"caveats": ["Off-site water intensity is the weakest coefficient; treat water as an order-of-magnitude guide."]
},
"warnings": [],
"sources": [
{ "key": "oviedo", "citation": "Oviedo et al., 'Energy Use of AI Inference…', Joule (2026). arXiv:2509.20241" }
],
"units": {
"per_query.energy": "Wh", "per_query.water": "mL", "per_query.co2e": "g",
"per_month.energy": "kWh", "per_month.water": "L", "per_month.co2e": "kg"
},
"data_version": "2026.08"
}
Get options
Returns everything you need to build a request or render a UI: the full catalog of models, providers, hardware, regions, workloads, regimes, and boundaries, plus the current default ids. The embedded coefficient catalog is the single source of truth, so you never have to hard-code an option list.
This is a read-only metadata endpoint. It requires an API key and counts as 1 API call per request. Cache the response; the catalog only changes when data_version is bumped.
Response attributes
- Name
data_version- Type
- string
- Description
The coefficient dataset version, e.g.
2026.08. Compare it to your cached copy to know when to refresh.
- Name
schema_version- Type
- string
- Description
The catalog schema version, e.g.
1.0.0.
- Name
models- Type
- array
- Description
Every supported model with its
id,display_name,provider,confidence,reasoning_mode, parameter counts, and alogo_url.
- Name
models_by_provider- Type
- object
- Description
The same models grouped by provider id, convenient for building grouped dropdowns.
- Name
providers- Type
- object
- Description
Provider metadata (cloud, PUE, water-use effectiveness, default region, whether they disclose per-query figures), keyed by provider id.
- Name
hardware- Type
- object
- Description
Serving hardware profiles (GPUs per node, node power, idle power), keyed by hardware ref.
- Name
regions- Type
- array
- Description
Grid & water regions with carbon intensity, water intensity, and water-stress level.
- Name
workloads- Type
- array
- Description
Task presets with their median input/output token counts and typical cache-hit rate.
- Name
regimes- Type
- array
- Description
Serving regimes with their energy multiplier and implied batch size.
- Name
boundaries- Type
- array
- Description
Energy boundaries (
accelerator,node,comprehensive) and what each includes.
- Name
generative_units- Type
- array
- Description
Per-unit energy for generative media (image, video), for advanced multimodal estimates.
- Name
defaults- Type
- object
- Description
The default ids used when a field is omitted from a calculate request.
Request
curl --location 'https://api.1clickimpact.com/v1/ai_energy/options' \
--header 'x-api-key: {PRODUCTION API KEY}'
Response (truncated)
{
"data_version": "2026.08",
"schema_version": "1.0.0",
"models": [
{
"id": "claude-fable-5",
"display_name": "Claude Fable 5",
"provider": "anthropic",
"confidence": "estimated",
"reasoning_mode": "optional",
"logo_url": "https://images.1clickimpact.com/ai/anthropic.svg"
}
],
"providers": {
"anthropic": { "display_name": "Anthropic", "cloud": "AWS / Google Cloud", "pue": 1.12 }
},
"regions": [
{ "id": "us-average", "display_name": "United States (national average)" }
],
"workloads": [
{ "id": "chat", "display_name": "General chat assistant" }
],
"defaults": {
"model_id": "generic-frontier",
"workload_id": "chat",
"regime_id": "production-saturated",
"boundary_id": "comprehensive",
"region_id": "us-average",
"include_embodied": true
}
}
Option reference
The tables below list the most common ids. Call GET /v1/ai_energy/options for the authoritative, always-current set (including all 45+ models and 30+ regions).
Workloads
| id | Task |
|---|---|
chat-short | Short chat / Q&A |
chat | General chat assistant (default) |
long-chat | Multi-turn conversation |
rag | RAG / document Q&A |
summarization | Summarisation |
code-completion | Code completion |
code-agent | Coding agent |
reasoning | Reasoning / problem solving |
deep-agentic | Deep agentic workflow |
Serving regimes
| id | Meaning |
|---|---|
production-saturated | Large-scale production (default) |
balanced | Moderate traffic |
low-batch | Latency-optimised / low batch |
single-stream | Single request, no batching |
Energy boundaries
| id | Includes |
|---|---|
accelerator | Accelerators (GPUs) only |
node | Server node + facility overhead (PUE) |
comprehensive | Full serving stack, incl. idle capacity (default, recommended) |
Popular regions
| id | Region | Notes |
|---|---|---|
us-average | United States (national average) | default |
eu-average | European Union (average) | |
fr | France | Very low-carbon grid |
de | Germany | |
uk | United Kingdom | |
in | India | High-carbon grid |
sg | Singapore | High water stress |
Offset the footprint
Once you have a monthly CO₂ estimate, neutralize it in one call with the Capture Carbon API. Wire it into checkout, a cron, or a Zapier zap so every AI request you make is offset in real time.
Offset a monthly estimate
curl --location 'https://api.1clickimpact.com/v1/capture_carbon' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {PRODUCTION API KEY}' \
--data '{ "amount": 130 }'
Methodology
The AI Energy Calculator API builds energy from the tokens up, using the token-throughput model from the Joule (2026) study, then runs a Monte-Carlo over the uncertain coefficients so the answer is an honest range rather than a false-precise number.
- Electricity:
E_query = PUE · P_node[kW] · (tokens_eff / TPS) / 3.6, wheretokens_effaccounts for prefill, decode, and prompt caching, andTPS(node throughput) is fitted from public benchmarks. - Water: a two-term model, on-site cooling water (
E_IT · WUE_onsite) plus off-site grid water (E_total · EWIF(region)). - Carbon: reported both location-based (
E · grid_intensity(region)) and market-based (E · provider_matched_intensity), with optional embodied emissions.
Closed models publish no specs, so those figures are inferred from comparable open-weight models and flagged estimated with a wider band. The engine replays published measurements on every build, if a coefficient drifts a result outside its measured band, the build fails.
Sources
- Oviedo et al., "Energy Use of AI Inference," Joule (2026): the token-throughput energy model.
- Google, "Measuring the environmental impact of AI inference" (2025): the only provider per-prompt disclosure.
- EPA eGRID & Ember: grid carbon intensity; WRI Aqueduct: regional water stress.
- Free AI Energy Calculator: try any model instantly in your browser.
- Full methodology and FAQ.

