API to Get the South Australia Electricity Price

API to Get the South Australia Electricity Price

You need a reliable way to fetch the current spot price of electricity in South Australia for pricing, hedging, or reporting workflows. By the end of this guide you will call the Energy API for the South Australia Electricity symbol, parse the response, and extract the exact fields you need for downstream Finance integrations.

What the South Australia Electricity symbol represents

The Energy API exposes a symbol for South Australia’s spot electricity price:

Illustration: API to Get the South Australia Electricity Price
  • Symbol name: South Australia Electricity
  • Symbol code: AEMO_SA1_SPOT
  • Unit: AUD/MWh

This symbol returns the latest spot price with its currency, date, and the API’s base currency for that call. You will read three fields for this symbol: rates.AEMO_SA1_SPOT, dates.AEMO_SA1_SPOT, and currencies.AEMO_SA1_SPOT.

Endpoint and authentication

Use a simple GET request to the latest endpoint and pass your API key as a query parameter:

  • HTTP method: GET
  • Endpoint: https://energy-api.com/api/v1/latest
  • Query parameters:
    • symbols=AEMO_SA1_SPOT
    • api_key=YOUR_API_KEY

Do not add unrelated parameters. Authentication uses the api_key query parameter only. To obtain a key, start a 7-day trial (50 calls) or the Starter plan ($19.99/mo). You can create your account here: Register. For endpoint details, see the Documentation.

Quickstart: cURL

Run this request to get the latest South Australia Electricity spot price. Keep the symbols value exactly as shown.

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

Python example: read the AEMO_SA1_SPOT price, date, and currency

This short script calls the same endpoint, validates the response, and pinpoints the three fields you will actually use.

import requests

url = "https://energy-api.com/api/v1/latest"
params = {
"symbols": "AEMO_SA1_SPOT",
"api_key": "YOUR_API_KEY"
}

resp = requests.get(url, params=params, timeout=15)
resp.raise_for_status()
data = resp.json()

if not data.get("success"):
raise RuntimeError("API call not successful")

symbol = "AEMO_SA1_SPOT"

# Read the three symbol-scoped fields you need
price = data["rates"][symbol] # numeric price
price_date = data["dates"][symbol] # ISO date string, e.g., 2026-11-06
price_ccy = data["currencies"][symbol] # currency code, e.g., AUD

# The API also returns a base field; for symbol-specific usage,
# always prefer currencies[symbol] instead of inferring from base.
api_base = data.get("base")

print(f"Symbol: {symbol}")
print(f"Price: {price} {price_ccy} per MWh")
print(f"Date: {price_date}")
print(f"API base (for reference): {api_base}")

Response format

The following official sample illustrates the structure returned by the endpoint. You will use the same keys when working with AEMO_SA1_SPOT.

{
    "success": true,
    "date": "2026-11-08",
    "base": "EUR",
    "rates": {
        "OMIE_ES_DA": 200.073
    },
    "dates": {
        "OMIE_ES_DA": "2026-11-08"
    },
    "currencies": {
        "OMIE_ES_DA": "EUR"
    },
    "base_filter_note": null,
    "missing_symbols": null
}

Key fields you will actually use:

  • rates.SYMBOL — latest price for the requested symbol.
  • dates.SYMBOL — the date associated with that symbol’s price.
  • currencies.SYMBOL — the currency of that symbol’s rate.

For your Finance integration, prefer currencies.AEMO_SA1_SPOT over inferring from base. The base field can differ from a symbol’s billed currency when retrieving multiple symbols or applying internal conversions; it may also be MIXED for some calls.

Real API response for South Australia Electricity

This is a real response snapshot specific to AEMO_SA1_SPOT. Use it to verify the exact keys and value types in your parser.

How to read this for Finance workflows:

  • rates.AEMO_SA1_SPOT = 16.5367 is the latest South Australia Electricity price.
  • currencies.AEMO_SA1_SPOT = AUD; the quoted unit is AUD/MWh.
  • dates.AEMO_SA1_SPOT = 2026-11-06 is the price’s reference date.
  • base = AUD for this call. Always rely on currencies.AEMO_SA1_SPOT when storing or displaying the price to avoid assumptions when base is different or MIXED.

What to store in your system of record

For robust Finance-grade usage, store the following per observation:

  • symbol: AEMO_SA1_SPOT
  • price: from rates.AEMO_SA1_SPOT
  • currency: from currencies.AEMO_SA1_SPOT (AUD)
  • unit: AUD/MWh (static for this symbol)
  • price_date: from dates.AEMO_SA1_SPOT (ISO-8601, date granularity)
  • api_date: top-level date (the API’s consolidated date; keep it for audits)
  • api_base: top-level base (store for reconciliation, but do not use this to override the symbol’s currency)

Practical integration notes

  • Single-symbol calls: Use symbols=AEMO_SA1_SPOT to avoid base contamination from unrelated instruments.
  • Base currency: base may be MIXED in multi-symbol responses. Always read currencies.AEMO_SA1_SPOT for the definitive currency.
  • Units: The numeric price is in AUD per MWh for AEMO_SA1_SPOT. If you convert to different units internally, version your transformation logic.
  • Latency and freshness: Use dates.AEMO_SA1_SPOT to verify staleness and align reporting dates. Do not assume all symbols share the same update cadence.
  • Caching: If your dashboard polls frequently, implement a short client-side cache keyed by (symbol, date). Invalidation should consider changes to the symbol’s date or the numeric price.
  • Error handling: Check success, guard dictionary lookups for the specific symbol, and watch missing_symbols for incomplete requests when you query multiple symbols.
  • Multi-instrument requests: If you later request multiple energy symbols, do not pass base=USD when you also need TTF_GAS or EUA_CO2. Keep calls scoped to your required reporting currency logic.

Troubleshooting and verification

  • Received success=false: Re-verify api_key and query string, and retry with the exact symbol code AEMO_SA1_SPOT.
  • Empty or null rate: Inspect missing_symbols to see if the symbol failed to resolve. Retry with a single symbol parameter to isolate errors.
  • Unexpected currency: Trust currencies.AEMO_SA1_SPOT for the symbol’s true currency. Do not coerce from base.
  • Data drift in dashboards: Ensure you use dates.AEMO_SA1_SPOT as the authoritative date label; mixing top-level date with symbol-specific date can cause off-by-one labeling.

FAQ

Which exact fields should I read for South Australia Electricity?
Use rates.AEMO_SA1_SPOT for the price, dates.AEMO_SA1_SPOT for the date, and currencies.AEMO_SA1_SPOT for the currency.

What unit are prices quoted in?
AUD per MWh (AUD/MWh) for AEMO_SA1_SPOT.

How do I authenticate?
Pass your key via the api_key query parameter. Example: api_key=YOUR_API_KEY.

Can I rely on the base field for currency?
No. The base field can differ or be MIXED. Always rely on currencies.AEMO_SA1_SPOT for display and storage.

Is there a trial?
Yes. Trial is 7 days with 50 calls, and the Starter plan is $19.99/mo. Create your account here: Register.

Get your API key and start pulling the South Australia Electricity price into your Finance stack in minutes. Create an account now: Register. For more endpoint details and field references, see the Documentation.

Ready to get started?

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

Get API Key