Grid Alpha API
Integrate Grid Alpha's real-time telemetry and infrastructure project data into your own applications. Our API is protected and monetized via Unkey with Stripe metered billing.
Authentication
All API requests require a valid API key passed in the Authorization header as a Bearer token. Tokens are issued upon subscription and are billed via Stripe metering on a per-request basis.
REST Endpoints
/api/v1/zones/{province}
Retrieves the real-time grid context including Load, LMP, Interconnect margins, and Carbon Intensity for a given province.
Path Parameters
province- The 2-letter province code (e.g. ON, AB, BC).
Response
{
"province": "ON",
"status": "normal",
"data": {
"liveLoadMw": 18450,
"capacityMw": 22100,
"lmpPrice": 45.20,
"carbonIntensity": 32,
"interconnectMarginMw": 1200
},
"timestamp": "2023-10-27T14:00:00Z"
}/api/v1/ticker/{ticker}/exposure
Retrieves aggregated grid stress, margin safety, and hyperscale exposure mapped to a specific public utility stock.
Path Parameters
ticker- The stock symbol (e.g., FTS.TO, EMA.TO).
Response
{
"ticker": "FTS.TO",
"company_name": "Fortis Inc.",
"aggregated_exposure": {
"stranded_asset_risk_score": 0.65,
"regulatory_velocity": "High",
"subsidy_capture_rate": 0.82
},
"regions_exposed": ["BC", "ON", "AB"]
}/api/v1/regulatory/dockets
Fetch structured JSON representing regulatory velocity and pending interconnection requests parsed by AI.
Query Parameters
status- Filter by status (e.g., 'stalled', 'approved').ticker- Filter by affected utility ticker.
Response
{
"dockets": [
{
"id": "OEB-2023-0145",
"province": "ON",
"title": "Data Center Interconnection (400MW)",
"status": "pending",
"impact_score": 8.5,
"date_filed": "2023-10-15"
}
],
"count": 1
}Streaming API (WebSockets)
wss://api.gridalpha.com/stream
Connect to our WebSocket server for real-time anomaly signals and live interconnect arbitrage ticks.
Event Subscription
// Client sends
{
"action": "subscribe",
"channels": ["arbitrage_spreads", "capacity_alerts"]
}Rate Limits & Errors
If your API key runs out of credits or you exceed the rate limits, the API will return a 401 Unauthorized or 429 Too Many Requests response.
- 401 - Missing, invalid, or exhausted API key.
- 429 - Rate limit exceeded (Default: 10 requests / second).
- 500 - Internal server error connecting to the database.