Docs
API Reference

Utilities API

Match utility names and browse the utility catalog via the EIA-backed API.

List Utilities

GET /api/v1/utilities/list

Browse and search available utilities with filters and pagination.

Authentication

Bearer token required. See Authentication.

Query Parameters

ParameterTypeRequiredDescription
statestringNoTwo-letter state code filter
typestringNoOwnership type. One of: iou, cooperative, municipal, political_subdivision, state, federal
querystringNoFree-text search (max 200 chars)
limitnumberNoResults per page (1-200, default 50)
offsetnumberNoPagination offset (default 0)

Example

curl "https://gridwonk.com/api/v1/utilities/list?state=CA&type=iou&limit=10" \
  -H "Authorization: Bearer $GRIDBOOST_API_KEY"

Match Utility

POST /api/v1/utilities/match

Match a user-provided utility name to an official EIA (Energy Information Administration) utility record. Matching is deterministic: the route uses database-backed slugs, display names, search aliases, state narrowing, and normalized text comparison. It does not call an LLM.

  • Deterministic: The same stored utility input returns the same official record.
  • Fast: Common names, aliases, and normalized matches resolve from stored catalog data.
  • Capped: Each organization has a daily unique-utility lookup cap for match requests.

Authentication

Bearer token required. See Authentication.

Request Body

ParameterTypeRequiredDescription
namestringYesUtility name to match (1–500 characters). Supports common abbreviations (e.g. PG&E, NES, Con Ed).
statestringNoTwo-letter state code (e.g. NC, CA). Narrows candidates for multi-state utilities.

Response Shape

{
  "match": {
    "eiaId": 5416,
    "name": "Duke Energy Carolinas, LLC",
    "confidence": 0.95
  },
  "utility": {
    "eiaId": 5416,
    "name": "Duke Energy Carolinas, LLC",
    "ownershipType": "Investor-Owned",
    "states": ["NC", "SC"],
    "rtoIso": "SERC"
  },
  "fromCache": false
}

Response Fields

FieldTypeDescription
match.eiaIdnumber | nullEIA utility ID, or null if no match found.
match.namestring | nullMatched utility name, or null if no match.
match.confidencenumberNumeric confidence score: 0.95, 0.7, 0.3, or 0.
utilityobject | nullFull utility details when a match is found. null otherwise.
utility.eiaIdnumberEIA utility ID.
utility.namestringOfficial utility name from EIA records.
utility.ownershipTypestringOwnership classification (e.g. Investor-Owned, Municipal, Cooperative).
utility.statesstring[]All states where this utility operates.
utility.rtoIsostring | nullRegional transmission organization or ISO, or null when none is stored.
fromCachebooleanWhether the response was served from a stored prior match.

Confidence Levels

ScoreMeaning
0.95Exact, alias, or high-confidence stored match.
0.7Likely correct, usually from partial or narrowed candidate matching.
0.3Best-effort low-confidence match. Verify before using in workflows.
0No reasonable match found in the EIA dataset.

Multi-State Utilities

Many utilities operate across multiple states. Providing the state parameter helps disambiguate:

# Without state — could match any Duke Energy entity
curl -X POST https://gridwonk.com/api/v1/utilities/match \
  -H "Authorization: Bearer $GRIDBOOST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Duke Energy"}'

# With state — narrows to Duke Energy Indiana
curl -X POST https://gridwonk.com/api/v1/utilities/match \
  -H "Authorization: Bearer $GRIDBOOST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Duke Energy", "state": "IN"}'

Example

curl -X POST https://gridwonk.com/api/v1/utilities/match \
  -H "Authorization: Bearer $GRIDBOOST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "PG&E", "state": "CA"}'

On this page