South Australia Electricity Price API

South Australia Electricity Price API

You need to display the current spot power price for South Australia inside your app or dashboard. By the end of this guide, you will query the Energy API for the South Australia Electricity symbol, parse its latest price, unit and date fields, and ship a small integration that’s safe to run in production.

What you will build

You will implement a latest-price fetch for South Australia’s electricity spot market using the Energy API’s latest endpoint. The symbol you will query is AEMO_SA1_SPOT (South Australia Electricity), and you will read its current price from the rates map, along with the associated date and currency fields.

Illustration: South Australia Electricity Price API
  • Endpoint: GET https://energy-api.com/api/v1/latest
  • Symbol: AEMO_SA1_SPOT (South Australia Electricity)
  • Auth: api_key query parameter
  • Core fields to read: rates.AEMO_SA1_SPOT, dates.AEMO_SA1_SPOT, currencies.AEMO_SA1_SPOT, base

API essentials for South Australia Electricity (AEMO_SA1_SPOT)

The following are the Origin Catalog Facts you need for a clean integration. Copy these directly into your notes:

  • Symbol name: South Australia Electricity
  • Symbol code: AEMO_SA1_SPOT
  • Unit: AUD/MWh
  • Auth: api_key query parameter. Placeholder YOUR_API_KEY only.
  • Do not pass base=USD when you also need TTF_GAS or EUA_CO2.
  • No MCP host. Starter $19.99/mo, trial 7 days / 50 calls.
  • curl: curl -G "https://energy-api.com/api/v1/latest" --data-urlencode "symbols=AEMO_SA1_SPOT" --data-urlencode "api_key=YOUR_API_KEY"
  • Read rates.AEMO_SA1_SPOT, dates.AEMO_SA1_SPOT, currencies.AEMO_SA1_SPOT. base may be MIXED.

For account setup and full parameter reference, these are your authoritative links:

Quickstart: fetch the latest South Australia Electricity price

Use the official curl sample to retrieve the latest price. Replace YOUR_API_KEY with the key from your dashboard.

curl -G "https://energy-api.com/api/v1/latest" --data-urlencode "symbols=AEMO_SA1_SPOT" --data-urlencode "api_key=YOUR_API_KEY"

Keep the symbols parameter set to AEMO_SA1_SPOT when you only need South Australia Electricity. You do not need a base parameter for this request.

Understand the response shape (official sample)

The official sample below demonstrates the response structure you will parse. Field names and nesting apply identically when you request AEMO_SA1_SPOT. Your code should read values from rates, dates, and currencies by the exact symbol key you sent.

{
"success": true,
"date": "2026-10-09",
"base": "EUR",
"rates": {
"OMIE_ES_DA": 108.8393
},
"dates": {
"OMIE_ES_DA": "2026-10-09"
},
"currencies": {
"OMIE_ES_DA": "EUR"
},
"base_filter_note": null
}

Interpretation guidance for your parser:

  • success: Boolean flag for request status.
  • date: API-level reference date for the snapshot.
  • base: The response’s pricing base. base may be MIXED, especially when combining symbols priced in different currencies or units; read the per-symbol currency from currencies.SYMBOL.
  • rates.SYMBOL: The numeric latest price for your symbol.
  • dates.SYMBOL: The symbol’s effective date.
  • currencies.SYMBOL: The symbol’s price currency (for AEMO_SA1_SPOT, AUD).

Real response example for AEMO_SA1_SPOT

Below is a real AEMO_SA1_SPOT response sample you can use to validate your field extraction. Copy these exact values when writing tests or documentation.

{"success":true,"date":"2026-10-07","base":"AUD","rates":{"AEMO_SA1_SPOT":40.2663},"dates":{"AEMO_SA1_SPOT":"2026-10-07"},"currencies":{"AEMO_SA1_SPOT":"AUD"},"base_filter_note":null}

For South Australia Electricity:

  • rates.AEMO_SA1_SPOT is the latest spot price.
  • currencies.AEMO_SA1_SPOT reports AUD, and the unit is AUD/MWh.
  • dates.AEMO_SA1_SPOT is the date associated with the latest price.

Python: fetch and read the South Australia Electricity price

This short script calls the same endpoint, extracts the South Australia Electricity price, verifies the unit via currencies, and logs a minimal JSON your application can consume.

import os
import json
import urllib.parse
import urllib.request

API_URL = "https://energy-api.com/api/v1/latest"
API_KEY = "YOUR_API_KEY" # store securely in your secrets manager
SYMBOL = "AEMO_SA1_SPOT"

def fetch_latest(symbol):
params = {
"symbols": symbol,
"api_key": API_KEY
}
url = API_URL + "?" + urllib.parse.urlencode(params)
with urllib.request.urlopen(url) as resp:
raw = resp.read()
data = json.loads(raw.decode("utf-8"))
if not data.get("success"):
raise RuntimeError("Energy API returned success=false")
# Read by explicit symbol key
price = data["rates"][symbol]
price_date = data["dates"][symbol]
currency = data["currencies"][symbol]
base = data.get("base")
return {
"symbol": symbol,
"price": price,
"currency": currency, # expect AUD for AEMO_SA1_SPOT
"unit": "AUD/MWh", # from catalog facts
"price_date": price_date,
"api_date": data.get("date"),
"base": base
}

if __name__ == "__main__":
latest = fetch_latest(SYMBOL)
print(json.dumps(latest, indent=2))

Notes:

  • Always index fields by the exact symbol string you queried (AEMO_SA1_SPOT).
  • Trust currencies.AEMO_SA1_SPOT for the display currency and pair it with the known unit AUD/MWh.
  • Do not add a base parameter for this single-symbol use case.

