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" \ -H "Idempotency-Key: $(uuidgen)" \ -F "file=@con-edison-may.pdf" \ -F "vendor_short_name=ConEdison" \ -F "webhook_url=https://yourapp.com/hooks/ubp"
Sample response
// POST /v1/bills returns 202 immediately. Poll the document URL
// or wait for the batch.completed webhook delivery.
{
"id": "doc_a40f8293-...",
"object": "bill",
"status": "queued",
"batch_id": "bat_2de40829-...",
"document_id": "doc_a40f8293-...",
"total_credits": 1,
"total_usd_cents": 39,
"webhook_secret": "whsec_…", // returned once; store securely
"links": {
"self": "/v1/documents/doc_a40f8293-...",
"batch": "/v1/batches/bat_2de40829-..."
}
}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.
OpenAPI
Full OpenAPI 3.1 spec at /api/v1/openapi.json — generate a client for any language with openapi-generator or your tooling of choice.
Get started
Create an API key