Universal Energy API for Autonomous Systems — a blended abstraction over solar, wind, nuclear, hydro, fossil, batteries, and surplus.
RFC stageEnergy markets are fragmented across incompatible protocols and interfaces:
There is no unified abstraction layer for comparing prices, booking capacity, or executing trades across all energy types.
energy.md normalizes solar, wind, nuclear, hydro, fossil, battery, and miner surplus into a single, agent-native schema. Every source looks the same at the protocol level — queryable, comparable, and bookable.
GET /sources?min_mw=100&max_price=50&location=us-west
Find available power by capacity, price, location, reliability — regardless of whether the backend is solar, gas, or nuclear.
{
"endpoint": "/btc-miners",
"description": "Monetize mining downtime",
"providers": [
{
"id": "riot_platforms_texas",
"capacity_mw": 700,
"price_mwh": 2.80,
"btc_mining": "paused",
"availability": "immediate"
},
{
"id": "marathon_digital_montana",
"flare_gas_mw": 280,
"price_mwh": 3.50,
"uptime": 0.98
}
]
}POST /book
{
"buyer": "anthropic_training_cluster_7",
"mw_required": 100,
"duration_hours": 168,
"start": "2024-01-15T00:00:00Z"
}| Source Type | Capacity (GW) | $/MWh | Availability |
|---|---|---|---|
| Bitcoin Miners | 20 | $2.80 | Immediate |
| Natural Gas | 450 | $45 | On-demand |
| Nuclear | 95 | $65 | Baseload |
| Hydro | 80 | $38 | Seasonal |
| Solar | 150 | $31 | Daylight |
| Wind | 140 | $28 | Variable |
All sources are surfaced through one endpoint, instead of siloed contracts and protocols.
Today, procuring 50 GWh for a GPT-5-scale run requires manual PPAs, fragmented negotiations, and no cross-region optimization.
With energy.md, power becomes a universal digital primitive:
# AI training cluster needs 100MW for a week
import requests
sources = requests.get('https://energy.md/discover', {
'mw_needed': 100,
'duration_hours': 168,
'include_miners': True
}).json()
deal = requests.post('https://energy.md/book', {
'source_id': sources['cheapest']['id'],
'mw': 100,
'hours': 168
}).json()
print(f"Secured {deal['mw']} MW at $\{deal['total_cost']:,}")
print(f"Source: {deal['provider_type']}")Once energy.md becomes the default blended endpoint:
energy.md
© 2025 energy.md authors · MIT License · Exploratory specification