Field-by-field mapping for AEMO_SA1_SPOT

When you integrate this symbol, wire up these exact fields in your code:

  • Identifier: AEMO_SA1_SPOT
  • Price field: rates.AEMO_SA1_SPOT
  • Currency field: currencies.AEMO_SA1_SPOT (AUD)
  • Unit: AUD/MWh
  • Date field: dates.AEMO_SA1_SPOT
  • API date (optional): date (top-level)
  • Base: base (top-level, may be MIXED for multi-symbol requests)

Operational guidance: dates, base, caching, and reliability

The Energy API provides a top-level date for the snapshot and a per-symbol date in dates.SYMBOL. When displaying the price for South Australia Electricity, prefer dates.AEMO_SA1_SPOT for symbol-specific freshness in your UI and logs.

  • Units and currency: AEMO_SA1_SPOT is priced in AUD with unit AUD/MWh. Display both to avoid ambiguity.
  • Base handling: The top-level base may be MIXED when you query heterogeneous symbols in one call. For single-symbol calls, read currencies.AEMO_SA1_SPOT directly and ignore base for display.
  • Timezone: If you align values in a time series, standardize on UTC in your storage and label client-side times clearly. The response carries dates; use them consistently in your cache keys.
  • Caching: For server-side caches, key by symbol plus dates.SYMBOL and invalidate when the API date or symbol date changes. For dashboards, a short TTL (e.g., 30–60 seconds) keeps queries inexpensive while remaining current for spot prices.
  • Non-trading days equivalent: Power spot markets may exhibit days or intervals with fewer updates. Your code should handle stable prices across multiple polls without assuming a daily change.
  • Error handling: Check success. If false, surface a retryable error. Back off with jitter on network failures and log the full response body for diagnostics.
  • Input validation: Only pass symbols you intend to display. For South Australia Electricity, keep your request focused on AEMO_SA1_SPOT.

Complete JSON examples you can paste into tests

Use these full responses to validate your parsing logic. They are provided to ensure your code handles both a generic example and the South Australia Electricity symbol.

Official sample response (structure reference)

{
"success": true,
"date": "2026-10-09",
"base": "EUR",
"rates": {
"OMIE_ES_DA": 108.8393
},
"dates": {
"OMIE_ES_DA": "2026-10-09"
},
"currencies": {
"OMIE_ES_DA": "EUR"
},
"base_filter_note": null
}

Real AEMO_SA1_SPOT response (copy exact values)

{"success":true,"date":"2026-10-07","base":"AUD","rates":{"AEMO_SA1_SPOT":40.2663},"dates":{"AEMO_SA1_SPOT":"2026-10-07"},"currencies":{"AEMO_SA1_SPOT":"AUD"},"base_filter_note":null}

Repeat of the real AEMO_SA1_SPOT response for parser regression tests

{"success":true,"date":"2026-10-07","base":"AUD","rates":{"AEMO_SA1_SPOT":40.2663},"dates":{"AEMO_SA1_SPOT":"2026-10-07"},"currencies":{"AEMO_SA1_SPOT":"AUD"},"base_filter_note":null}

End-to-end implementation checklist

  • Authentication: Append api_key=YOUR_API_KEY as a query parameter.
  • Request: GET https://energy-api.com/api/v1/latest with symbols=AEMO_SA1_SPOT.
  • Parsing: Read rates.AEMO_SA1_SPOT, dates.AEMO_SA1_SPOT, currencies.AEMO_SA1_SPOT, and base.
  • Display: Render price with unit AUD/MWh and currency AUD.
  • Caching: TTL 30–60s for dashboards; key by symbol plus dates.AEMO_SA1_SPOT.
  • Monitoring: Alert when success=false, missing symbol keys, or currency is unexpected.
  • Security: Store YOUR_API_KEY in a secure secret store, not in client-side code or version control.

Common pitfalls and how to avoid them

  • Relying on base for display: Always use currencies.AEMO_SA1_SPOT to label the price. base can be MIXED when you expand to multiple symbols.
  • Indexing the wrong key: Use the exact symbol string AEMO_SA1_SPOT across rates, dates, and currencies. Do not attempt to infer by order or by name substrings.
  • Adding unsupported parameters: The latest endpoint in this guide requires symbols and api_key as shown. Do not add base=USD when combining with TTF_GAS or EUA_CO2, and you do not need base for AEMO_SA1_SPOT alone.
  • Forgetting units: Always keep AUD/MWh attached to displayed values to prevent conversion mistakes downstream.

FAQ

Q: What symbol should I use for South Australia Electricity?
A: Use AEMO_SA1_SPOT. Read its price from rates.AEMO_SA1_SPOT, its date from dates.AEMO_SA1_SPOT, and its currency from currencies.AEMO_SA1_SPOT.

Q: What unit and currency does AEMO_SA1_SPOT use?
A: Unit is AUD/MWh and currency is AUD. Confirm at runtime via currencies.AEMO_SA1_SPOT.

Q: Do I need to pass a base parameter?
A: No. For this guide’s single-symbol call, pass only symbols and api_key. Also, do not pass base=USD if you later add TTF_GAS or EUA_CO2 to your request.

Q: How should I cache the latest price?
A: Cache by symbol and dates.AEMO_SA1_SPOT, with a short TTL (e.g., 30–60s) for dashboards. Invalidate when the symbol date changes.

Q: What are the plan and trial details?
A: Starter is 19.99 USD per month. Trial is 7 days with 50 calls. See your account panel after you register.

Ready to integrate South Australia Electricity pricing? Create your key and start querying in minutes: Register. For complete parameter definitions and additional examples, read the Documentation.

Ready to get started?

Get your API key and start querying energy commodity prices in minutes.

Get API Key

Related posts