API
Every stream, one GET away
The same data the workspace draws, served as read-only JSON: what exists, who is in it, and the rows themselves — raw or bucketed. Timestamps are UTC, names are the source's own, and nulls mean the source did not say.
https://api.dryos.aiQuick start
The last two real-time prices at ERCOT's North hub:
curl "https://api.dryos.ai/v1/datasets/ercot-realtime-lmp/query?node=HB_NORTH&limit=2"{
"dataset": "ercot-realtime-lmp",
"rows": [
{
"interval_start_utc": "2026-09-13T19:10:19Z",
"iso": "ERCOT",
"market": "RTM",
"node": "HB_NORTH",
"node_type": "HUB",
"lmp_total": 27.04,
"lmp_energy": null,
"lmp_congestion": null,
"lmp_loss": null,
"source_published_at_utc": "2026-09-13T19:10:22Z",
"collected_at_utc": "2026-09-13T19:11:40.143691Z",
"lat": null,
"lon": null
},
…
],
"count": 2,
"servedTo": null
}The shape is the same everywhere: find a stream in /v1/datasets, find an entity in /nodes, read rows from /query. Past a day of five-minute data, ask for buckets — interval=1h&agg=max — rather than raw rows.
Authentication
No key is needed today, and every route is GET. A request may carry Authorization: Bearer <token> with a Dryos access token, and then it is attributed to that account. A token that fails is refused with 401 rather than served anonymously — an expiry must never turn into silent misattribution.
Routes
Read rows — raw, or bucketed into a rollup.
Raw rows come newest first. With `interval` the rows are buckets instead, each carrying `samples`, the number of readings it holds — an average of twelve and an average of one are different claims.
node | string | The entity, whatever the stream calls it. Refused on system-level feeds. |
start | ISO-8601 · -24h | Inclusive lower bound on interval_start_utc — a timestamp, or relative to now (-30m, -24h, -7d), which keeps a URL right forever. |
end | ISO-8601 · -1h | Exclusive upper bound, same forms. |
limit | ≤ 50000 | Default 1000. |
interval | 15m · 1h · 1d · all | Bucket size, 1m to 7d. Absent means raw rows. |
agg | avg · min · max · sum | How a bucket is reduced. Default avg. |
by | column · none | What a rollup splits by. Default the entity; none for one series. |
where | column=value | Text columns only. Repeat on one column for OR; across columns is AND. |
search | column:text | Case-insensitive substring of a text column. |
newest | bool | One reading per entity — every row at each entity's most recent interval. The current value at every node in one call. Not with interval. |
vintages | latest · all | Forecasts keep every publication. Default is the newest per interval. |
located | bool | Only rows the map can place (located price streams). |
stamp | start · noon | Label a daily bucket at noon UTC so the date reads right in US zones. |
curl "https://api.dryos.ai/v1/datasets/ercot-realtime-lmp/query?node=HB_NORTH&limit=12"TryStreams
135 in every domainEnergy › Pricing › Real-time
Energy › Pricing › Day-ahead
Energy › Load › Actual by weather zone
Energy › Load › Forecast by weather zone
Energy › Generation › Fuel mix
Energy › Pricing › DAM settlement
Energy › Pricing › RT bus LMP
Energy › Pricing › Indicative LMP
Energy › Pricing › System lambda
Energy › Pricing › DAM lambda
Energy › Pricing › Shadow prices
Energy › Pricing › DAM volumes bought
Energy › Pricing › DAM volumes sold
Energy › Ancillary › DAM prices
Energy › Ancillary › RT prices
Energy › Ancillary › RT settlement
Energy › Ancillary › Plan
Energy › Load › Actual by forecast zone
Energy › Load › Forecast by forecast zone
Energy › Load › System demand
Energy › Load › Supply vs demand
Energy › Generation › Wind by load zone
Energy › Generation › Wind by region
Energy › Generation › Solar
Energy › Generation › Solar by region
Energy › Pricing › Price adders
Energy › Grid › Adequacy
Energy › Grid › Outages
Energy › Grid › Temperature
Energy › Pricing › Ex-ante hubs
Energy › Ancillary › Clearing prices
Energy › Generation › Wind and solar
Energy › Grid › Net interchange
Energy › Grid › Scheduled interchange
Energy › Pricing › DA bus LMP
Energy › Generation › Curtailments
Energy › Grid › Market summary
Energy › Load › Hourly actual by area
Energy › Grid › Generation outages
Energy › Grid › Tie flows
Energy › Ancillary › Reserves
Energy › Generation › Wind and solar forecast
Energy › Load › Seven-day forecast
Energy › Pricing › Fifteen-minute
Energy › Grid › WEIM transfers
Energy › Load › Five-minute forecast
Energy › Load › Fifteen-minute forecast
Energy › Load › Day-ahead forecast
Energy › Load › Two-day forecast
Energy › Grid › Transfer interfaces
Energy › Load › Six-day forecast
Energy › Pricing › Real-time hourly
Energy › Load › Load by area
Energy › Ancillary › Regulation
Energy › Ancillary › Market results
Energy › Load › Metered hourly load
Energy › Load › Preliminary hourly load
Energy › Generation › Wind
Energy › Pricing › Dispatch rates
Energy › Ancillary › Operational reserves
Energy › Grid › Area control error
Energy › Grid › Hourly interchange
Energy › Grid › Performance assessment
Energy › Pricing › Interface prices ahead
Weather › Observations › Surface
Weather › Forecast › By ERCOT zone
Weather › Forecast › Official (NWS)
Weather › Forecast › Wind field
Weather › Analysis › National field
Property › Permits › Austin
Property › Permits › San Antonio
Property › Permits › Fort Worth
Property › Permits › Collin County
MCP server
The same data as tools, for agents and app builders that speak MCP — connect once and ask for “ERCOT's Houston price over the last day” instead of building URLs. Streamable HTTP, no key, read-only; the rules below ride along as the server's instructions.
https://api.dryos.ai/mcpclaude mcp add --transport http dryos https://api.dryos.ai/mcp{
"mcpServers": {
"dryos": {
"url": "https://api.dryos.ai/mcp"
}
}
}Claude.ai, ChatGPT, VS Code, Windsurf, Gemini CLI and Codex are on the MCP server's page.
list_streams | Every stream, filterable by domain, grid operator or a word. |
describe_stream | One stream's columns, key, source, health and recent collector changes. |
find_entities | Look up node, zone or station names — never guess one. |
column_values | The distinct values of a text column, for filters. |
query_stream | Rows, raw or bucketed; times in ISO-8601 or relative (-24h). At most 2,000 a call. Each result carries restUrl — the same request as a GET, ready for an app. |
For AI agents
Paste this into an agent's system prompt or project instructions, or point it at dryos.ai/llms.txt, which serves the same text. It covers how to find a stream and an entity, and the rules that keep an agent from reporting a plausible wrong number: every time is UTC, forecasts keep their vintages, names are never guessed.
# Dryos
> Dryos serves real, reconciled data — US power markets (ERCOT, MISO, PJM, SPP, CAISO, NYISO, ISO-NE), weather, and building permits — collected live from the source, through a remote MCP server for AI agents and a public read-only REST API. No key needed.
## MCP server
URL: https://api.dryos.ai/mcp
Transport: Streamable HTTP. No key, no sign-up, read-only. Details and every client: https://www.dryos.ai/mcp
Tools:
- `list_streams` — Every stream, filterable by domain, grid operator or a word.
- `describe_stream` — One stream's columns, key, source, health and recent collector changes.
- `find_entities` — Look up node, zone or station names — never guess one.
- `column_values` — The distinct values of a text column, for filters.
- `query_stream` — Rows, raw or bucketed; times in ISO-8601 or relative (-24h). At most 2,000 a call. Each result carries restUrl — the same request as a GET, ready for an app.
Connect:
- Claude Code: `claude mcp add --transport http dryos https://api.dryos.ai/mcp`
- Gemini CLI: `gemini mcp add --transport http dryos https://api.dryos.ai/mcp`
- Codex · ~/.codex/config.toml: `[mcp_servers.dryos] url = "https://api.dryos.ai/mcp"`
- Cursor, VS Code, Windsurf and other JSON configs: `{"mcpServers": {"dryos": {"url": "https://api.dryos.ai/mcp"}}}`
- Claude.ai, Claude Desktop, ChatGPT: add a custom connector with the URL above and no authentication.
The rules below hold for the tools and the REST API alike.
## Workspace MCP server (builds in the user's account)
URL: https://www.dryos.ai/api/mcp
Transport: Streamable HTTP. Requires signing in with a Dryos account (OAuth 2.1; the client opens the login and consent page itself). Use it with the data server: find streams and entity names there, then build here.
Tools:
- `list_workspaces` — Your workspaces and their pages, with links.
- `list_community` — The workspaces Dryos publishes for everyone — one per grid operator — with a link to view each page and copy it.
- `copy_community` — Your own editable copy of a community workspace, every page included, ready for add_tile.
- `list_components` — The tile shapes and their settings, and the published recipes a page can start from.
- `create_workspace` — A new workspace with its first page, blank or from a recipe.
- `add_page` — Another page in a workspace.
- `add_tile` — A chart, ticker, bar, table, map, heatmap or title on live data — compiled before it is saved.
- `get_page` — What is on a page and where.
Connect: `claude mcp add --transport http dryos-workspace https://www.dryos.ai/api/mcp`, or add a custom connector with the URL above in Claude.ai, Claude Desktop or ChatGPT.
## REST API
Base URL: https://api.dryos.ai
Every route is GET and answers JSON. No API key is needed today. If you send `Authorization: Bearer <token>`, it must be a valid Dryos access token: a bad or expired token is refused with 401, never served anonymously. Reference: https://www.dryos.ai/docs
## How to answer a question
1. **Find the stream.** `GET /v1/datasets` lists every stream. Match the question to a `slug`, then read its `schema` (every column, with type and description) and `serving`: `entity` is the column that names a node/zone/station, `measure` the headline value, `unit` its unit.
2. **Find the entity.** `GET /v1/datasets/{slug}/nodes?q=<text>` searches entity names. Names are verbatim, inner spaces included (`ALDENE 230 KV T-10`). Never guess one — look it up.
3. **Read the rows.** `GET /v1/datasets/{slug}/query?node=<entity>&start=<ISO>&end=<ISO>&limit=<n>`. Raw rows come newest first; `limit` defaults to 1000 and stops at 50000.
4. **Aggregate long windows.** Past a day or so of five-minute data, add `interval=1h` (or `15m`, `1d`, `all`) and `agg=avg|min|max|sum`. Each bucket carries `samples`, the readings in it: a bucket of 1 is not a bucket of 12, and a low count is a collection gap.
## Rules that prevent wrong answers
- **Every timestamp is UTC**, ISO-8601. `interval_start_utc` is the start of the interval. Convert only for display: ERCOT and SPP are US Central, MISO is EST all year (never EDT), PJM, NYISO and ISO-NE are US Eastern with daylight saving, CAISO is US Pacific.
- `start` is inclusive and `end` exclusive.
- **Forecasts keep every publication.** By default you get the newest vintage of each interval; `vintages=all` returns every one, stamped by `source_published_at_utc`. Do not average vintages together.
- **Null means the source did not report it**, never zero.
- `node` filters on the entity whatever the stream calls it. System-level feeds have no entity and answer 400 to it.
- `where=column=value` filters a text column (repeat on one column for OR; different columns AND). `search=column:text` is a case-insensitive substring. Numbers and timestamps cannot be filtered this way.
- Price streams that are `located` carry `lat`/`lon` — the generating plant's coordinates. Hubs, zones and unplaced nodes are null.
- 404 is an unknown slug; 503 means the stream has not been collected yet; 400 explains what was wrong with the request in words.
- Do not poll faster than a stream's cadence. To hear when data lands, hold `GET /v1/events` open (server-sent events: `{"dataset", "at"}`) and query on the name.
- Cite the slug and the interval timestamps behind any number you report.
## Example
```
curl "https://api.dryos.ai/v1/datasets/ercot-realtime-lmp/query?node=HB_NORTH&interval=1h&agg=max&start=2026-09-12T00:00:00Z"
```
The hourly maximum real-time price at ERCOT's North hub since midnight UTC on 12 September.
## Routes
- `GET /v1/datasets` — The catalogue — every stream, its columns and how to read it.
- `GET /v1/datasets/{slug}` — One stream's catalogue entry, plus its last twenty collection runs.
- `GET /v1/datasets/{slug}/nodes` — The entities in a stream — nodes, zones, stations, fuels — with coverage.
- `GET /v1/datasets/{slug}/query` — Read rows — raw, or bucketed into a rollup.
- `GET /v1/datasets/{slug}/values` — Distinct values of one text column, most rows first.
- `GET /v1/datasets/{slug}/sample` — One entity's headline series over recent hours — a worked example.
- `GET /v1/datasets/{slug}/preview` — Per interval: how many entities landed, and how late the source and Dryos each were.
- `GET /v1/datasets/{slug}/runs` — Collection history: every run, its outcome and rows written.
- `GET /v1/status` — Every collector's health, freshness and changelog in one payload.
- `GET /v1/reference/node-locations/{iso}` — Where an operator's pricing nodes are, and the evidence for each placement.
- `GET /v1/events` — Server-sent events: which dataset just landed rows, and when. No rows ride on it.
- `GET /health` — Liveness.
## Streams
- `ercot-realtime-lmp` — ERCOT real-time LMP (Energy › Pricing › Real-time), a row every 5m — e.g. HB_HOUSTON, HB_NORTH, LZ_WEST
- `ercot-dam-lmp-bus` — ERCOT day-ahead hourly LMP (Energy › Pricing › Day-ahead), a row every 1h — e.g. CADICKS_804V, ADICKS__138C, ADK_V_C
- `ercot-actual-load-weather-zone` — Actual system load (Energy › Load › Actual by weather zone), a row every 1h — e.g. COAST, NORTH_C, TOTAL
- `ercot-load-forecast-weather-zone` — Seven-day load forecast (Energy › Load › Forecast by weather zone), a row every 1h — e.g. COAST, NORTH_C, TOTAL
- `ercot-fuel-mix` — Fuel mix (Energy › Generation › Fuel mix), a row every 5m — e.g. NATURAL_GAS, WIND, SOLAR
- `ercot-rt-spp` — Real-time settlement point prices (Energy › Pricing › Real-time), a row every 15m — e.g. HB_NORTH, HB_HOUSTON, LZ_WEST
- `ercot-dam-spp` — DAM settlement point prices (Energy › Pricing › DAM settlement), a row every 1h — e.g. HB_NORTH, HB_HOUSTON, LZ_WEST
- `ercot-rt-lmp-bus` — Real-time LMPs by electrical bus (Energy › Pricing › RT bus LMP), a row every 5m — e.g. ADICKS__138C, 0001DUPV1_, 0001HWFG1
- `ercot-indicative-lmp` — Indicative LMPs (RTD look-ahead) (Energy › Pricing › Indicative LMP), a row every 5m — e.g. HB_NORTH, HB_HOUSTON, LZ_WEST
- `ercot-sced-lambda` — SCED system lambda (Energy › Pricing › System lambda), a row every 5m
- `ercot-dam-lambda` — DAM system lambda (Energy › Pricing › DAM lambda), a row every 1h
- `ercot-dam-shadow-prices` — DAM shadow prices (Energy › Pricing › Shadow prices), a row every 1h — e.g. 105T105_1, 1080__A, 100027_D_1
- `ercot-dam-energy-bought` — DAM energy purchased (Energy › Pricing › DAM volumes bought), a row every 1h — e.g. HB_NORTH, HB_HOUSTON, LZ_WEST
- `ercot-dam-energy-sold` — DAM energy sold (Energy › Pricing › DAM volumes sold), a row every 1h — e.g. HB_NORTH, HB_HOUSTON, LZ_WEST
- `ercot-dam-mcpc` — DAM capacity clearing prices (Energy › Ancillary › DAM prices), a row every 1h — e.g. REGUP, RRS, ECRS
- `ercot-sced-mcpc` — Real-time capacity clearing prices (SCED) (Energy › Ancillary › RT prices), a row every 5m — e.g. REGUP, RRS, ECRS
- `ercot-rt-mcpc` — Capacity settlement prices (15-minute) (Energy › Ancillary › RT settlement), a row every 15m — e.g. REGUP, RRS, ECRS
- `ercot-dam-as-plan` — Ancillary service plan (Energy › Ancillary › Plan), a row every 1h — e.g. REGUP, RRS, ECRS
- `ercot-actual-load-forecast-zone` — Actual load by forecast zone (Energy › Load › Actual by forecast zone), a row every 1h — e.g. HOUSTON, NORTH, SOUTH
- `ercot-load-forecast-forecast-zone` — Seven-day forecast by forecast zone (Energy › Load › Forecast by forecast zone), a row every 1h — e.g. HOUSTON, NORTH, SOUTH
- `ercot-system-demand` — System-wide demand (Energy › Load › System demand), a row every 15m
- `ercot-supply-demand` — Supply and demand (Energy › Load › Supply vs demand), a row every 5m
- `ercot-wind-hourly` — Wind: actual and forecast (Energy › Generation › Wind by load zone), a row every 1h — e.g. LZ_WEST, LZ_NORTH, LZ_SOUTH_HOUSTON
- `ercot-wind-hourly-geo` — Wind by geographical region (Energy › Generation › Wind by region), a row every 1h — e.g. PANHANDLE, COASTAL, WEST
- `ercot-solar-hourly` — Solar: actual and forecast (Energy › Generation › Solar), a row every 1h — e.g. SYSTEM
- `ercot-solar-hourly-geo` — Solar by geographical region (Energy › Generation › Solar by region), a row every 1h — e.g. FAR_WEST, CENTER_WEST, FAR_EAST
- `ercot-rt-price-adders` — Real-time price adders and reserves (Energy › Pricing › Price adders), a row every 5m
- `ercot-short-term-adequacy` — Short-term system adequacy (Energy › Grid › Adequacy), a row every 1h
- `ercot-outage-capacity` — Resource outage capacity (Energy › Grid › Outages), a row every 1h — e.g. HOUSTON, NORTH, SOUTH
- `ercot-temperature-forecast` — Temperature forecast by weather zone (Energy › Grid › Temperature), a row every 1h — e.g. COAST, NORTH_C, FAR_WEST
- `miso-realtime-lmp` — MISO real-time LMP (Energy › Pricing › Real-time), a row every 5m — e.g. INDIANA.HUB, ILLINOIS.HUB, MICHIGAN.HUB
- `miso-dam-lmp` — MISO day-ahead LMP (Energy › Pricing › Day-ahead), a row every 1h — e.g. INDIANA.HUB, ILLINOIS.HUB, MICHIGAN.HUB
- `miso-exante-lmp` — MISO ex-ante hub LMP (Energy › Pricing › Ex-ante hubs), a row every 5m — e.g. INDIANA.HUB, ILLINOIS.HUB, SWPP
- `miso-ancillary-mcp` — MISO ancillary clearing prices (Energy › Ancillary › Clearing prices), a row every 5m — e.g. GEN_REG, GEN_SPIN, STR
- `miso-fuel-mix` — MISO fuel mix (Energy › Generation › Fuel mix), a row every 5m — e.g. NATURAL_GAS, COAL, WIND
- `miso-system-load` — MISO system load (Energy › Load › System demand), a row every 5m
- `miso-wind-solar` — MISO wind and solar (Energy › Generation › Wind and solar), a row every 1h — e.g. WIND, SOLAR
- `miso-net-interchange` — MISO net actual interchange (Energy › Grid › Net interchange), a row every 5m
- `miso-scheduled-interchange` — MISO scheduled interchange (Energy › Grid › Scheduled interchange), a row every 5m — e.g. PJM, SWPP, TVA
- `spp-realtime-lmp` — SPP real-time LMP (Energy › Pricing › Real-time), a row every 5m — e.g. SPPNORTH_HUB, SPPSOUTH_HUB, SWPW_HUB
- `spp-dam-lmp` — SPP day-ahead LMP (Energy › Pricing › Day-ahead), a row every 1h — e.g. SPPNORTH_HUB, SPPSOUTH_HUB, SWPW_HUB
- `spp-rt-lmp-bus` — SPP real-time bus LMP (Energy › Pricing › RT bus LMP), a row every 5m — e.g. CSWS112_WGORLD1, CSWS121LYNN4LD1
- `spp-dam-lmp-bus` — SPP day-ahead bus LMP (Energy › Pricing › DA bus LMP), a row every 1h — e.g. CSWS112_WGORLD1, CSWS77_MEMLD1
- `spp-curtailments` — SPP wind and solar curtailments (Energy › Generation › Curtailments), a row every 5m — e.g. SPP, SWPW
- `spp-rt-market-clearing` — SPP real-time market summary (Energy › Grid › Market summary), a row every 5m — e.g. SPP, SWPW
- `spp-dam-market-clearing` — SPP day-ahead market summary (Energy › Grid › Market summary), a row every 1h — e.g. SPP, SWPW
- `spp-load-hourly` — SPP hourly load by control zone (Energy › Load › Hourly actual by area), a row every 1h — e.g. CSWS, OKGE, WACM
- `spp-gen-outages` — SPP capacity on outage (Energy › Grid › Generation outages), a row every 1h — e.g. SPP, SWPW, Total
- `spp-interchange` — SPP interchange by tie (Energy › Grid › Tie flows), a row every 1m — e.g. AECI, TVA, PACE
- `spp-rt-reserves-cleared` — SPP real-time reserves cleared (Energy › Ancillary › Reserves), a row every 5m — e.g. 1, 4, 21
- `spp-system-load` — SPP system load (Energy › Load › System demand), a row every 5m — e.g. SPP, SWPW
- `spp-renewables-actual` — SPP wind and solar output (Energy › Generation › Wind and solar), a row every 5m — e.g. SPP, SWPW
- `spp-renewables-forecast-5min` — SPP short-term wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 5m — e.g. SPP, SWPW
- `spp-load-forecast-7day` — SPP seven-day load forecast (Energy › Load › Seven-day forecast), a row every 1h — e.g. SPP, SWPW
- `spp-renewables-forecast-7day` — SPP seven-day wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 1h — e.g. SPP, SWPW
- `spp-rt-shadow-prices` — SPP real-time binding constraints (Energy › Pricing › Shadow prices), a row every 5m — e.g. TMP845_30027, TMP459_32122, TP1125_33384
- `spp-dam-shadow-prices` — SPP day-ahead binding constraints (Energy › Pricing › Shadow prices), a row every 1h — e.g. OSAWEBCLESOO, SOONER_SONR_SONR_PHSHFT_PS, TMP630_33215
- `spp-rt-as` — SPP real-time ancillary prices (Energy › Ancillary › RT prices), a row every 5m — e.g. SPP, SWPW, 1
- `spp-dam-as` — SPP day-ahead ancillary prices (Energy › Ancillary › DAM prices), a row every 1h — e.g. SPP, SWPW, 1
- `spp-fuel-mix` — SPP fuel mix (Energy › Generation › Fuel mix), a row every 5m — e.g. WIND, NATURAL_GAS, COAL
- `spp-west-fuel-mix` — SPP RTO West fuel mix (Energy › Generation › Fuel mix), a row every 5m — e.g. HYDRO, COAL, WIND
- `caiso-realtime-lmp` — CAISO real-time LMP (Energy › Pricing › Real-time), a row every 5m — e.g. TH_NP15_GEN-APND, TH_SP15_GEN-APND, DLAP_PGAE-APND
- `caiso-fmm-lmp` — CAISO fifteen-minute LMP (Energy › Pricing › Fifteen-minute), a row every 15m — e.g. TH_NP15_GEN-APND, TH_SP15_GEN-APND, DLAP_PGAE-APND
- `caiso-dam-lmp` — CAISO day-ahead LMP (Energy › Pricing › Day-ahead), a row every 1h — e.g. TH_NP15_GEN-APND, TH_SP15_GEN-APND, TH_PACE_GEN-APND
- `caiso-fuel-mix` — CAISO fuel mix (Energy › Generation › Fuel mix), a row every 5m — e.g. SOLAR, NATURAL_GAS, BATTERIES
- `caiso-system-load` — CAISO system load (Energy › Load › System demand), a row every 5m
- `caiso-eim-transfers-5min` — CAISO WEIM transfers, five-minute (Energy › Grid › WEIM transfers), a row every 5m — e.g. CISO->SRP PVWEST, SRP->CISO PVWEST, NWMT->BPAT GARRISON
- `caiso-eim-transfers-15min` — CAISO WEIM transfers, fifteen-minute (Energy › Grid › WEIM transfers), a row every 15m — e.g. CISO->SRP PVWEST, SRP->CISO PVWEST, NWMT->BPAT GARRISON
- `caiso-dam-shadow-prices` — CAISO day-ahead binding constraints (Energy › Pricing › Shadow prices), a row every 1h — e.g. 31336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1, 24701_KRAMER _230_24601_VICTOR _230_BR_2 _1, 7820_TL 230S_OVERLOAD_NG
- `caiso-rt-shadow-prices` — CAISO real-time binding constraints (Energy › Pricing › Shadow prices), a row every 5m — e.g. 31336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1, 24114_PARDEE _230_24115_PASTORIA_230_BR_1 _1, 7820_TL 230S_OVERLOAD_NG
- `caiso-dam-as` — CAISO day-ahead ancillary prices (Energy › Ancillary › DAM prices), a row every 1h — e.g. AS_CAISO_EXP, AS_NP26, AS_SP26
- `caiso-rt-as` — CAISO real-time ancillary prices (Energy › Ancillary › RT prices), a row every 15m — e.g. AS_CAISO_EXP, AS_NP26, AS_SP26
- `caiso-load-forecast-5min` — CAISO five-minute load forecast (Energy › Load › Five-minute forecast), a row every 5m — e.g. CA ISO-TAC, PGE-TAC, SCE-TAC
- `caiso-load-forecast-15min` — CAISO fifteen-minute load forecast (Energy › Load › Fifteen-minute forecast), a row every 15m — e.g. CA ISO-TAC, PGE-TAC, SCE-TAC
- `caiso-load-actual-hourly` — CAISO hourly actual load (Energy › Load › Hourly actual by area), a row every 1h — e.g. CA ISO-TAC, PGE-TAC, SCE-TAC
- `caiso-load-forecast-dam` — CAISO day-ahead load forecast (Energy › Load › Day-ahead forecast), a row every 1h — e.g. CA ISO-TAC, PGE-TAC, SCE-TAC
- `caiso-load-forecast-2day` — CAISO two-day load forecast (Energy › Load › Two-day forecast), a row every 1h — e.g. CA ISO-TAC, PGE-TAC, SCE-TAC
- `caiso-load-forecast-7day` — CAISO seven-day load forecast (Energy › Load › Seven-day forecast), a row every 1h — e.g. CA ISO-TAC, PGE-TAC, SCE-TAC
- `caiso-renewables-forecast-5min` — CAISO five-minute wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 5m — e.g. SP15, NP15, ZP26
- `caiso-renewables-forecast-15min` — CAISO fifteen-minute wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 15m — e.g. SP15, NP15, ZP26
- `caiso-renewables-actual-hourly` — CAISO hourly actual wind and solar (Energy › Generation › Wind and solar), a row every 1h — e.g. SP15, NP15, ZP26
- `caiso-renewables-forecast-dam` — CAISO day-ahead wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 1h — e.g. SP15, NP15, ZP26
- `caiso-renewables-forecast-hasp` — CAISO hour-ahead wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 1h — e.g. SP15, NP15, ZP26
- `nyiso-interface-flows` — NYISO interface flows (Energy › Grid › Transfer interfaces), a row every 5m — e.g. TOTAL EAST, CENTRAL EAST - VC, SCH - PJ - NY
- `nyiso-rt-shadow-prices` — NYISO real-time binding constraints (Energy › Pricing › Shadow prices), a row every 5m — e.g. SCRIBA 345 VOLNEY 345 1, MEYER 230 MEYER 1 1
- `nyiso-dam-shadow-prices` — NYISO day-ahead binding constraints (Energy › Pricing › Shadow prices), a row every 1h — e.g. DUNWODIE 345 SHORE_RD 345 1, SPRNBRK 345 UNIONHBS 345 1
- `nyiso-rt-as` — NYISO real-time ancillary prices (Energy › Ancillary › RT prices), a row every 5m — e.g. N.Y.C., LONGIL, WEST
- `nyiso-dam-as` — NYISO day-ahead ancillary prices (Energy › Ancillary › DAM prices), a row every 1h — e.g. N.Y.C., LONGIL, WEST
- `nyiso-system-load` — NYISO load by zone (Energy › Load › System demand), a row every 5m — e.g. N.Y.C., LONGIL, WEST
- `nyiso-load-forecast-6day` — NYISO load forecast (Energy › Load › Six-day forecast), a row every 1h — e.g. N.Y.C., LONGIL, NYISO
- `nyiso-fuel-mix` — NYISO fuel mix (Energy › Generation › Fuel mix), a row every 5m — e.g. NATURAL_GAS, DUAL_FUEL, HYDRO
- `nyiso-dam-lmp` — NYISO day-ahead LMP (Energy › Pricing › Day-ahead), a row every 1h — e.g. N.Y.C., LONGIL, WEST
- `nyiso-realtime-lmp` — NYISO real-time LMP (Energy › Pricing › Real-time), a row every 5m — e.g. N.Y.C., LONGIL, WEST
- `isone-realtime-lmp` — ISO-NE real-time LMP (Energy › Pricing › Real-time), a row every 5m — e.g. .H.INTERNAL_HUB, .Z.NEMASSBOST, .Z.CONNECTICUT
- `pjm-realtime-lmp` — PJM real-time LMP (Energy › Pricing › Real-time), a row every 5m — e.g. WESTERN HUB, PJM-RTO, COMED
- `pjm-realtime-lmp-hourly` — PJM real-time hourly LMP (Energy › Pricing › Real-time hourly), a row every 1h — e.g. WESTERN HUB, PJM-RTO, COMED
- `pjm-rt-lmp-bus` — PJM real-time LMPs by bus (Energy › Pricing › RT bus LMP), a row every 5m — e.g. ALDENE 230 KV T-10, BRANCHBURG500 KV T-1, KEYSTONE500 KV KEY1
- `pjm-dam-lmp` — PJM day-ahead LMP (Energy › Pricing › Day-ahead), a row every 1h — e.g. WESTERN HUB, PJM-RTO, COMED
- `pjm-dam-lmp-bus` — PJM day-ahead LMPs by bus (Energy › Pricing › DA bus LMP), a row every 1h — e.g. ALDENE 230 KV T-10, BRANCHBURG500 KV T-1, KEYSTONE500 KV KEY1
- `pjm-system-load` — PJM load by area (Energy › Load › Load by area), a row every 5m — e.g. PJM RTO, COMED, DOM
- `pjm-fuel-mix` — PJM fuel mix (Energy › Generation › Fuel mix), a row every 1h — e.g. GAS, NUCLEAR, COAL
- `pjm-tie-flows` — PJM tie flows (Energy › Grid › Tie flows), a row every 5m — e.g. NYIS, PJM MISO, TVA
- `pjm-regulation-prices` — PJM regulation prices (Energy › Ancillary › Regulation), a row every 5m
- `pjm-dispatched-reserves` — PJM dispatched reserves (Energy › Ancillary › Reserves), a row every 5m — e.g. SYNCHRONIZED, PRIMARY, THIRTY_MINUTE
- `pjm-rt-reserve-results` — PJM real-time ancillary market results (Energy › Ancillary › Market results), a row every 5m — e.g. REGULATION, SYNCHRONIZED, PRIMARY
- `pjm-da-reserve-results` — PJM day-ahead ancillary market results (Energy › Ancillary › Market results), a row every 1h — e.g. SYNCHRONIZED, PRIMARY, THIRTY_MINUTE
- `pjm-load-metered` — PJM metered hourly load (Energy › Load › Metered hourly load), a row every 1h — e.g. AECO, DOM, PS
- `pjm-load-prelim` — PJM preliminary hourly load (Energy › Load › Preliminary hourly load), a row every 1h — e.g. AEP, DOM, MIDATL
- `pjm-load-forecast-5min` — PJM five-minute load forecast (Energy › Load › Five-minute forecast), a row every 5m — e.g. RTO_COMBINED, COMED, PSE&G/MIDATL
- `pjm-load-forecast-7day` — PJM seven-day load forecast (Energy › Load › Seven-day forecast), a row every 1h — e.g. RTO_COMBINED, COMED, DOMINION
- `pjm-wind-gen` — PJM wind output (Energy › Generation › Wind), a row every 15s
- `pjm-solar-gen` — PJM solar output (Energy › Generation › Solar), a row every 5m
- `pjm-wind-solar-forecast` — PJM wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 1h — e.g. WIND, SOLAR, SOLAR_BTM
- `pjm-wind-solar-forecast-5min` — PJM five-minute wind and solar forecast (Energy › Generation › Wind and solar forecast), a row every 5m — e.g. WIND, SOLAR, SOLAR_BTM
- `pjm-binding-constraints` — PJM binding constraints (Energy › Pricing › Shadow prices), a row every 5m — e.g. GRACETON-MANOR GRA-MANO A 230 KV, APSOUTH, BED-BLA
- `pjm-rt-marginal-value` — PJM real-time constraint marginal values (Energy › Pricing › Shadow prices), a row every 5m — e.g. APSOUTH, BED-BLA
- `pjm-da-marginal-value` — PJM day-ahead constraint marginal values (Energy › Pricing › Shadow prices), a row every 1h — e.g. APSOUTH, BED-BLA
- `pjm-dispatch-rates` — PJM dispatch rates (Energy › Pricing › Dispatch rates), a row every 15s — e.g. COMED, DOM, PS
- `pjm-operational-reserves` — PJM operational reserves (Energy › Ancillary › Operational reserves), a row every 15s — e.g. RTO_SYNCHRONIZED_RESERVE_TOTAL, RTO_CONTINGENCY_PRIMARY_RESERVE_TOTAL
- `pjm-ace` — PJM area control error (Energy › Grid › Area control error), a row every 15s
- `pjm-interchange-hourly` — PJM hourly interchange by tie (Energy › Grid › Hourly interchange), a row every 1h — e.g. NYIS, TVA, DUK
- `pjm-gen-outages` — PJM generation outages, week ahead (Energy › Grid › Generation outages), a row every 1d — e.g. PJM RTO, Western, Mid Atlantic - Dominion
- `pjm-gen-outage-forecast` — PJM generation outage forecast, ninety days (Energy › Grid › Generation outages), a row every 1d — e.g. PJM RTO, Western, Other
- `pjm-pai-intervals` — PJM performance assessment intervals (Energy › Grid › Performance assessment), a row every 5m
- `pjm-itsced-lmp` — PJM IT SCED interface prices (Energy › Pricing › Interface prices ahead), a row every 5m — e.g. NYIS, MISO, NEPTUNE
- `pjm-transfer-interfaces` — PJM transfer interfaces (Energy › Grid › Transfer interfaces), a row every 5m — e.g. APSOUTH, EAST, BED-BLA
- `noaa-station-observations` — Surface observations (Weather › Observations › Surface), a row every 1h — e.g. KAUS, KDFW, KIAH
- `openmeteo-zone-forecast` — Hourly forecast by weather zone (Weather › Forecast › By ERCOT zone), a row every 1h — e.g. NORTH_C, COAST, WEST
- `noaa-gridpoint-forecast` — NWS forecast by weather zone (Weather › Forecast › Official (NWS)), a row every 1h — e.g. NORTH_C, COAST, WEST
- `openmeteo-wind-field` — Hub-height wind field (Weather › Forecast › Wind field), a row every 1h — e.g. G_325_0975, G_295_0955, G_335_1015
- `noaa-hrrr-field` — HRRR national weather field (Weather › Analysis › National field), a row every 1h — e.g. H_0200_0970, H_0670_1170, H_0700_1550
- `austin-permits` — Austin construction permits (Property › Permits › Austin), a row every 1d — e.g. 78704, 78745, 78744
- `sanantonio-permits` — San Antonio permits (Property › Permits › San Antonio), a row every 1d — e.g. 78201, 78209, 78245
- `fortworth-permits` — Fort Worth permits (Property › Permits › Fort Worth), a row every 1d — e.g. 76179, 76052, 76036
- `collin-permits` — Collin County permits (Property › Permits › Collin County), a row every 1d — e.g. 75071, 75009, 75098