Developers

REST API. Five-minute integration.

A single POST endpoint, structured JSON back. Webhook delivery for async parsing, signed payloads, idempotency keys, generous rate limits.

Quick start

Upload a bill, get JSON

curl -X POST https://api.utilitybillparse.com/v1/bills \
  -H "Authorization: Bearer $UBP_API_KEY" \
  -F "file=@con-edison-may.pdf" \
  -F "provider=auto" \
  -F "webhook_url=https://yourapp.com/hooks/ubp"

Sample response

{
  "bill_id": "bil_01HX2K8...",
  "provider": "con_edison",
  "account_number": "1234-5678-90",
  "service_address": "350 W 31st St, New York, NY",
  "period_start": "2026-04-15",
  "period_end": "2026-05-14",
  "usage_kwh": 1284,
  "total_due_usd": 287.42,
  "charges": [
    { "type": "supply",   "label": "Electric supply",   "amount": 142.18 },
    { "type": "delivery", "label": "Delivery charges",  "amount": 121.04 },
    { "type": "tax",      "label": "Sales tax",         "amount": 24.20  }
  ]
}
Platform

Built for production workloads

Auth

Bearer tokens. Scoped API keys per environment, rotatable from your dashboard.

Webhooks

Async delivery with HMAC-SHA256 signatures, retries, and an idempotency key on every payload.

Rate limits

60 req/s burst, 10K req/min sustained. Higher limits on enterprise.

SDKs

Official clients for Node, Python, Ruby, and .NET. OpenAPI 3.1 spec for everything else.

Get started

Your API key is two clicks away

Create an API key