Ameren APIameren.com ↗
Retrieve hourly electricity prices, outage summaries, and rate info for Ameren's Illinois and Missouri service areas via a structured JSON API.
What is the Ameren API?
The Ameren API exposes 7 endpoints covering real-time and forecast wholesale electricity pricing, live outage summaries, rate information, and efficiency rebate programs for Illinois and Missouri. The get_hourly_prices endpoint accepts a date parameter and returns a 24-entry price array with per-hour $/kWh values, while get_outage_summary returns customer counts and availability percentages per region.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/a79b21ea-9601-49ff-9a20-77d367fd0622/get_hourly_prices_today' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ameren-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Ameren Utility API — electricity prices, outages, and programs."""
from parse_apis.ameren_utility_api import Ameren, State, RateCategory, PriceDataUnavailable
client = Ameren()
# Fetch today's hourly wholesale electricity prices
today_report = client.hourlypricereports.today()
print(f"Today ({today_report.date}): {len(today_report.prices)} hourly prices, next_day={today_report.is_next_day}")
# Look at peak/off-peak price spread from today's data
if today_report.prices:
for price_entry in today_report.prices[:3]:
print(f" Hour {price_entry.hour}: ${price_entry.price}/kWh")
# Fetch prices for a specific historical date
historical = client.hourlypricereports.get(date="2026-06-09")
print(f"Historical ({historical.date}): {len(historical.prices)} hours")
# Check current outage status across service areas
summary = client.outagesummaries.current()
print(f"Outage data generated at: {summary.generated_at}")
for region in summary.regions:
print(f" {region.region_name}: {region.active_outages} outages, {region.customers_affected} affected, {region.percent_active}% available")
# Get rate information for Missouri business customers using enums
rates = client.ratesinfos.get(state=State.MO, category=RateCategory.BUSINESS)
print(f"Rates URL ({rates.state}, {rates.category}): {rates.url}")
# Typed error handling for unavailable price data
try:
future = client.hourlypricereports.get(date="2099-01-01")
print(f"Future prices: {future.prices}")
except PriceDataUnavailable as exc:
print(f"Price data unavailable: {exc}")
print("exercised: hourlypricereports.today / .get / outagesummaries.current / ratesinfos.get / error handling")
Get today's 24-hour wholesale electricity price table for Illinois. Returns hourly price data for each hour of the current day. Prices are in $/kWh.
No input parameters required.
{
"type": "object",
"fields": {
"date": "string, current date in YYYY-MM-DD format",
"prices": "array of hourly price objects with hour, date, and price fields",
"is_next_day": "boolean, false for current-day pricing"
},
"sample": {
"data": {
"date": "2026-06-11",
"prices": [
{
"date": "2026-06-11T00:00:00",
"hour": "01",
"price": 0.03631
},
{
"date": "2026-06-11T00:00:00",
"hour": "02",
"price": 0.03049
}
],
"is_next_day": false
},
"status": "success"
}
}About the Ameren API
Hourly Electricity Pricing
Four endpoints handle wholesale electricity price data for the Illinois service area. get_hourly_prices_today and get_hourly_prices_previous_day return fixed 24-hour tables for the current and prior day respectively. get_hourly_prices_tomorrow returns next-day pricing when available — typically after 5:30 PM CT — and returns null for the prices field before that. The general-purpose get_hourly_prices accepts an optional date parameter in YYYY-MM-DD format and defaults to today if omitted. All four share the same response shape: a date string, a prices array (each element carrying hour, date as an ISO datetime, and price in $/kWh), and an is_next_day boolean.
Outage Data
get_outage_summary returns region-level outage data for both Illinois and Missouri. Each object in the regions array includes region_name, customers_affected, total_customers, active_outages, and percent_active. A top-level generated_at ISO timestamp indicates when the outage snapshot was produced. This is the only endpoint with multi-state coverage in a single response.
Rates and Efficiency Programs
get_rates_info accepts optional state (IL or MO) and category (residential or business) parameters and returns a url pointing to the relevant Ameren rates page alongside a short info description. get_efficiency_programs accepts an optional state parameter and returns a url, a state value, and a description of available rebate programs. Both endpoints are reference endpoints rather than structured data tables — they surface navigation targets and descriptions rather than rate schedules or rebate dollar amounts.
The Ameren API is a managed, monitored endpoint for ameren.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ameren.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ameren.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Alert home energy management systems when next-day hourly prices exceed a cost threshold using
get_hourly_prices_tomorrow. - Build a dashboard tracking real-time outage counts and percent-active metrics for Illinois and Missouri via
get_outage_summary. - Generate historical price charts by fetching prior-day $/kWh values from
get_hourly_prices_previous_day. - Shift EV charging schedules to lowest-priced hours by parsing the 24-element
pricesarray fromget_hourly_prices. - Direct residential or business customers to the correct Ameren rate page using state and category filters in
get_rates_info. - Aggregate efficiency rebate program links by state for utility comparison tools using
get_efficiency_programs.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Ameren have an official developer API?+
When does tomorrow's pricing become available from `get_hourly_prices_tomorrow`?+
prices field in the response returns null and is_next_day is still set to true. Polling after 5:30 PM CT is the reliable pattern.Does the hourly price data cover Missouri as well as Illinois?+
get_hourly_prices_today, get_hourly_prices_tomorrow, get_hourly_prices_previous_day, and get_hourly_prices) cover the Illinois service area only. get_outage_summary covers both Illinois and Missouri. You can fork this API on Parse and revise it to add a Missouri-specific pricing endpoint if that data becomes available.Does `get_rates_info` return the actual rate schedules or tariff tables?+
url linking to the rates page, a short info description, and the requested state and category values. It does not return structured tariff tables, rate tiers, or dollar-per-kWh breakdowns. You can fork this API on Parse and revise it to extract structured rate schedule data if that granularity is needed.Can I retrieve outage data for a specific city or ZIP code?+
get_outage_summary endpoint returns aggregated region-level data (region_name, customers_affected, active_outages, percent_active) for Illinois and Missouri as a whole. Sub-region or ZIP-level granularity is not currently exposed. You can fork this API on Parse and revise it to add a more granular outage lookup endpoint.