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
Create an API key