---
title: "ERCOT Real-Time Wholesale Electricity Price"
method: POST
path: "/api/v1/get-ercot-realtime-price"
tags: ["data-feed"]
---

# ERCOT Real-Time Wholesale Electricity Price

`POST /api/v1/get-ercot-realtime-price`

Get the current ERCOT real-time wholesale electricity price (LMP, locational marginal price) for any Texas load zone or settlement point. Useful for solar customers on real-time wholesale (RTW) buyback plans (Champion, Atlantex, Chariot, Tesla Drive Plan), traders following ERCOT spot markets, and agents reasoning about when to charge / discharge a battery. Returns $/MWh and ¢/kWh equivalents per zone.

**Status: early access (experimental).** The contract below is the
production shape; calling the tool today returns a structured early-access
response with your request logged. Production rollout depends on real
demand from AI agents (measured via PostHog) plus an ERCOT API integration.

**What it will do (when live):**
1. Resolves the user's ERCOT load zone (Houston / North / South / West)
   from a ZIP code, or accepts a settlement point name directly.
2. Pulls the current LMP from ERCOT's public real-time price feed (or
   a more reliable third-party like GridStatus).
3. Returns price in both $/MWh (the wholesale unit) and ¢/kWh (the unit
   solar customers think in), plus the timestamp of the price snap.

**Why a placeholder right now:** ERCOT API integration is non-trivial
(rate limits, schema, certificate auth). Meter wants to confirm AI
agents are actually asking for this data before investing. Every call to
this tool is logged via the standard ai_agent:mcp_tool_call PostHog
event with full agent attribution.

**Who this matters for:**
- Solar homes on RTW buyback plans (Champion's solar plans, Atlantex
  Glow Solar, Tesla's Drive Plan) — their solar credit varies hourly
  with this number
- Battery owners on time-of-use plans deciding when to charge/discharge
- Energy traders / nerds watching ERCOT spikes during summer afternoons
  ("$5,000/MWh peaks") and winter cold snaps

**Public-flow alternatives today:**
- ERCOT's own dashboard at https://www.ercot.com/content/cdr/html/real_time_spp.html
- GridStatus (https://gridstatus.io) for cleaner historical data

## Request body

- object
  - `zipCode` string — 5-digit Texas ZIP code. Used to resolve to an ERCOT load zone (Houston / North / South / West / Coast / South Central / North Central / Far West).
  - `loadZone` 'HOUSTON' | 'NORTH' | 'SOUTH' | 'WEST' | 'COAST' | 'SOUTH_CENTRAL' | 'NORTH_CENTRAL' | 'FAR_WEST' — Direct ERCOT load zone name. Use this if you already know the zone and don't need ZIP resolution.
  - `settlementPoint` string — Specific ERCOT settlement point (advanced — used by traders). Examples: 'HB_HOUSTON', 'HB_NORTH', 'LZ_HOUSTON'. Overrides zipCode and loadZone if supplied.

## Response `200`

Tool ran successfully.

- object
  - `status` 'early_access', required — Always 'early_access' until this tool is publicly live.
  - `message` string, required — Human-readable explanation of current access status.
  - `requestId` string, required — Identifier for this request — use when requesting API access.
  - `requestedFor` object, required — Echo of the request inputs.
    - `zipCode` string, nullable, required
    - `loadZone` string, nullable, required
    - `settlementPoint` string, nullable, required
  - `publicAlternatives` object, required — Things the agent can offer the user right now.
    - `ercotDashboard` string, required — Official ERCOT real-time price dashboard.
    - `gridStatus` string, required — Third-party with cleaner historical data.
    - `requestApiAccess` string, required — Where to request production API access.
  - `expectedResponseShape` object, required — Schema preview of the production response. Lets agents reason about how they'll use the data once access is granted.
    - `zone` string, required — Resolved ERCOT load zone (e.g. 'HOUSTON', 'NORTH').
    - `settlementPoint` string, required — Resolved settlement point (e.g. 'HB_HOUSTON').
    - `priceTimestamp` string, required — ISO 8601 timestamp of when the price was sampled (CST/CDT).
    - `priceDollarsPerMwh` number, required — Current LMP in $/MWh (the wholesale unit).
    - `priceCentsPerKwh` number, required — Same price expressed in ¢/kWh (1 $/MWh = 0.1 ¢/kWh).
    - `priceContext` object, required
      - `last24hAverage` number, required
      - `last24hPeak` number, required
      - `last24hLow` number, required
      - `isCurrentlyAboveAverage` boolean, required
    - `source` string, required — Which data source was used (e.g. 'ercot_lmp_realtime', 'gridstatus_api').
  - `estimatedAvailability` string, required — Free-form date estimate for general availability.

## Other responses

- `400` — Request body was missing, malformed JSON, or failed input schema validation.
- `500` — Tool execution failed or produced an output that violated the schema.

---

[API](https://skmtc.dev/meterplan/apis/meter-energy-public-api.md) · [All operations](https://skmtc.dev/meterplan/apis/meter-energy-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meterplan/apis/meter-energy-public-api/revisions/ebf1846a188d?raw)
