Developer Docs

Rate Change Webhook API

Integrate with Utility Check to automatically publish rate change news and trigger subscriber alerts when new filings or approvals are detected.

Endpoint
Send rate change data to this endpoint to create news entries and trigger alerts
POSThttps://utilitycheck.co/api/webhooks/rate-change
Authentication
All webhook requests must include a valid API key

Include your API key in the request headers using one of these methods:

# Option 1: X-API-Key header
X-API-Key:your-api-key-here
# Option 2: Bearer token
Authorization:Bearer your-api-key-here

Need an API key? Contact us at [email protected] to request access.

Request Payload
JSON body containing rate change information
FieldTypeRequiredDescription
utilitySlugstringYesURL-friendly identifier (e.g., "fpl", "duke-energy-fl")
utilityNamestringYesFull display name (e.g., "Florida Power & Light")
headlinestringYesNews headline (max 255 chars)
summarystringYesDetailed summary of the rate change
changeTypeenumYesOne of: filing, approval, denial, settlement, hearing, implementation
rateChangePercentnumberNoPercentage change (e.g., 5.2 for 5.2%)
estimatedMonthlyImpactnumberNoEstimated monthly bill impact in dollars
effectiveDatestringNoISO date when rate takes effect (YYYY-MM-DD)
sourceUrlstringNoLink to official source/filing
sourceNamestringNoName of the source (e.g., "Florida PSC")
autoTriggerAlertsbooleanNoSend alerts to subscribers (default: true)
onlyImmediateAlertsbooleanNoOnly alert immediate-frequency subscribers (default: true)
Code Examples
Example implementations in various languages
curl -X POST "https://utilitycheck.co/api/webhooks/rate-change" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-api-key-here" \
  -d '{\n  "utilitySlug": "fpl",\n  "utilityName": "Florida Power & Light",\n  "headline": "FPL Files for 5.2% Rate Increase",\n  "summary": "Florida Power & Light has filed a request with the Florida Public Service Commission for a 5.2% rate increase, citing infrastructure improvements and storm hardening costs.",\n  "changeType": "filing",\n  "rateChangePercent": 5.2,\n  "estimatedMonthlyImpact": 8.50,\n  "effectiveDate": "2026-07-01",\n  "sourceUrl": "https://www.floridapsc.com/filings/12345",\n  "sourceName": "Florida PSC",\n  "autoTriggerAlerts": true,\n  "onlyImmediateAlerts": true\n}'
Responses
Expected response formats for success and error cases

200Success Response

{
  "success": true,
  "message": "Rate news created and 15 alerts sent successfully",
  "newsId": 42,
  "alertsSent": 15
}

400Validation Error

{
  "error": "Missing required fields: utilitySlug, utilityName, headline, summary, changeType"
}

401Authentication Error

{"error": "Unauthorized", "message": "Invalid or missing API key"}
Change Types
Valid values for the changeType field
📄filing

Initial rate change request filed with regulators

approval

Rate change approved by regulatory body

denial

Rate change request denied

🤝settlement

Negotiated settlement reached between parties

🏛️hearing

Public hearing scheduled or completed

implementation

Rate change now in effect

Cron Endpoints
Scheduled digest email endpoints for automated notifications

These endpoints trigger digest emails to subscribers based on their notification frequency preference. They are designed to be called by external cron/scheduler services.

Daily Digest (9am daily)

POSThttps://utilitycheck.co/api/cron/daily-digest

Sends digest emails to all subscribers with "daily" notification frequency, including all rate news from the past 24 hours.

Weekly Digest (Monday 9am)

POSThttps://utilitycheck.co/api/cron/weekly-digest

Sends digest emails to all subscribers with "weekly" notification frequency, including all rate news from the past 7 days.

Authentication

Cron endpoints use the same authentication as webhooks. Include your API key in the request:

X-API-Key:your-api-key-here

Response Format

{
  "success": true,
  "message": "Daily digest completed",
  "emailsSent": 42,
  "errors": 0,
  "timestamp": "2026-01-24T14:00:00.000Z"
}

Need Help?

Questions about the API or need to request access?

Contact Support