For software platforms
Your users approve once through their own utility. You get up to 12 months of hourly usage as JSON or CSV, the same way across 18 live Ontario utilities.
{
"environment": "live",
"simulated": false,
"account_id": "0b8f6a2e-4c1d-4e7a-9a53-2f1c6d0e9b71",
"utility": "newmarket_tay",
"timezone": "America/Toronto",
"interval": "1h",
"period": { "start": "2025-10-01", "end": "2026-09-30", "total_days": 365 },
"usage": [
{ "timestamp": "2025-10-01T00:00:00-04:00", "kwh": 0.82, "quality": "actual" },
…
],
"summary": {
"annual_kwh": 16600,
"avg_daily_kwh": 45.5,
"peak_hour": 18,
"peak_month": 1,
"data_quality_score": 98
}
}Milton Hydro and Synergy North in testing · View coverage map
Data is shared by homeowners through Green Button Connect My Data, the utilities' own authorization standard.
How it works
Send a UUID you generate for the customer, their utility code and your redirect URL. PeakShift returns an authorization_url to open for them.
curl -X POST https://www.peakshift.ca/api/v1/auth/consent/initiate \
-H "Authorization: Bearer $PEAKSHIFT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "0b8f6a2e-4c1d-4e7a-9a53-2f1c6d0e9b71",
"utility": "newmarket_tay",
"redirect_uri": "https://app.example.com/peakshift/callback"
}'They sign in to the utility account they already have and approve read-only Green Button access. They return to your redirect URL.
Newmarket-Tay Power
Share 12 months of electricity usage with your app?
Request hourly, daily or monthly usage as JSON or CSV. Register a webhook (beta) to hear when new data is ready.
curl "https://www.peakshift.ca/api/v1/accounts/$ACCOUNT_ID/energy-profile?granularity=hourly&format=json" \
-H "Authorization: Bearer $PEAKSHIFT_API_KEY"What we handle
Every utility has its own authorization flow and data quirks. PeakShift absorbs them behind one schema.
PeakShift
Your team
Endpoints
Security
Access is granted by the homeowner at their own utility, read-only and revocable. PeakShift never sees their utility password.
Each API key only sees the accounts it connected. Sandbox and live keys are separate (pk_sandbox_… and pk_live_…).
Webhook payloads carry an HMAC-SHA256 signature in X-Webhook-Signature. Only https endpoints on public hosts are accepted.
Encrypted in transit and at rest, on SOC 2 Type II audited providers (Supabase, Vercel).
Pricing
FAQ
From the homeowner’s own utility, through Green Button Connect My Data. The homeowner signs in to their utility account and approves read-only access. PeakShift does not scrape utility websites or ask homeowners for their utility passwords.
Simulated data for every live utility, a real consent flow and the same endpoints as production. Tell us what you are building and we will send a sandbox key.