How AI agents get energy market and EIA data
An agent gets energy data by querying an energy wire at runtime and filtering by source: EIA and DOE for official figures, trade press for market context. The EIA's own API is free but issues data only against a registered key, which is a step an agent cannot complete mid-task.
/mcp. Nothing here needs an API key or a signup.
That last clause is the practical problem, and it is worth being precise about it rather than vague. The data is public, free and well maintained. The access path assumes a developer with an inbox.
The registration wall is the whole difficulty
EIA publishes its data through an open API and states plainly that registration and acceptance of its terms let it monitor usage and keep the service available. That is an entirely reasonable position for a public agency, and it is also a hard stop for an autonomous caller.
An agent mid-task cannot request a key, receive it by email, and store it for next time. It has no inbox and no persistence between runs unless a developer built both. So the practical options are:
1. A developer registers once and configures the key into the agent ahead of time. Correct when you control the agent and know in advance it needs energy data. 2. The agent calls a source that already did the registration. Correct when the need appears at runtime, which is most of the time.
This is a specific instance of a general design problem, set out in what makes an API agent-native: every human step in the access path is a place an agent stops being a customer.
Official figures and market context answer different questions
| Source filter | What it carries | Good for |
|---|---|---|
eia | Official US energy statistics and outlooks | Numbers you will be asked to cite |
doe | Department of Energy announcements and policy | Programmes, funding, regulatory direction |
oil | Oil and gas trade coverage | Price moves, supply disruption, context |
utilities | Power and utility sector reporting | Grid, generation, rate and capacity news |
An agent asked "why did crude move today" needs the third row. One asked "what were US crude inventories last week" needs the first, and should cite it rather than a trade article describing it. Blending them produces an answer where the authoritative figure and the commentary are indistinguishable, which is the failure covered in what primary source means for machine-readable data.
Scheduled releases behave differently from news
Official energy statistics are Scheduled class. They land at an announced time, and once published they do not move again until the next release. That means continuous polling buys almost nothing, while a single call shortly after the scheduled moment gets everything.
Trade coverage is the opposite: continuous, unscheduled, and worth a rolling window. Splitting a query by source is really splitting it by that rhythm. The same pattern governs macro data, worked through in how agents get US economic data releases.
# official EIA and DOE output, 7 day window curl -i "https://thebotwire.com/energy/latest?q=crude+inventories&src=eia&since=7d" # market context rather than official figures curl -i "https://thebotwire.com/energy/latest?q=opec&src=oil&since=48h&limit=25" # free, no wallet: connect the MCP server claude mcp add --transport http botwire https://thebotwire.com/mcp
The call costs $0.005 and needs no signup of any kind. Every route, filter and price is machine-readable at /llms-full.txt.
FAQ
Should I just register for an EIA key instead?
If you control the agent and know it needs energy statistics, yes. A key you configure once is cheaper than paying per call forever, and going direct to the publisher is the right default when the access path allows it. The case for a wire is discovery at runtime, and breadth across sources one key cannot cover.
Does this wire carry live oil and gas prices?
No. It carries official statistics, department announcements and trade reporting. Tick-level market data is a different product with different licensing, and claiming otherwise would waste a call for anyone who bought on the assumption.
How fresh is the energy wire?
Sparse sources on this service are polled at most every 15 minutes, and the observed overall interval is 300 seconds. For Scheduled-class statistics the poll interval is rarely the binding constraint; the publication schedule is.
Why filter by source at all rather than searching everything?
So the agent can attribute. An answer that says "according to EIA" needs to have actually come from EIA, and the only way to guarantee that in a mixed feed is to constrain the source before the model sees the results.
Sources
The EIA's open data programme, its API, and the registration and terms requirement quoted above are documented at eia.gov/opendata. Poll cadence, wire tiering and per-call pricing for this service are published live at thebotwire.com/health.
Related: How do AI agents get US economic data releases (CPI, jobs, GDP)? · How do AI agents follow Federal Reserve and ECB announcements?