Parse utility webhook payloads through OpenADR 3.0, convert energy readings to Scope-3 carbon emissions, and get machine-readable reports. No database, no setup - just a payload.
WEBHOOK · JSON · OPENADR 3.0 · SCOPE-3 REPORT
HOW IT WORKS
Your utility or energy management system sends an OpenADR 3.0 event payload to the endpoint. The payload contains meter readings, intervals, and quality metadata.
The parser extracts every reading from the report descriptors, applies the correct emission factors per utility type (kWh, therms, gallons), and calculates Scope-1, 2, and 3 emissions.
A structured carbon report is returned with totals and per-source breakdowns, ready for ingestion into your ESG platform, audit trail, or internal dashboard.
API REFERENCE
Accepts an OpenADR 3.0 utility webhook payload and returns a parsed report with all readings extracted and structured.
EXAMPLE REQUEST
POST /api/parse
Content-Type: application/json
{
"event": {
"id": "evt-2026-03-0427",
"createdDateTime": "2026-03-15T14:30:00Z",
"modificationNumber": 0,
"eventStatus": "ACTIVE",
"targets": [
{
"resourceName": "Building A - HQ"
}
],
"reportDescriptors": [
{
"reportSpecifierID": "rs-mar-2026-weekly",
"reportName": "METADATA_USAGE",
"payloads": [
{
...EXAMPLE RESPONSE
{
"eventId": "evt-2026-03-0427",
"resourceName": "Building A - HQ",
"readings": [{ ... }],
"summary": {
"totalEnergy": 844.9,
"readingCount": 3,
"dataQuality": "GOOD"
}
}Parses the OpenADR 3.0 payload and calculates Scope-1, Scope-2, and Scope-3 carbon emissions using built-in emission factors. Returns a complete carbon report.
EXAMPLE REQUEST
POST /api/carbon
Content-Type: application/json
{
"event": {
"id": "evt-2026-03-0427",
"createdDateTime": "2026-03-15T14:30:00Z",
"modificationNumber": 0,
"eventStatus": "ACTIVE",
"targets": [
{
"resourceName": "Building A - HQ"
}
],
"reportDescriptors": [
{
"reportSpecifierID": "rs-mar-2026-weekly",
"reportName": "METADATA_USAGE",
"payloads": [
{
...EXAMPLE RESPONSE
{
"scope1": 65.19,
"scope2": 311.18,
"scope3": 58.33,
"totalEmissions": 434.7,
"breakdown": [{ ... }],
"generatedAt": "2026-03-15T14:30:05Z"
}EXAMPLE PAYLOADS
A mid-size commercial building with electric and natural gas meters. Both readings have "GOOD" quality - no estimation needed. This is the cleanest path through the parser.
{
"event": {
"id": "evt-2026-03-0427",
"createdDateTime": "2026-03-15T14:30:00Z",
"modificationNumber": 0,
"eventStatus": "ACTIVE",
"targets": [
{
"resourceName": "Building A - HQ"
}
],
"reportDescriptors": [
{
"reportSpecifierID": "rs-mar-2026-weekly",
"reportName": "METADATA_USAGE",
"payloads": [
{
"resourceID": "meter-hq-001",
"intervalPeriod": {
"start": "2026-03-15T14:00:00Z",
"duration": "PT1H"
},
"values": [
{
"resourceID": "meter-hq-001",
"payloadType": "ELECTRICITY",
"units": "kWh",
"dataQualities": [
"QUALITY_GOOD"
],
"quality": "GOOD",
"value": 450.5,
"confidence": 95,
"accuracy": 0.5
},
{
"resourceID": "meter-hq-gas-001",
"payloadType": "NATURAL_GAS",
"units": "therms",
"dataQualities": [
"QUALITY_GOOD"
],
"quality": "GOOD",
"value": 12.3,
"confidence": 92,
"accuracy": 0.3
}
]
},
{
"resourceID": "meter-hq-002",
"intervalPeriod": {
"start": "2026-03-15T15:00:00Z",
"duration": "PT1H"
},
"values": [
{
"resourceID": "meter-hq-002",
"payloadType": "ELECTRICITY",
"units": "kWh",
"dataQualities": [
"QUALITY_GOOD"
],
"quality": "GOOD",
"value": 382.1,
"confidence": 94,
"accuracy": 0.4
}
]
}
]
}
]
},
"metadata": {
"source": "utility-webhook",
"webhookId": "wh_d3f4a7b2c9e1",
"timestamp": "2026-03-15T14:30:05Z"
}
}A data center with high electric load plus backup generator fuel. The fuel reading is "ESTIMATED" quality, which flags the report and reduces confidence in the Scope-1 total. The parser preserves quality metadata through every step.
{
"event": {
"id": "evt-2026-03-0428",
"createdDateTime": "2026-03-16T08:00:00Z",
"modificationNumber": 0,
"eventStatus": "ACTIVE",
"targets": [
{
"resourceName": "Data Center - West"
}
],
"reportDescriptors": [
{
"reportSpecifierID": "rs-dc-west-daily",
"reportName": "METADATA_USAGE",
"payloads": [
{
"resourceID": "meter-dc-001",
"intervalPeriod": {
"start": "2026-03-16T07:00:00Z",
"duration": "PT1H"
},
"values": [
{
"resourceID": "meter-dc-001",
"payloadType": "ELECTRICITY",
"units": "kWh",
"dataQualities": [
"QUALITY_GOOD"
],
"quality": "GOOD",
"value": 2840,
"confidence": 96,
"accuracy": 0.3
},
{
"resourceID": "meter-dc-gen-001",
"payloadType": "FUEL_OIL",
"units": "gal",
"dataQualities": [
"QUALITY_ESTIMATED"
],
"quality": "ESTIMATED",
"value": 45.2,
"confidence": 80,
"accuracy": 2
}
]
}
]
}
]
},
"metadata": {
"source": "utility-webhook",
"webhookId": "wh_a1b2c3d4e5f6",
"timestamp": "2026-03-16T08:00:10Z"
}
}LIVE DEMO
Paste a utility payload, upload a JSON file, or use the example. The parser runs entirely on the client - nothing is sent to a server.
UNDERSTANDING THE REPORT
scope1kg CO2eDirect emissions from sources owned or controlled by the reporting entity (fuel combustion, company vehicles). Calculated from natural gas, fuel oil, and propane readings using combustion-based factors.
scope2kg CO2eIndirect emissions from purchased electricity, steam, or other energy. The dominant category for most organizations. Uses EPA eGRID average emission factors based on the reading units.
scope3kg CO2eAll other indirect emissions in the value chain (fuel extraction, transmission losses). Applied as upstream factors on each utility type. Includes well-to-tank losses for gas and grid loss premiums for electricity.
breakdownarray of objectsPer-source detail showing the original reading value, its units, and the calculated Scope-1, 2, and 3 contributions. Use this for granular analysis or to feed sub-category totals into your ESG framework.
dataQualityGOOD / ESTIMATED / QUESTIONABLE / MIXEDSummarizes the quality of the source readings. GOOD means all readings are verified. ESTIMATED or MIXED flags readings that were interpolated, extrapolated, or came from low-confidence meters.
OpenADR 3.0 parsing and carbon accounting, ready for your webhook pipeline. No account, no API key - just the payload.
Try the parserAMCAA - AUTOMATED SCOPE-3 CARBON ACCOUNTING