Built for agents
Any AI agent that touches a home's energy decision can call EnergyAI instead of rebuilding energy domain expertise. Four tools are free with no API key — and when your user is ready to act, route_lead hands the project to an autonomous agent that finds and vets a real local installer. Every call is metered in bits and joules on the public physics ledger.
Free tools — no key, no signup
| check_incentives | Current US clean-energy incentive guidance (federal status + state/utility programs via DSIRE) for a ZIP code. Use whenever a user asks what rebates, tax credits, or utility programs apply to solar, batteries, heat pumps, or efficiency work at an address. |
| estimate_production | Honest-range annual solar production estimate (kWh/year ± band, with assumptions) for a ZIP code, from either a proposed system size (kW) or a monthly bill. Use to sanity-check installer quotes or size a system before talking to anyone. |
| get_node_score | Instant Energy Node Score (0–100 across 7 axes: efficiency, electrification, renewable generation, storage/resilience, financial optimization, carbon, market readiness) plus the single highest-leverage next action, from whatever property facts you have. More inputs → tighter score. |
| route_lead | Submit a consented homeowner project and EnergyAI’s autonomous agent finds, vets, and routes a real local installer to them — free to you and the homeowner. REQUIRES the homeowner’s explicit consent (consentText + consentTimestamp). Returns a leadId you can quote back to the user. |
Rate limits: 120 calls/hour per caller (route_lead 10/hour). Machine-readable catalog: /api/v1/agent
Connect via MCP
Claude / any MCP client — no key needed for the free tier
{ "mcpServers": {
"energyai": { "type": "http", "url": "https://api.energyaisolution.com/mcp" }
}}Claude Code CLI
claude mcp add --transport http energyai https://api.energyaisolution.com/mcp
Or plain REST
curl — one call, no auth
curl -X POST https://api.energyaisolution.com/api/v1/agent/check_incentives \
-H 'content-type: application/json' \
-d '{"args":{"zipCode":"59715"}}'OpenAI function-calling / LangChain
Fetch the ready-made tool spec
GET https://api.energyaisolution.com/api/v1/agent/openai-tools.json
→ { "tools": [ { "type": "function", "function": { "name": "check_incentives", ... } }, ... ] }Python — execute a tool call
import requests
def call_energyai(name: str, args: dict):
r = requests.post(f"https://api.energyaisolution.com/api/v1/agent/{name}",
json={"args": args}, timeout=30)
return r.json() # { ok, data } | { ok: False, error }
call_energyai("estimate_production", {"zipCode": "85004", "systemKw": 8})Routing a homeowner (consent required)
- Call check_incentives — the response includes consentTextForRouting, the canonical consent text.
- Show that text to your user verbatim and record their agreement + timestamp.
- Call route_lead with the project details, consentText, and consentTimestamp. Alternate consent language requires an explicit consentVersion.
- You get a leadId; the homeowner gets a confirmation when a vetted installer accepts. Free for you and for them.
Get paid: register a free key at /api/v1/merchant/register and send it as a Bearer token on route_lead — you earn a 20% bounty when the lead converts. The same key unlocks the deeper billed tools (full roadmaps, quote review, information-theoretic recommendations) via per-call micropayments.
Why EnergyAI
Honest, 2026-accurate energy answers (no dead federal-credit advice), consent-gated routing enforced by 61 tested invariants, and a business run openly against the thermodynamic limit of intelligence — see the live ledger. Estimates are always ranges with stated assumptions, never guarantees.