Register for a free EIA API key at api.eia.gov and review the EIA API v2 documentation; EIA-930 data is available under the electricity/rto series within the v2 API.
Identify the correct route for EIA-930 data: use GET https://api.eia.gov/v2/electricity/rto/region-data/data/ for balancing authority-level demand and generation, and GET https://api.eia.gov/v2/electricity/rto/fuel-type-data/data/ for generation by fuel type, passing your api_key as a query parameter.
Filter results using available facets: respondent (balancing authority abbreviation, e.g., 'CISO' for CAISO, 'MISO', 'PJM'), fueltype (for fuel-type endpoint: NG, COL, WAT, WND, SUN, NUC, etc.), and type (D for demand, NG for net generation, TI for total interchange).
Specify the time range with the start and end parameters in ISO 8601 format (e.g., start=2025-01-01T00&end=2025-01-31T23); data is available at hourly granularity going back to July 2015 for original series and July 2018 for newer series.
Handle pagination: the API returns a maximum number of rows per response; use the offset parameter and check the response's total count to retrieve all records in large date ranges.
Be aware that EIA-930 data undergoes a revision process: real-time data is published with preliminary values, and revised values are posted within a few days — use the most recent pull for historical analysis rather than relying on a single snapshot.
Known gotchas
EIA-930 data covers only the Lower 48 states balancing authorities; Alaska and Hawaii are not included, and some smaller utilities report to their regional balancing authority rather than directly, so the respondent list is not a 1:1 map to utilities.
The API v2 facet names differ from what was used in the older EIA API v1 and from the field names in the downloadable CSV files; do not mix v1 and v2 query syntax — they are incompatible.
Hourly generation by fuel type and hourly demand are in separate API endpoints with different respondent coverage; some balancing authorities report demand but not fuel-type breakdown — inner-joining the two series without checking coverage will produce unexpected data loss.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp