Utilities

New: Utility endpoints

Read and update the global utility list, mirroring the existing AHJ endpoints — utilities are seeded globally with no per-company scoping except for the custom properties.

MethodPathDescription
GET/utilitiesList utilities (pagination, filtering, sorting, or geo lookup by lat+lng)
GET/utilities/{utility_id}Get a utility by ID
PATCH/utilities/{utility_id}Update custom property values on a utility

Notes

  • List filters: q (name/holding company/state), state, ownership_type, order_by, and geo mode via lat+lng (both required together) to find every utility whose service territory covers a point.
  • ownership_type accepts INVESTOR, MUNICIPAL, MUNICIPAL_MARKETING_AUTHORITY, COOPERATIVE, FEDERAL, STATE, POLITICAL, COMMUNITY_CHOICE_AGGREGATOR, WHOLESALE_POWER_MARKETER, or OTHER.
  • Only active utilities are returned. Most fields (name, state, ownershipType, holdingCompany, etc.) are read-only catalog data; only fields under custom can be updated via PATCH, same as AHJs.
  • GET /properties?record_type=utility returns customer-defined custom columns for utilities, same shape as the existing ahj record type.

Opportunities

Improved: Phase instance timestamps on GET /opportunities/{opportunity_id}

Each entry in phaseInstances now includes startedAt and completedAt, matching the projects endpoint. Use these to compute time-in-stage or close dates without a separate lookup.

  • Only populated on GET /opportunities/{opportunity_id}; the list and search endpoints do not return phaseInstances and are unaffected.
  • completedAt is null for the phase the deal currently occupies and any that have not been started.