ERCOT · Grid
Short-term system adequacy
ERCOT's own hour-by-hour view of whether it has enough capacity, 168 hours out, refreshed hourly with every revision kept. Collected from ERCOT MIS (NP3-763).
ercot-short-term-adequacyhourly, 168h out · 1h rows1 entityWhat is in it
- Updates
- hourly, 168h out · 1h rows
- Entities
- 1 entity
- Source
- ERCOT MIS · NP3-763-CD
- Source timezone
- US Central — every timestamp Dryos serves is UTC
- Coverage
- 29 August 2026 to now
- Rows held
- 75,768
- Primary key
- iso, interval_start_utc, source_published_at_utc
What it measures
Every value, its unit, and what the source means by it.
- Available capacityMW
Available generation capacity for the hour.
avail_cap_gen - Available reserveMW
Capacity available as reserve for the hour.
avail_cap_reserve
Columns
Exactly what a request answers with, read from the API rather than written here.
| Column | Type | Description |
|---|---|---|
| interval_start_utcrequired | timestamp | Start of the interval, UTC. Always UTC — ERCOT publishes wall-clock Central with a repeated-hour flag, which is resolved on ingest.e.g. 2026-08-29T14:15:00Z |
| isorequired | string | Publishing ISO.e.g. ERCOT |
| cap_gen_res_southrequired | number | ERCOT `CapGenResSouth`, MW.e.g. 1997 |
| cap_gen_res_northrequired | number | ERCOT `CapGenResNorth`, MW.e.g. 1997 |
| cap_gen_res_westrequired | number | ERCOT `CapGenResWest`, MW.e.g. 1997 |
| cap_gen_res_houstonrequired | number | ERCOT `CapGenResHouston`, MW.e.g. 1997 |
| cap_load_res_southrequired | number | ERCOT `CapLoadResSouth`, MW.e.g. 1997 |
| cap_load_res_northrequired | number | ERCOT `CapLoadResNorth`, MW.e.g. 1997 |
| cap_load_res_westrequired | number | ERCOT `CapLoadResWest`, MW.e.g. 1997 |
| cap_load_res_houstonrequired | number | ERCOT `CapLoadResHouston`, MW.e.g. 1997 |
| offline_available_mw_southrequired | number | ERCOT `OfflineAvailableMWSouth`, MW.e.g. 1997 |
| offline_available_mw_northrequired | number | ERCOT `OfflineAvailableMWNorth`, MW.e.g. 1997 |
| offline_available_mw_westrequired | number | ERCOT `OfflineAvailableMWWest`, MW.e.g. 1997 |
| offline_available_mw_houstonrequired | number | ERCOT `OfflineAvailableMWHouston`, MW.e.g. 1997 |
| avail_cap_genrequired | number | ERCOT `AvailCapGen`, MW.e.g. 1997 |
| avail_cap_reserverequired | number | ERCOT `AvailCapReserve`, MW.e.g. 1997 |
| cap_gen_res_totalrequired | number | ERCOT `CapGenResTotal`, MW.e.g. 1997 |
| cap_load_res_totalrequired | number | ERCOT `CapLoadResTotal`, MW.e.g. 1997 |
| offline_available_mw_totalrequired | number | ERCOT `OfflineAvailableMWTotal`, MW.e.g. 1997 |
| cap_regup_totalrequired | number | ERCOT `CapREGUPTotal`, MW.e.g. 1997 |
| cap_regdn_totalrequired | number | ERCOT `CapREGDNTotal`, MW.e.g. 1997 |
| cap_rrs_totalrequired | number | ERCOT `CapRRSTotal`, MW.e.g. 1997 |
| cap_ecrs_totalrequired | number | ERCOT `CapECRSTotal`, MW.e.g. 1997 |
| cap_nspin_totalrequired | number | ERCOT `CapNSPINTotal`, MW.e.g. 1997 |
| cap_regup_rrs_totalrequired | number | ERCOT `CapREGUP_RRSTotal`, MW.e.g. 1997 |
| cap_regup_rrs_ecrs_totalrequired | number | ERCOT `CapREGUP_RRS_ECRSTotal`, MW.e.g. 1997 |
| cap_regup_rrs_ecrs_nspin_totalrequired | number | ERCOT `CapREGUP_RRS_ECRS_NSPINTotal`, MW.e.g. 1997 |
| source_published_at_utcrequired | timestamp | When ERCOT posted the document this row came from, UTC. For reports republished on a rolling window this is the vintage: the same interval appears once per publication, and the newest is the current view.e.g. 2026-08-29T14:17:01Z |
| collected_at_utcrequired | timestamp | When Dryos collected this row, UTC. Stamped by the platform, not the collector.e.g. 2026-08-29T14:18:02Z |
Read it
Public, read-only, no key and no sign-up. Relative times stay relative, so a URL keeps working.
The newest rows
curl "https://api.dryos.ai/v1/datasets/ercot-short-term-adequacy/query?limit=12"The catalogue entry — every column, its type and the source
curl "https://api.dryos.ai/v1/datasets/ercot-short-term-adequacy"Full parameters — bucketing, aggregation, filters and search — are on the API reference.
Ask an agent
The same stream through the Model Context Protocol, so Claude, ChatGPT, Cursor or any MCP client can query it directly.
claude mcp add --transport http dryos https://api.dryos.ai/mcpThen ask:
Show me Available capacity on Short-term system adequacy over the last 24 hours.
Setup for every client is on the MCP server page.
How this stream is checked
- Pulled straight from ERCOT MIS · NP3-763-CD — no reseller in between — and compared against that file before it is served.
- Null means the source did not report it — never zero.
- A reading lands hourly, 168h out; the interval timestamp is the start of the interval, in UTC.
- ERCOT settles and publishes on US Central time. Every timestamp Dryos serves is UTC.
Related streams
- Resource outage capacityERCOT
Capacity on outage by forecast zone, hour by hour for the coming week — total, intermittent and not-yet-commercial.
hourly, week out · 1h rows4 entitiesercot-outage-capacity - Temperature forecast by weather zoneERCOT
The hourly temperature forecast ERCOT plans against, per weather zone, published daily with every revision kept.
daily, rolling window · 1h rows8 entitiesercot-temperature-forecast - ERCOT real-time LMPERCOT
Locational marginal prices from the latest SCED run, every ERCOT settlement point.
every 5 min · 5m rows1,118 entitiesercot-realtime-lmp - ERCOT day-ahead hourly LMPERCOT
Hourly cleared prices from the day-ahead market for every ERCOT electrical bus, posted once for the following day.
daily, ~12:35 CT · 1h rows19,312 entitiesercot-dam-lmp-bus - Actual system loadERCOT
Metered demand by weather zone, hourly, with ERCOT's own system total as its own row.
hourly, posted next day · 1h rows9 entitiesercot-actual-load-weather-zone - Seven-day load forecastERCOT
ERCOT's own load forecast by weather zone, refreshed every hour, seven days out.
hourly, 7 days ahead · 1h rows9 entitiesercot-load-forecast-weather-zone