Next free-source hunt
We check for new free data every weekday.
Datasets / Energy
developer.ercot.com/

ERCOT Public Data API

Freeauth: free account, subscription key and API tokenProvider terms#energy#real-time#time-series#prices#infrastructure✓ verified Nov 1, 2026

ERCOT Public Data API

ERCOT's authenticated JSON API exposes its catalog of public Texas electricity-market reports and report artifacts, including load, generation, outages, forecasts, prices, constraints and ancillary services. Product metadata includes report identifiers, descriptions, posting frequency, activation and archive dates, file types and artifact links; a free account, subscription key and hourly ID token are required.

Coverage

Coverage is the ERCOT market in Texas, with product frequencies ranging from sub-hourly or hourly reports to daily and longer-period publications. API data begins at each product's Public Data API activation date; older historical files are retained for at least seven years. Access is limited to 30 requests per minute and 1,000 historic files per download, and regions outside the United States are currently restricted.

Verdict

This is a high-frequency Texas power-market signal for load, generation, outages, renewable forecasts, prices, constraints and reserves. Product-specific posting frequencies and archive starts differ, so ingestion should discover the catalog and preserve report timestamps and identifiers. ERCOT supplies the information as is, can change access limits, restricts current access outside the United States and may revise or replace reports. Registration must be completed manually because bot-created accounts are prohibited, and the Data Access Portal limits repeat downloads of the same report.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load the ERCOT public-report catalog into pandas and Parquet. Checked against the provider's documentation on Nov 1, 2026.

Raw skill file (/skills/ercot-public-data-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "ercot-public-data-api"}.

Access

  • Create the free account manually, subscribe to the Public API product, and set ERCOT_USERNAME, ERCOT_PASSWORD and ERCOT_SUBSCRIPTION_KEY.
  • Request a fresh ID token before API calls; tokens are valid for one hour.
  • Current geographic controls restrict access from outside the United States.

Request

bash
curl 'https://api.ercot.com/api/public-reports' -H "Ocp-Apim-Subscription-Key: $ERCOT_SUBSCRIPTION_KEY" -H "Authorization: Bearer $ERCOT_ID_TOKEN"

Format

JSON HAL response whose embedded products contain EMIL ID, name, description, status, report type, audience, generation frequency, first run, file types, archive duration, download limit and artifact endpoint links.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""ERCOT public-report catalog -> pandas -> Parquet. Needs a free account."""
import os
import requests
import pandas as pd

AUTH_URL = "https://ercotb2c.b2clogin.com/ercotb2c.onmicrosoft.com/B2C_1_PUBAPI-ROPC-FLOW/oauth2/v2.0/token"
params = {
    "username": os.environ["ERCOT_USERNAME"],
    "password": os.environ["ERCOT_PASSWORD"],
    "grant_type": "password",
    "scope": "openid fec253ea-0d06-4272-a5e6-b478baeecd70 offline_access",
    "client_id": "fec253ea-0d06-4272-a5e6-b478baeecd70",
    "response_type": "id_token",
}
auth = requests.post(AUTH_URL, data=params, timeout=30)
auth.raise_for_status()
id_token = auth.json()["id_token"]
headers = {
    "Authorization": f"Bearer {id_token}",
    "Ocp-Apim-Subscription-Key": os.environ["ERCOT_SUBSCRIPTION_KEY"],
}
r = requests.get("https://api.ercot.com/api/public-reports", headers=headers, timeout=60)
r.raise_for_status()
products = r.json().get("_embedded", {}).get("products", [])
df = pd.json_normalize(products, sep="_")
df.to_parquet("ercot_public_report_catalog.parquet", index=False)
print(len(df), "ERCOT public-report products", len(df.columns), "fields")

Not run: it needs a free account, subscription key and ID token.

Limits

  • Rate limit: 30 requests per minute, approximately one every two seconds.
  • Historic-file downloads are limited to 1,000 files at one time.
  • API data begins at each product's activation date; older files are retained for at least seven years.
  • Current geographic controls restrict regions outside the United States.

Quirks

  • ID tokens expire after one hour and cannot be refreshed; request another token.
  • Product frequencies, activation dates, schemas and artifact endpoints differ, so discover metadata before selecting reports.
  • Data Access Portal terms limit the same report to three downloads in 12 months; store and reuse downloaded reports.

Terms and attribution

  • Accounts must be registered manually; accounts created by bots or automated methods are prohibited.
  • Use only the documented access methods and do not evade ERCOT's limits.
  • API information is supplied as is without warranties of accuracy, timeliness or completeness.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer