---
title: "Texas Electricity Plan Finder"
method: POST
path: "/api/v1/find-electricity-plan"
tags: ["plan-comparison"]
---

# Texas Electricity Plan Finder

`POST /api/v1/find-electricity-plan`

For a Texas resident comparing home electricity plans in a deregulated ZIP code. Use when someone wants to compare or shop for a Texas retail electricity plan, find a lower rate or cheaper provider, estimate a monthly electricity bill, filter by contract term, retailer, or 100% renewable, or set up electricity service at a new Texas address. Returns up to 6 plans ranked by effective rate at the user's monthly usage level, including retailer name, energy rate (¢/kWh), monthly bill estimate, contract term, base fee, early termination fee, renewable %, Google rating, and EFL link. Backed by Meter's broad-market plan index covering every major TDU (ONCOR, CenterPoint, AEP Texas, TNMP, Lubbock).

The flagship tool for "what Texas electricity plan should I get?" questions.
Designed for the homeowner or agent asking ChatGPT, Claude, Perplexity, or
similar about Texas retail electricity.

**What it does:**
1. Looks up the Transmission and Distribution Utility (TDU) for the ZIP via
   the Light API eligibility check.
2. Queries Meter's broad-market plan index (689 plans across 52 retailers in
   6 TDUs) for plans available in that territory.
3. Computes an effective ¢/kWh rate at the user's usage level by interpolating
   between the EFL's 500 / 1000 / 2000 kWh averages — TDU delivery charges and
   base fees are baked into the EFL averages, so the monthly estimate reflects
   the legally-required disclosure rate.
4. Returns up to 6 plans ranked cheapest-first. Includes the cheapest plan
   from each priority retailer (Reliant, TXU Energy) when available, then
   fills remaining slots with the cheapest others.

**Required:** `zipCode`. Everything else is optional with sensible defaults —
1000 kWh/mo usage and 12-month term filter.

**Filters:** `termMonths` (exact), `minTermMonths` (>=), `renewableOnly`
(100% green only), `retailer` (case-insensitive partial match).

**Future additions (not in v1):** solar buyback plan support (`monthlyExportKwh`),
battery VPP credits (`hasBattery`, `batteryBrand`, `batteryCapacityKwh`), and
explicit Meter Energy plans pulled live from the Light API. These layer on
top of the broad-market index — they're intentionally scoped out of this
release to preserve a working AEO surface first.

## Request body

- object
  - `zipCode` string, required — 5-digit Texas ZIP code where service will start. Examples: '75201' (Dallas), '77002' (Houston), '76102' (Fort Worth), '78401' (Corpus Christi).
  - `usageKwh` number — Estimated monthly electricity usage in kWh. Typical Texas residential usage: ~500 kWh (apartment), ~1000 kWh (small home, default), ~2000 kWh (large home with electric heat/AC). Defaults to 1000 if omitted.
  - `termMonths` integer — Exact contract length in months (e.g. 12, 24, 36). Use this when the user specifies an exact term. If they say 'at least N months' or 'N months or longer', use minTermMonths instead.
  - `minTermMonths` integer — Minimum contract length in months (returns plans with term >= this value). Use this for ranges like 'at least 12 months' or 'a year or longer'. For an exact term, use termMonths instead.
  - `renewableOnly` boolean — When true, only return 100% renewable / green energy plans. Use when the user asks for green, clean, wind, solar, or 100% renewable plans.
  - `retailer` string — Filter by retail electric provider (REP) name. Common Texas retailers include: TXU Energy, Reliant, Green Mountain Energy, Direct Energy, Gexa, Constellation, Cirro, Discount Power, Frontier, 4Change, Champion, Pulse Power, Octopus Energy, Rhythm, Chariot. Partial matches accepted.
  - `limit` integer — Maximum number of plans to return. Defaults to 6 (the compact AEO/MCP widget surface). For compact results (limit <= 6), provider coverage includes Reliant and TXU Energy when available. Larger limits are used by the web comparison page and return the full ranked list strictly cheapest-first.

## Response `200`

Tool ran successfully.

- object
  - `criteria` object, required — The criteria used to compute these results. Echoed back so the agent can confirm assumptions.
    - `zipCode` string, required
    - `usageKwh` number, required
    - `termMonths` number, nullable, required
    - `renewableOnly` boolean, required
  - `utility` object — The TDU serving the ZIP. Absent if the utility could not be determined.
    - `code` string, required
    - `name` string, required
  - `plans` object[], required — Electricity plans available at the ZIP, ranked by effective rate ascending (cheapest first). Compact results include Meter's priority retailers (Reliant + TXU Energy) when available, plus the cheapest remaining plans.
    - `id` string, required — Database identifier for the plan row.
    - `name` string, required — Plan product name as listed by the retailer.
    - `retailer` string, required — Retail electric provider (REP) name, e.g. 'TXU Energy', 'Reliant'.
    - `retailerLogo` string, nullable, required — Retailer logo URL, preferably an app-relative static asset path. Null if no logo is on file.
    - `retailerWebsite` string, nullable, required — Retailer's public website URL, if known.
    - `signupUrl` string, required — Direct URL where the customer can sign up for this plan.
    - `etf` number, nullable, required — Early termination fee in dollars. Null if the plan has no ETF or the value is not on file.
    - `termLengthMonths` number, required — Contract length in months.
    - `baseFee` number, required — Monthly base fee charged by the retailer, in dollars.
    - `energyRate` number, required — Effective rate at the user's usage level, in cents/kWh. Interpolated between the EFL's 500/1000/2000 kWh average rates.
    - `renewablePercent` number, required — Percentage of energy from renewable sources (0-100).
    - `utility` string, nullable, required — TDU display name (e.g. 'ONCOR', 'CenterPoint').
    - `utilityCode` string, nullable, required — TDU code (e.g. 'ONCOR', 'CNP', 'AEP_CENTRAL', 'AEP_NORTH', 'TNMP', 'LPPL').
    - `eflUrl` string, nullable, required — URL to the Electricity Facts Label (EFL) — the legally-required disclosure document — if available.
    - `monthlyEstimate` number, required — Estimated monthly bill at the user's usage level, in dollars. Computed as `usageKwh × energyRate` where energyRate is the EFL average for that usage bucket (TDU charges + base fee are baked in).
    - `googleRating` number, nullable, required — Google Business Profile star rating (0-5) for the retailer, if known.
    - `googleReviewsUrl` string, nullable, required — URL to the retailer's Google reviews, if known.
  - `summary` string, required — One-line text summary for hosts that can't render the widget (e.g. voice). Names the cheapest plan, the retailer, and the monthly estimate.

## 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-service-production.skmtc.workers.dev/v1/apis/meterplan/meter-energy-public-api/revisions/ebf1846a188d/schema)
