ERCOT engineering guide · Architecture
ERCOT API vs file downloads for market data pipelines
The Public API isn't automatically the best source for every pipeline. How to choose between API queries and published report files per dataset, and when to use both.
ERCOT offers more than one way to obtain market data, and the API isn't automatically the best source for every pipeline.
The right ingestion method depends on what matters most for a given dataset: latency, data volume, selective filtering, historical reconstruction, reproducibility, or plain operational simplicity. A sound architecture may use different mechanisms for different workflows — even for the same product.
Where this guide sits in the pipeline
- Source
- Fetch
- Raw copy
- Validate
- Verify completeness
- Normalize
- Promote
- Client system
The options
- Public API queries — filtered requests against report endpoints (for example, NP6-788-CD by SCED timestamp or settlement point), returned as paginated JSON.
- Published report files — the zipped report artifacts ERCOT posts for each product on ercot.com. The Public API also lists them per product through its archive endpoint,
/archive/{emilId}, in ERCOT's API specification. - EWS — ERCOT's SOAP-based web services, which ERCOT staff have pointed to for some time-sensitive needs. Check ERCOT's documentation for its access requirements.
How they compare
| Requirement | API queries | Published files |
|---|---|---|
| Selective filtering | Often strong | Usually less flexible |
| Very large bulk retrieval | Can run into pagination and rate constraints | Can be attractive |
| Raw source artifact | Save the response explicitly | The file is one |
| Programmatic integration | Strong | Strong |
| Historical workflows | Product dependent | Product dependent |
| Latency | Product dependent | Product dependent |
ERCOT products differ. Source selection should be evaluated per dataset, not decided once for the whole pipeline.
Selective filtering
This is the API's strength: one settlement point, one hour, one set of fields. A report file usually gives you everything the product publishes for its period, and you filter locally.
Bulk retrieval
Paging through everything a high-volume product publishes, one API query at a time, is the pattern that ran into ERCOT's bandwidth-based limits in March 2026 (Discussion #132). If you need the whole product anyway, a file is often the more natural unit of work: one artifact per publication, with no page boundaries to track. It is still data volume, though, so it still has to fit whatever limits apply to the channel you download it from.
Raw artifacts and reproducibility
A downloaded file is its own raw record: you can checksum it, store it and reprocess it later. API responses can serve the same purpose, but only if you save them explicitly before parsing (the Python guide shows how).
Latency
For NP6-788-CD in August 2025, ERCOT staff described a delay of approximately 5–10 minutes between posting on ercot.com and availability in the Public API, and suggested downloading the report files from ercot.com in the meantime (Discussion #104). ERCOT has since described releases planned to shrink that gap (Discussion #68). Both facts are specific to a product and a point in time — see why ERCOT API data can lag behind ercot.com — and neither means files are always faster.
Historical workflows
How far back each channel goes, and how older data is requested, varies by product. A June 2026 question on ERCOT's board about historical backfills of several Secure EWS products (Discussion #142) had no replies when we reviewed it, which is itself a reminder to verify retention and request windows per product before designing around them.
A hybrid strategy
Live
- API or current report files
- Validate and check completeness
- Operational tables
Backfill
- Archived files or API, as appropriate
- Validate and check completeness
- Historical tables
Both paths should land in the same normalized schema, with the source recorded for every batch. Then you can move a product from API to files, or back, without changing anything downstream — which matters, because the best choice for a product can change when ERCOT changes its systems.
Record where every batch came from
Whichever channel you use, store which one produced each batch, along with the artifact or request behind it. When two sources disagree — a republished report, say, or an API query run before processing finished — you need to know which one each row came from, and when.
Practical takeaway
- Choose the source per dataset, and revisit the choice when ERCOT changes its systems.
- Use API queries for selective retrieval; consider files when you need the whole product.
- Keep a raw artifact either way.
- Land live and backfill paths in the same normalized schema.
- Record the source channel for every batch.
Related ERCOT guides
Data Quality
Why ERCOT API data can lag behind ercot.com
What ERCOT has said about publication lag, and how to tell late data from missing data.
Read the guideArchitecture
ERCOT historical backfills need a different pipeline design
Resumable, verifiable backfills with deterministic windows, checkpoints, raw artifacts and idempotent loads.
Read the guideAPI
Getting started with the ERCOT Public API in Python
Registration, authentication, a first request, pagination, and the pieces a collector needs to run unattended.
Read the guideSources & further reading
ERCOT APIs, publication behavior and access policies can change. These sources were reviewed on September 21, 2026; verify current requirements against ERCOT's official documentation before implementing production systems. Discussion threads mix ERCOT staff replies with community reports, and the notes below say which is which.
- Discussion #104: 788 Report Timing ERCOT staff reply, August 19, 2025. Describes the design at that time, not a service-level agreement.
- Discussion #68: Is there a delay in the availability of API data products? ERCOT staff replies, December 9, 2024 and October 28, 2025. Planned improvements described there are dated plans.
- Discussion #132: 429 “Quota Exceeded” errors on the Public Reports API when paginating LMP data ERCOT staff replies, March 9 and 11, 2026. Marked answered. Threshold values posted by community members are not ERCOT policy.
- Discussion #142: Secure EWS historical backfill — short request window for RUC/state-estimator products? Community question, June 7, 2026. No replies when reviewed; its observations are not treated as ERCOT facts.
- ERCOT Public API specification (OpenAPI), ercot/api-specs Official endpoint and parameter definitions published by ERCOT.