May 2025 Utility API Update
4 months ago by James Gordey
# Overview
<ul>
<li><strong>Instant Utility Support:</strong> Launched instant, reliable support for Penelec and Southern California Gas</li>
<li><strong>Building on Bayou with LLMs:</strong> All Bayou docs are now available in markdown, making them easy for AI to read</li>
<li><strong>Interval Meter Data Updates:</strong>
<ul>
<li>Interval Granularities Exposed Directly On Meter Objects</li>
<li>Data Automatically Sorted By Timestamp</li>
<li>Duplicate Interval Data Management</li>
</ul>
</li>
<li><strong>New <code> /utilities</code> Endpoint:</strong> API endpoint exposing utility support details, availability, and performance</li>
</ul>
# Instant Utility Support
Bayou now has instant customer account authentication, utility bill data and interval meter data delivery within 60 seconds or less for utilities covering 62% of the US population.
<Image align="center" className="border" border={true} src="https://files.readme.io/cfd4a6a470ce640f46cb2df059f3d176683f0949d023d3057c702b18a4226c7b-bayou_utility_api_coverage_may_2025.png" />
New instant utilities that have been added since April 2025 are:
1. Penelec
2. Southern California Gas
<HTMLBlock>{`
<a href="https://bayou.energy/utility_support" target="_blank"><b>View Full Utility Support Here</b></a>
`}</HTMLBlock>
# Building on Bayou with LLMs
<HTMLBlock>{`
<p>
You can use large language models (LLMs) to assist in the building of Bayou Energy integrations, starting with all docs being available in plain text markdown files. To view any page in markdown, simply put a <code>.md</code> at the end of the link. For more details visit our <a href="https://docs.bayou.energy/docs/utility-api-bayou-llms" target="_blank" rel="noopener noreferrer">Building on Bayou with LLMs</a> page and for an example view this page in markdown here: <a href="https://docs.bayou.energy/changelog/bayou-may-2025-utility-api-update.md" target="_blank" rel="noopener noreferrer">https://docs.bayou.energy/changelog/bayou-may-2025-utility-api-update.md</a>
</p>
`}</HTMLBlock>
# Interval Meter Data Updates
## Interval Granularities Exposed Directly On Meter Objects
Previously interval granularities were only available across all meters, not broken out meter by meter
## Duplicate Interval Data Management
<HTMLBlock>{`
<ul>
<li>
Same period readings for
<code>electricity_consumption</code>,
<code>net_electricity_consumption</code>,
<code>generated_electricity</code>,
<code>electricity_demand</code>, and
<code>gas_consumption</code> are merged into one interval object.
</li>
<li>
If two duplicate intervals have a zero or null and a non-zero/null value, we keep the non-zero value.
</li>
<li>
When two non-zero values conflict, we return both in an array so you can resolve downstream in your data pipeline using the
<code>created_at</code> and
<code>updated_at</code> timestamps.
</li>
</ul>
`}</HTMLBlock>
## Data Automatically Sorted By Timestamp
<HTMLBlock>{`
Data is sorted by<code>start</code>, then <code>created_at</code>, then<code> updated_at</code>
`}</HTMLBlock>
<br />
<Callout icon="👇" theme="default">
### Sample Interval JSON below
</Callout>
```json
{
"first_interval_discovered": "2024-07-11T07:00:00Z",
"last_interval_discovered": "2025-05-08T17:15:00Z",
"granularities": [
75,
60,
15
],
"meters": [
{
"id": "FX49843012834",
"granularities": [
75,
15
],
"intervals": [
{
"start": "2024-07-11T07:00:00Z",
"end": "2024-07-11T07:15:00Z",
"electricity_consumption": 1130,
"generated_electricity": null,
"net_electricity_consumption": null,
"electricity_demand": null,
"gas_consumption": null,
"created_at": "2025-04-18T15:54:01Z",
"updated_at": "2025-04-20T12:54:01Z"
},
{
"start": "2024-07-11T07:15:00Z",
"end": "2024-07-11T07:30:00Z",
"electricity_consumption": 1140,
"generated_electricity": null,
"net_electricity_consumption": null,
"electricity_demand": null,
"gas_consumption": null,
"created_at": "2025-04-18T15:54:01Z",
"updated_at": null
}]
}
]
}