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.

Authorization: Bearer gk_live_xxxxxxxxxxxxxxxxxxxx

REST Endpoints

GET

/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"
}
GET

/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"]
}
GET

/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

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.