API version 2.1 — Live

The missing infrastructure for solar fintech.

Convert lat/long coordinates directly into kW production, 8760-hour load profiles, and dollar savings. Utility-grade accuracy. Millisecond latency.

Start Building View Documentation

Physics-based simulation engine.

We don't rely on simple monthly averages. Every quote is powered by a high-resolution simulation engine running across 8,760 hours of localized weather and tariff data.

SYS.01

8,760-Hour Precision

Instead of monthly estimates, we simulate all 8,760 hours of the year. We adjust baseline climate profiles against your actual consumption to model exactly when power is used.

SYS.02

Hyper-Local Climate Data

Map coordinates using proprietary mapping and a CEC-backed recognition formula to pinpoint utility territory, accounting for 50-meter overlaps.

SYS.03

Directional Solar Modeling

Cross-reference hardware, roof tilt, and azimuth with NREL production metrics to calculate exact yield.

SYS.04

Complex Tariffs & NEM 3.0

Run hourly net usage against actual utility rate engines. We handle TOU arbitrage, non-bypassable charges, and true Avoided Cost Calculator (ACC) export credits instantly.

A single endpoint to query potential.

Built for energy developers, not marketers. Pipe localized net-metering and shade data directly into your app.

POST
/v1/identify-rates
Geocode coordinates to identify utility territory, pre-solar and post-solar rate schedules, and climate zone.
GET
/v1/utilities/:slug/rates
List all rate schedules including TOU periods, tiered pricing, and solar eligibility.
POST
/v1/quotes
Generate a complete solar savings quote: hourly simulation, before/after bills, and 25-year NPV.
# Generate a full physical quote in millisecond latency
curl -X POST https://api.solarsavingsdata.com/v1/quotes \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA",
    "system_size_kw": 8.0,
    "annual_kwh": 10000
  }'
import { SolarAPI } from '@solarsavings/node';

const solar = new SolarAPI('sk_live_...');

const quote = await solar.quotes.create({
  address: '1600 Amphitheatre Parkway, Mountain View, CA',
  systemSizeKw: 8.0,
  annualKwh: 10000
});

console.log(quote.financials.year1Savings);
import solarsavings

solar = solarsavings.Client(api_key="sk_live_...")

quote = solar.quotes.create(
    address="1600 Amphitheatre Parkway, Mountain View, CA",
    system_size_kw=8.0,
    annual_kwh=10000
)

print(quote.financials.year1_savings)

Request API Keys

Get immediate access to the sandbox environment.