API REFERENCE

The buildout, as your agent calls it.

An agent-first, source-cited data layer for the US buildout. Two transports, one contract — call it from MCP or REST and get identical, cited JSON. The authoritative, machine-readable reference is always the live /v1/capabilities and each tool's describe schema.

The loop

Designed so an agent never has to guess:

discover describe query verify

Two surfaces, one contract

SurfaceEndpoint
Agent discovery cardGET /.well-known/agent.json
MCP discoveryGET /.well-known/mcp
MCP (streamable-http)https://api.exascale.build/mcp
REST — discoverGET /v1/capabilities
REST — schemaGET /v1/power/capacity/schema
REST — queryPOST /v1/power/capacity/query
REST — evidencePOST /v1/evidence/source-row

Point an agent at the discovery card and it gets the whole map — endpoints, capabilities, and auth posture — in one GET.

Capabilities

Data pointWhat it answers
power.capacityOperating / planned / retired generator capacity (MW) — EIA-860Mlive
power.generationNet generation (MWh) by fuel, state, BA — EIA-923live
power.capacity_factorHow hard a fleet runs — generation ÷ (capacity × hours), cited to both sourceslive
power.demandHourly electricity demand (MW) by balancing authority — EIA-930live
power.retail_salesAnnual retail sales (MWh), revenue, and customers by state & sector — EIA-861live
AI infra · Space · RoboticsThe machine-economy packs, on the power substraterolling out

A query, and what comes back

curl -X POST https://api.exascale.build/v1/power/capacity/query \
  -H 'content-type: application/json' \
  -d '{"group_by":["state"],"order_by":"nameplate_mw","top_n":3}'
{
  "as_of": "2026-04-01",
  "summary": { "group_count": 51, "totals": { "nameplate_mw": 1392666.4 } },
  "rows": [
    { "group": {"state":"TX"}, "metrics": {"nameplate_mw": 200429.4},
      "lineage": {"citation_ref": "c1"} }
  ],
  "citations": { "c1": { "source_rows_count": 2437,
    "verify": { "source_id":"energy.eia.eia860m", "source_file":"april_generator2026.xlsx",
                "sheet":"Operating", "source_row":26, "raw_file_sha256":"ec15…",
                "as_of":"2026-04-01" } } }
}

Pass that verify object to /v1/evidence/source-row and the response includes "hash_verified": true with the literal row values — proof, in one call.

Honesty by design

Each tool declares what it won't answer (e.g. capacity is MW, not generation MWh), so your agent declines out-of-scope questions instead of fabricating. Results also carry scope notes on known traps (cumulative vs. flow, region scope, signed measures). Defaults are sensible (current operating fleet, US-only) and never gate what you can reach.

Troubleshooting

Errors are designed to tell an agent what to do next, not just fail:

Still stuck? Email team@exascale.build.

Connect your agent → · Terms · Privacy