Queensland Electricity Price API
You need a reliable way to fetch the latest Queensland electricity spot price so trading systems, risk dashboards, and finance workflows can price exposures and mark positions. By the end of this guide, you will be able to call the Energy API’s latest endpoint for the AEMO Queensland spot symbol, parse the response, handle base currency and units correctly, and safely integrate it into production with caching and retry strategies.
What you will build: a latest-price fetch for Queensland Electricity
This post focuses on the Energy API symbol for Queensland’s electricity spot price and shows a minimal, production-grade integration. You will:
- Call GET https://energy-api.com/api/v1/latest with the AEMO Queensland symbol.
- Authenticate using an api_key query parameter.
- Read rates.AEMO_QLD1_SPOT (numeric price), dates.AEMO_QLD1_SPOT (effective date), and currencies.AEMO_QLD1_SPOT (unit currency).
- Account for base and unit handling, and plan for caching and non-trading-day behavior.
Origin catalog facts (verbatim)
Use these catalog details exactly as provided when integrating the Queensland Electricity symbol.
- Symbol name: Queensland Electricity
- Symbol code: AEMO_QLD1_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_QLD1_SPOT" --data-urlencode "api_key=YOUR_API_KEY"
- Read rates.AEMO_QLD1_SPOT, dates.AEMO_QLD1_SPOT, currencies.AEMO_QLD1_SPOT. base may be MIXED.
Endpoint and authentication
The Energy API provides a latest endpoint for retrieving up-to-date prices. For Queensland Electricity, call the following:
- Method: GET
- URL: https://energy-api.com/api/v1/latest
- Query parameters:
- symbols=AEMO_QLD1_SPOT
- api_key=YOUR_API_KEY
Authentication is passed as an api_key query parameter. Do not use headers for this specific example, and do not substitute any other placeholder than YOUR_API_KEY in shared code.
Official curl request
Copy and run the following exactly as shown to retrieve the Queensland Electricity latest price:
curl -G "https://energy-api.com/api/v1/latest" --data-urlencode "symbols=AEMO_QLD1_SPOT" --data-urlencode "api_key=YOUR_API_KEY"
Official JSON examples you should model against
Use these complete JSON responses as shape references in your integration and tests. The first mirrors a real AEMO Queensland response example; the second is the official sample block from live documentation. Keep field names and structure exactly as they appear.
Real API response (Queensland Electricity)
{"success":true,"date":"2026-10-06","base":"AUD","rates":{"AEMO_QLD1_SPOT":105.4366},"dates":{"AEMO_QLD1_SPOT":"2026-10-06"},"currencies":{"AEMO_QLD1_SPOT":"AUD"},"base_filter_note":null}
Fields you will actually use for Queensland Electricity:
- rates.AEMO_QLD1_SPOT: the latest price for Queensland Electricity.
- dates.AEMO_QLD1_SPOT: the market date for the quoted value.
- currencies.AEMO_QLD1_SPOT: unit currency for the symbol (AUD).
- base: may be AUD or MIXED depending on the symbol set you request; when querying only AEMO_QLD1_SPOT, expect AUD.
Official sample (verbatim from live docs)
{
"success": true,
"date": "2026-10-08",
"base": "EUR",
"rates": {
"OMIE_ES_DA": 106.8959
},
"dates": {
"OMIE_ES_DA": "2026-10-08"
},
"currencies": {
"OMIE_ES_DA": "EUR"
},
"base_filter_note": null
}
This OMIE example demonstrates the same field structure used by the Queensland symbol: success, date, base, per-symbol rates, per-symbol dates, and per-symbol currencies. Your code should not hardcode the symbol in object paths beyond reading the AEMO_QLD1_SPOT key.
Same Queensland Electricity response (minified form for fixtures)
{"success":true,"date":"2026-10-06","base":"AUD","rates":{"AEMO_QLD1_SPOT":105.4366},"dates":{"AEMO_QLD1_SPOT":"2026-10-06"},"currencies":{"AEMO_QLD1_SPOT":"AUD"},"base_filter_note":null}
Same Queensland Electricity response (pretty-printed for debugging)
{
"success": true,
"date": "2026-10-06",
"base": "AUD",
"rates": {
"AEMO_QLD1_SPOT": 105.4366
},
"dates": {
"AEMO_QLD1_SPOT": "2026-10-06"
},
"currencies": {
"AEMO_QLD1_SPOT": "AUD"
},
"base_filter_note": null
}
Reading the fields that matter for finance workflows
For the Queensland Electricity symbol, use these fields in pricing and ledger pipelines:
- rates.AEMO_QLD1_SPOT: Decimal price quoted in AUD per MWh (AUD/MWh). Use as the mark for mark-to-market and valuation.
- dates.AEMO_QLD1_SPOT: The price’s market date. Persist this alongside the price for audit and replay.
- currencies.AEMO_QLD1_SPOT: Source currency for the rate. This helps when downstream systems convert units or aggregate positions.
- base: Applies when multiple symbols are requested at once. It may be AUD or MIXED. For a single Queensland symbol request, you can rely on AUD based on the real example above.
Code examples: minimal client and robust parsing
Python (requests) example
import os
import sys
import time
import json
import urllib.parse
import urllib.request
API_URL = "https://energy-api.com/api/v1/latest"
API_KEY = os.getenv("ENERGY_API_KEY", "YOUR_API_KEY")
SYMBOL = "AEMO_QLD1_SPOT"
def fetch_latest(symbol):
params = {
"symbols": symbol,
"api_key": API_KEY
}
url = API_URL + "?" + urllib.parse.urlencode(params)
with urllib.request.urlopen(url, timeout=10) as resp:
data = json.loads(resp.read().decode("utf-8"))
if not data.get("success"):
raise RuntimeError("API returned success=false")
rates = data.get("rates", {})
dates = data.get("dates", {})
currencies = data.get("currencies", {})
price = rates.get(symbol)
price_date = dates.get(symbol)
unit_ccy = currencies.get(symbol)
base = data.get("base")
if price is None or price_date is None or unit_ccy is None:
raise KeyError("Missing expected fields for symbol {}".format(symbol))
return {
"symbol": symbol,
"price": price,
"price_date": price_date,
"unit_currency": unit_ccy,
"base": base
}
if __name__ == "__main__":
try:
quote = fetch_latest(SYMBOL)
print(json.dumps(quote, indent=2))
except Exception as e:
print("Error:", e, file=sys.stderr)
sys.exit(1)
JavaScript (Node.js fetch) example
import fetch from "node-fetch";
const API_URL = "https://energy-api.com/api/v1/latest";
const API_KEY = process.env.ENERGY_API_KEY || "YOUR_API_KEY";
const SYMBOL = "AEMO_QLD1_SPOT";
async function fetchLatest(symbol) {
const url = new URL(API_URL);
url.searchParams.set("symbols", symbol);
url.searchParams.set("api_key", API_KEY);
const res = await fetch(url.toString(), { method: "GET" });
if (!res.ok) {
throw new Error(`HTTP ${res.status}`);
}
const data = await res.json();
if (!data.success) {
throw new Error("API returned success=false");
}
const price = data.rates?.[symbol];
const priceDate = data.dates?.[symbol];
const unitCcy = data.currencies?.[symbol];
const base = data.base;
if (price == null || priceDate == null || unitCcy == null) {
throw new Error(`Missing fields for ${symbol}`);
}
return { symbol, price, priceDate, unitCurrency: unitCcy, base };
}
fetchLatest(SYMBOL)
.then((q) => console.log(JSON.stringify(q, null, 2)))
.catch((e) => {
console.error("Error:", e.message);
process.exit(1);
});
Practical integration details that save time
- Units: Queensland Electricity (AEMO_QLD1_SPOT) is quoted in AUD per MWh. Store both the numeric price and the unit string to prevent silent unit mismatches.
- Base currency: For single-symbol calls, base will typically match the symbol’s currency. When calling multiple symbols, base may be MIXED. Always read currencies.AEMO_QLD1_SPOT as the source currency for this symbol rather than relying solely on base.
- Timestamps and dates: The API provides dates per symbol via dates.AEMO_QLD1_SPOT. If you require intraday timestamps, design your data model to record the retrieval time in your system clock in addition to the API’s market date.
- Caching: The 7-day trial includes 50 calls. If you poll frequently, implement an application cache (e.g., in-memory with a TTL of several minutes) to avoid unnecessary calls during quiet periods.
- Retries and backoff: If your job must be resilient, use exponential backoff on network errors, but avoid retry storms. Persist the last known good value for continuity.
- Non-trading days: Power spot data may be less volatile on weekends/holidays; some markets publish daily aggregates. Since only the latest endpoint is documented here, handle stable values gracefully and rely on dates.AEMO_QLD1_SPOT to detect when the market date changes.
- Pagination: Not applicable to the latest endpoint; you request a fixed set of symbols and receive a single object with per-symbol fields.
- Security: Pass api_key via query parameter as shown. Scope keys per environment and rotate when rolling credentials.
Using the response in finance systems
Common finance tasks with AEMO Queensland spot:
- Mark-to-market: Store rates.AEMO_QLD1_SPOT and dates.AEMO_QLD1_SPOT as your end-of-day mark, and add your retrieval timestamp for auditability.
- Risk aggregation: Normalize units and currencies when aggregating across multiple commodities. For Queensland, currencies.AEMO_QLD1_SPOT will indicate AUD; align to your reporting currency outside this call.
- Pricing: If your pricing models require intra-day updates, design your polling interval with rate limits in mind. On the trial tier (7 days / 50 calls), a 2–4 hour refresh cadence is a safe start during evaluation.
How to confirm the unit and currency each time
Never assume units or base without reading the response fields. The Energy API explicitly includes the unit currency per symbol. For Queensland Electricity:
- Read currencies.AEMO_QLD1_SPOT and verify it is AUD when storing the quote.
- Keep the Unit (AUD/MWh) documented alongside the symbol code in your instrument catalog so downstream consumers understand the quantity basis.
- If you later query additional symbols in the same request, expect base to be MIXED; always use the per-symbol currencies mapping to attribute the correct currency to each rate.
Cross-symbol note about base parameters
If you expand beyond Queensland Electricity into other commodities, ensure you do not pass base=USD when requesting TTF_GAS or EUA_CO2, because those sets may be MIXED. For Queensland-only calls, you do not need to pass a base parameter; simply read the per-symbol currency as shown above.
Another look at the real Queensland response for testing
Use the following as a ready-to-paste fixture in unit tests for your AEMO QLD parsing functions (identical to the real response above):
{"success":true,"date":"2026-10-06","base":"AUD","rates":{"AEMO_QLD1_SPOT":105.4366},"dates":{"AEMO_QLD1_SPOT":"2026-10-06"},"currencies":{"AEMO_QLD1_SPOT":"AUD"},"base_filter_note":null}
End-to-end checklist before going live
- Authentication: Confirm api_key is present and valid in query string.
- Symbol: Use AEMO_QLD1_SPOT exactly; log rejections early if the symbol list is malformed.
- Parsing: Assert presence of rates.AEMO_QLD1_SPOT, dates.AEMO_QLD1_SPOT, currencies.AEMO_QLD1_SPOT on each run.
- Units: Persist both numeric price and “AUD/MWh” in your instrument reference or quote schema.
- Caching: Implement a TTL cache to respect evaluation limits and reduce latency.
- Backoff: Add transient-failure retries with upper bounds to protect upstream services.
- Auditing: Store the full JSON payload or a normalized row with symbol, price, unit currency, market date, base, and retrieval timestamp.
FAQ
Q: What is the correct symbol for Queensland Electricity?
A: Use AEMO_QLD1_SPOT. Do not alter or shorten the code.
Q: Which fields should I read for the actual price and its date?
A: Read rates.AEMO_QLD1_SPOT for the price and dates.AEMO_QLD1_SPOT for the market date. Also read currencies.AEMO_QLD1_SPOT for the unit currency.
Q: What currency and unit is the Queensland spot price in?
A: AUD per MWh (AUD/MWh). The unit currency is provided at currencies.AEMO_QLD1_SPOT in the response.
Q: Do I need to pass a base parameter?
A: No. For this latest endpoint and single-symbol queries, simply read the per-symbol currency. If you request multiple symbols, base may be MIXED; always rely on the per-symbol currencies map.
Q: How many calls can I make during evaluation?
A: The starter trial is 7 days with 50 calls. Consider caching and a conservative polling cadence during evaluation.
Start building
Register for an API key and ship your Queensland Electricity integration today. Create your account here: Register. For endpoint details and field references, see the Documentation. Implement the curl call above, wire one of the code samples into your service, and validate that your system reads rates.AEMO_QLD1_SPOT, dates.AEMO_QLD1_SPOT, and currencies.AEMO_QLD1_SPOT before promoting to production.
Ready to get started?
Get your API key and start querying energy commodity prices in minutes.
Get API KeyRelated posts
Discover how Energy API enables real-time monitoring and orchestration of DERs to relieve distribution grid co...
Read more →
Discover how to leverage Energy API for backtesting renewable hedging strategies. Simulate volatility and opti...
Read more →
Discover how the Energy API streamlines the reconciliation of green hydrogen guarantees, enhancing ESG reporti...
Read more →
Discover how to enhance your intraday market-making with a Finance API. Learn effective risk limits, inventory...
Read more →
Discover how to streamline petabyte-scale meter data with Energy API and Apache Iceberg. Learn effective strea...
Read more →