Key concepts
The API is small and read-only. There are a few objects and a few important behaviors to understand.
Objects
- Plan — a rate offer from a supplier for a location. Residential and business plans are separate types (
ResidentialPlan,BusinessPlan) with their own queries. A plan carries pricing, term, disclosure documents, and enrollment URLs. - Supplier — the retail electricity provider (REP) behind a plan, e.g. TXU, Gexa, Constellation. Has a
name,logoUrl, and — in Texas only — a PUCTregistrationId. - Utility (TDU) — the "wires" / delivery company for an area (Oncor, CenterPoint, PECO, ComEd…). Resolved from a ZIP with
utilities(zipCode). Delivery is provided by the TDU regardless of which supplier the customer picks. - Market / state — deregulated states where customers can choose a supplier. Coverage varies by market; pass any supported ZIP or
stateCode.
Behaviors that matter
- Read-only, no mutations. The schema has only a
Querytype. You never "submit" an enrollment through GraphQL — you hand the customer off to an enrollment URL. - Enrollment is a hand-off. Every plan returns an
enrollmentUrl(hosted full page) and aheadlessEnrollmentUrl(embeddable). PowerHQ runs the regulated checkout inside them. - Attribution is built in. Your partner code is stamped into every enrollment URL. Conversions through those URLs are credited to you automatically.
- Pricing is computed, and market-specific. The
pricescalar is a seasonalized rate at the usage you request;rates[]breaks out advertised vs. all-in at 500/1,000/2,000 kWh. What "all-in" includes differs by state — see Pricing correctly. - Disclosures are regulated.
documents[]holds the plan's required disclosures (EFL/TOS/YRAC in Texas; other types elsewhere) and they must be shown to the customer — see Showing disclosures.
A mental model of a request
ZIP ─▶ utilities(zipCode) → which TDU serves this address
└▶ residentialPlans(zipCode …) → plans (pricing, docs, enrollment URLs)
render → customer picks → embed headlessEnrollmentUrl
Environments
- Cert / sandbox (
eapi.cert.powerhq.co) — build and test here. Data is representative in shape, not in volume. - Production (
eapi.prod.powerhq.co) — live market data.
See Authentication for keys and access.