Programmatic access to Australian energy market intelligence: NEM and WEM. Choose a Watt-as-a-Service plan (Developer, Startup or Institutional) or use your existing Professional/Enterprise app subscription.
Run a real request against live AEMO dispatch data — no API key required. Pick a region and fire the call to see exactly what the REST API returns.
# Current dispatch prices — live AEMO data, no API key required curl "https://gridiq.com.au/api/aemo/prices/current"
// Pick a region and press “Run live” to see real AEMO dispatch data. // No API key required — this demo is capped at 3 calls.
The curl above hits the live /api/aemo/prices/currentendpoint — open, no key required, returns all regions. The region selector filters this demo’s result only; to keep the funnel honest the live run uses a keyless sandbox capped at 3 calls. An API key unlocks the metered tools (FCAS, deep history, Watt AI) and higher limits. Data sourced from AEMO.
Monthly subscriptions with a fixed call cap. Calls above the cap return a 429.
Live data tools · No SLA · Community support
All non-Enterprise tools · Standard SLA · Email support
All tools including Enterprise-tier · 99.9% SLA · Dedicated support
Already a Professional/Enterprise app subscriber? Your app subscription already grants programmatic access under the existing daily cap, create a key in Settings → API Keys.
All API requests require a Bearer token. Generate API keys from Settings → API Keys (up to 5 per account).
Authorization: Bearer giq_xxxxxxxxxxxxxxxxxxxx
Returns 401 for invalid or missing keys. Returns 403 for expired trials or insufficient plan tier.
Every response includes rate-limit headers so you can throttle proactively.
When the limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header (seconds).
https://gridiq.com.au/api
Returns the latest 5-minute dispatch prices, demand, and price tier for all regions.
{
"timestamp": "2026-03-14T14:35:00+11:00",
"regions": {
"NSW1": { "price": 87.40, "demand_mw": 8240, "tier": "low" },
"VIC1": { "price": 112.60, "demand_mw": 6180, "tier": "medium" },
"SA1": { "price": 243.80, "demand_mw": 1620, "tier": "medium" },
"QLD1": { "price": 74.20, "demand_mw": 7340, "tier": "low" },
"TAS1": { "price": 68.10, "demand_mw": 1180, "tier": "low" },
"WA1": { "price": 45.00, "demand_mw": 2890, "tier": "low" }
}
}Returns historical dispatch prices for a single region.
Query parameters: period: 24h, 7d, 30d, 90d
Returns the current generation mix by fuel type across all regions. Includes carbon intensity (tCO₂/MWh).
Returns AEMO pre-dispatch price and demand forecasts for the specified region.
Returns current flows, limits, and binding status for all NEM interconnectors.
Returns FCAS prices for all 8 ancillary services (raise/lower × 6-sec, 60-sec, 5-min, regulation).
Query parameters: region, service
Returns generator profiles with fuel type, region, capacity, and latest bid data.
Query parameters: region, fuel_type, limit, offset
Returns a detailed generator profile and recent bid history for a specific DUID.
Returns renewable curtailment estimates by region.
Query parameters: region, period
Returns grid carbon intensity in tCO₂/MWh for the specified region.
Query parameters: period
Returns optimal load-shifting windows for today and tomorrow based on forecast prices.
Returns a 7-day price forecast with recommended load windows.
Send a natural language query to Watt AI. Returns a synthesised response with references to the tools used.
Request body:
{
"query": "What’s driving high SA prices right now?",
"region": "SA1"
}Response:
{
"response": "SA prices are currently elevated at $243.80/MWh...",
"tools_used": ["get_current_prices", "get_interconnector_status"],
"timestamp": "2026-03-14T14:35:00+11:00"
}Public endpoint (no authentication required). Returns a market snapshot suitable for status boards and external displays.
Public endpoint (no authentication required). Returns system health status including database connectivity, data freshness, and service availability. Use for uptime monitoring and integration health checks.
{
"status": "healthy",
"checks": {
"database": { "status": "ok", "latency_ms": 12 },
"data_freshness": { "status": "ok", "age_minutes": 3 },
"auth": { "status": "ok" },
"ai": { "status": "ok" },
"stripe": { "status": "ok" },
"email": { "status": "ok" }
}
}All errors return a JSON body with an error field.
{
"error": "Rate limit exceeded. Retry after 60 seconds."
}Programmatic access to the gridIQ alerts system. Create alert configurations that fire when NEM or WEM market data crosses your thresholds, with delivery by email or HTTPS webhook. Priced as a separate SKU from the Watt API.
Bearer token in the Authorization header. Same API keys as the Watt API, a single key grants access to both products based on your subscriptions. Requires an active alerts_api subscription for API-tier caps to apply; users with existing Professional or Enterprise app plans can use the Alerts API under their app-tier caps.
curl -X POST https://gridiq.com.au/api/alerts \
-H "Authorization: Bearer giq_..." \
-H "Content-Type: application/json" \
-d '{
"region_id": "NSW1",
"alert_type": "PRICE_SPIKE",
"threshold": 500,
"webhook_url": "https://example.com/hooks/gridiq"
}'alert_type values: PRICE_SPIKE, PRICE_DROP,CARBON_HIGH, CARBON_LOW, PREDISPATCH_WARNING,CUMULATIVE_PRICE, REBID, RESERVE_MARGIN_LOW,FRAGILITY_HIGH.
region_id values: NSW1, VIC1, SA1,QLD1, TAS1, WA1.CUMULATIVE_PRICE and FRAGILITY_HIGH are NEM-only.
curl https://gridiq.com.au/api/alerts \ -H "Authorization: Bearer giq_..."
Fired alerts POST JSON to your webhook URL with content-typeapplication/json and headers includingX-GridIQ-Idempotency-Key for retry dedup. Slack incoming-webhook URLs receive Block Kit formatting automatically.
{
"schema_version": "1.0",
"alert_type": "PRICE_SPIKE",
"alert_label": "Price Spike",
"region_id": "NSW1",
"region": "NSW",
"actual_value": 612.45,
"threshold": 500,
"unit": "$/MWh",
"triggered_at": "2026-04-21T03:15:00.000Z",
"alert_config_id": "uuid-of-config",
"idempotency_key": "uuid-stable-across-retries"
}gridIQ attempts delivery synchronously when the alert fires. If your endpoint returns a non-2xx status or fails to respond within 5 seconds, the delivery is enqueued and retried with exponential backoff: 1 minute, 5 minutes, 15 minutes, 1 hour, then 4 hours. After 5 failed attempts the delivery is marked permanently failed and no further retries are made. Every retry sends the sameidempotency_key, dedup on it to avoid double-handling.
Your endpoint SHOULD return 200–299 to acknowledge. Return early (before processing) if it will take longer than 5 seconds.
| Code | Meaning |
|---|---|
401 | Missing or invalid API key. |
403 | Active alert cap reached for your tier, or webhook requires a higher plan. |
422 | Invalid region/type combination (e.g. CUMULATIVE_PRICE on WA1). |
429 | Rate limit exceeded (10 creates/minute per API key). |
Market data served by this API is sourced from the Australian Energy Market Operator (AEMO). Use of AEMO data is subject to AEMO's data licensing terms. Please refer to AEMO's website for the full licence conditions before redistributing data obtained through this API.