Home › Developers

Plug-In Solar Legality Dataset — Free Developer API

Free, machine-readable plug-in / balcony solar legality data for all 50 U.S. states. JSON over plain HTTPS, no auth, no API key, no rate limit. For AI agents, energy startups, news outlets, and integrators.

Last verified: June 14, 2026 · Schema: v1.0 · Coverage: 50/50 states

What this is

A structured, version-controlled view of the 50-state plug-in solar legality tracker. We re-check each state’s legal status, average electricity rate, main utilities, and any in-flight plug-in solar legislation (bill number, governor, cap in watts, effective date, source URL) and publish the structured result as JSON. Each state record is fully self-contained.

Why it exists: plug-in solar laws are moving fast (six states have signed legislation in 2026; two more are awaiting governor signatures) and most published trackers are PDFs or hand-curated tables. Agents and AI assistants need a stable JSON endpoint.

Update cadence: updated as bills move. The dataset’s top-level last_updated reflects the latest re-verification pass.

Endpoints

JSON endpoints
EndpointPurpose
GET /data/plug-in-solar-laws.jsonFull dataset — all 50 states + top-level metadata in one document
GET /data/states/index.jsonDirectory listing — one entry per state with its slug, status, and file path
GET /data/states/<slug>.jsonPer-state record (self-contained, includes inherited schema_version + last_updated)

All responses are application/json served from GitHub Pages over HTTPS. No CORS restrictions for read.

Schema

State record schema
FieldTypeDescription
schema_versionstringDataset schema version (currently "1.0").
last_updatedstring (YYYY-MM-DD)Date of latest re-verification pass on the master dataset.
sourcestring (URL)Human-readable source for the data (the state-legality tracker page).
statestringState name (e.g. "New York").
slugstringURL slug used across the site (e.g. "new-york").
statusstringPlain-English legality summary (e.g. "Legal — signed (effective Oct 1, 2026)").
status_badge_verbatimstringThe exact badge text shown on the state page.
avg_rate_centsintegerApproximate average residential electricity rate in cents/kWh.
main_utilitiesstring[]Major investor-owned utilities serving the state (only when explicitly named on the page).
page_urlstring (URL)Canonical URL of the corresponding human-facing state page.
last_reviewedstring (YYYY-MM-DD)Date this state record was last reviewed.
legislationobject | nullVerified plug-in / balcony solar legislation. null if no plug-in-specific statute exists yet.
legislation.billstringBill number (e.g. "HB 5340", "A.9111C / S.8512C").
legislation.statusstringOne of "signed", "passed_awaiting_governor", "introduced".
legislation.datestringBill action date (e.g. signing date or chamber-passage date).
legislation.effectivestring | nullEffective date if known.
legislation.max_wattsintegerWatt cap allowed under the bill.
legislation.cert_requiredstringRequired certification (e.g. UL or equivalent accredited testing laboratory).
legislation.signed_bystring | nullGovernor who signed (if signed).
legislation.source_urlstring (URL)Authoritative source for the bill information.
legislation.notesstringOne-line context (e.g. unique aspects like Colorado’s 1,920W cap).

Example usage

curl

# Fetch the New York record
curl -s https://pluginsolarhub.org/data/states/new-york.json

# Get the full dataset and grep for signed legislation
curl -s https://pluginsolarhub.org/data/plug-in-solar-laws.json \
  | jq '.states[] | select(.legislation.status == "signed") | {state, bill: .legislation.bill, date: .legislation.date}'

JavaScript (browser / Node 18+)

// Find every state where plug-in solar is legally signed
const data = await fetch(
  "https://pluginsolarhub.org/data/plug-in-solar-laws.json"
).then(r => r.json());

const signed = data.states.filter(
  s => s.legislation?.status === "signed"
);

console.log(`${signed.length} states have signed plug-in solar laws:`);
for (const s of signed) {
  console.log(`  ${s.state} — ${s.legislation.bill} (${s.legislation.date})`);
}

License & terms

Free to use with attribution. If you display or republish this data, please link back to pluginsolarhub.org/state-legality/ as the source. AI agents may use it without explicit attribution per record, but should reference the source domain in their citation chain.

For bulk pulls, commercial integrations, or guaranteed-SLA update notifications, please reach out via the contact page. We’re happy to discuss data partnerships, custom feeds, and webhook delivery.

This is an initial informational license statement, not a formal legal document. Use is at your own risk.

Accuracy & disclaimer

This dataset is informational, not legal advice. Plug-in solar legislation moves fast and utility-level interconnection rules vary within a state. Before installing a kit, always confirm current rules with your utility (e.g. Eversource, Con Edison, NYSEG, Xcel Energy, PG&E) and your state’s public utilities commission.

We re-verify each state record at least every several weeks and immediately after any state-level legislation event (sign / veto / passage). The last_reviewed field on each state record reflects the actual verification timestamp.

If you find a stale or incorrect entry, please reach out — we update fast.

Data partnerships

Building something with this data? We’d love to hear about it — whether you’re a solar startup, energy news outlet, AI assistant, or analytics platform. Drop us a line via the contact page and we can discuss webhook-style update notifications, bulk historic data, or custom slices.
Schema version 1.0. Last verified June 14, 2026. Use this data at your own risk — informational, not legal advice. Verify current rules with your utility and state authority.