Skip to main content
GET
Returns every costed business electricity plan for a location, ranked by annual cost, with the regulated benchmark costed at the same usage and a summary block that answers “what’s the cheapest rate here?” directly.
  • Base URL: https://api.termina.com
  • Authentication: none
  • Rate limit: 120 requests a minute per IP address
  • Caching: up to 1 hour. Rates are checked daily

Location

Pass one location. The most specific wins: nmi, then postcode, distributor, city, state. distributor can also narrow a postcode, city or state to one network. See Choosing a location and Supported networks, cities and states.

Examples

The cheapest rates for a postcode, at the default 10,000 kWh a year:

Reading the response

The fields you’ll use most:
object
The cheapest option overall. Always the same as the first plan on page 1. offer_source is termina_buying_group (no retailer named) or public (with retailer, plan name and plan ID).
object | null
The cheapest public plan, with retailer, plan name, plan ID, annual cost and % vs the benchmark.
number
The plan’s cost for a year at usage.annual_kwh, incl. GST. For buying group rates this is before Termina’s fee.
number | null
The plan vs the network’s DMO or VDO at the same usage, in %. Negative means cheaper. Null where there’s no benchmark.
string
The date the rates were checked. Quote it alongside any figure.

Pagination

Plans come back 10 per page by default (limit up to 50). While pagination.has_more is true, pass pagination.next_cursor back as cursor, with the same other parameters. When a response covers several networks, the cursor keeps each network’s place, so you get every plan exactly once.

Errors

Errors return { "error": { "code", "message", "details" } } with status 400 (invalid input), 404, 422 (out_of_coverage, for example WA or NT), 429 (rate limited) or 503 (try again shortly). See Errors and warnings for every code.

Query Parameters

postcode
string

Australian postcode (4 digits).

Pattern: ^\d{4}$
distributor
enum<string>

Network slug, e.g. ausgrid. See Networks and cities.

Available options:
ausgrid,
endeavour-energy,
essential-energy,
evoenergy,
energex,
ergon-energy,
sa-power-networks,
tasnetworks,
citipower,
powercor,
jemena,
united-energy,
ausnet-services
nmi
string

National Meter Identifier (10 or 11 characters). The most precise location; overrides other location parameters.

Pattern: ^[A-Za-z0-9]{10,11}$
city
string

City slug, e.g. sydney, brisbane, gold-coast. Capitals use ABS Greater Capital City areas; regional cities use ABS Significant Urban Areas.

state
enum<string>

State or territory. WA and NT are not on the National Electricity Market and return 422.

Available options:
NSW,
VIC,
QLD,
SA,
TAS,
ACT,
WA,
NT
usage_kwh
integer
default:10000

Annual usage in kWh (1,000 to 2,000,000). Defaults to 10,000 kWh, the AER and ESC small business reference usage.

Required range: 1000 <= x <= 2000000
peak_share
number

Share of annual usage in the peak period (0 to 1). Defaults to the network's typical profile. peak_share + shoulder_share must not exceed 1.

Required range: 0 <= x <= 1
shoulder_share
number

Share of annual usage in the shoulder period (0 to 1). The rest is off-peak.

Required range: 0 <= x <= 1
max_demand_kw
number

Maximum demand in kW, used to cost demand charges. Defaults to the network's typical value.

Required range: 0 <= x <= 10000
offer_source
enum<string>
default:all

all (default), public (public market plans only) or termina_buying_group.

Available options:
all,
public,
termina_buying_group
limit
integer
default:10

Plans per page (1 to 50).

Required range: 1 <= x <= 50
cursor
string

pagination.next_cursor from the previous page.

Response

Rates for the location.

location
object
usage
object | null
benchmark
object | null

The regulated standing offer for the network, costed from its unit prices at the same usage as the plans. Null where no benchmark with unit prices is published (ACT, Ergon).

stats
object | null

Stats for the network, when exactly one applies. See by_network otherwise.

summary
object

Everything needed to answer "what's the cheapest business electricity here?" across all networks in the response. summary.cheapest always equals the first plan on page 1.

by_network
object[]
plans
object[]
pagination
object
next_cursor
string | null

Same as pagination.next_cursor.

warnings
object[]
page_url
string | null

The matching page on termina.com.

meta
object