Extract structured data from an energy bill in three steps. You’ll have clean JSON with usage, charges, tariff rates, and 30+ other fields in under 60 seconds.Documentation Index
Fetch the complete documentation index at: https://docs.termina.com/llms.txt
Use this file to discover all available pages before exploring further.
Free tier: 50 API credits, no credit card required. Each credit processes one bill page.
1. Get your API key
Sign up at app.termina.io to generate your free API key instantly. No credit card, no approval process. Your key will look like this:2. Send your first bill
POST an energy bill PDF to the extract endpoint. The API accepts electricity, gas, and LPG bills from any retailer across Australia, NZ, UK, USA, and Canada.Request details
| Parameter | Type | Description |
|---|---|---|
file | multipart/form-data | The energy bill file. Accepted formats: PDF, JPEG, PNG, TIFF. |
3. Get structured JSON back
The API returns structured data with 30+ fields organised into clear sections. Here’s an example response from an electricity bill:Example response
Response structure at a glance
| Section | What it contains |
|---|---|
bill_type | Energy type classification: elec, gas, or lpg |
account | Account number, NMI/MIRN, customer name, supply address |
billing_period | Start date, end date, and number of billing days |
usage | Total consumption (kWh/MJ), peak/off-peak/shoulder breakdowns, demand, meter readings |
charges | Every line item with classification, quantity, unit rate, tariff type, and time-of-use period |
totals | Subtotal, GST, total amount due, due date |
provider | Retailer name, ABN, plan name |
validation | Whether the bill passed validation, any issues flagged, confidence score |
What to do with the data
Now that you’ve extracted your first bill, here are common next steps:Process bills across multiple sites
Loop through bills for every location and build a consolidated energy cost view.
Feed data into ESG reporting
Use the kWh and MJ usage fields to calculate Scope 2 emissions automatically.
Build it into your own app
Embed the extract endpoint in your product to give your users energy bill intelligence.
Explore the full API reference
See all request parameters, response fields, error codes, and rate limits.
Accessing your data in the dashboard
Every bill you process through the API is also available in your Termina dashboard. You can:- Search and filter across all processed bills by site, retailer, date, or amount
- Export to CSV, XLSX, or PDF for reporting, reconciliation, or sharing with your team
- Track usage trends and cost anomalies over time across all your sites
- Invite team members with role-based permissions so finance, procurement, and sustainability teams can all access the data
Frequently asked questions
What file formats does the API accept?
What file formats does the API accept?
The endpoint accepts energy bills as PDF, JPEG, PNG, or TIFF files sent as
multipart/form-data under the file field. Both digital PDFs from retailer portals and scanned or photographed paper bills are supported.How long does extraction take?
How long does extraction take?
Most bills are processed in under 3 seconds. Complex multi-page bills or low-quality scans may take slightly longer. The API responds synchronously — no polling or webhooks required.
Which energy types can the API extract?
Which energy types can the API extract?
Electricity, gas, and LPG bills. The extraction engine covers network charges, retail charges, environmental levies, market charges, and demand charges — with tariff rate steps and time-of-use breakdowns where present on the bill.
Can the API extract time-of-use tariff data?
Can the API extract time-of-use tariff data?
Yes. Where time-of-use pricing is present on the bill, Termina extracts peak, off-peak, and shoulder rates and consumption separately — including the tariff rate steps and the kWh consumed in each period.
What happens if a bill cannot be fully parsed?
What happens if a bill cannot be fully parsed?
The
energy_data field returns null and validation_issues describes what went wrong. Partial extractions return the data that was successfully read along with warnings on uncertain fields — so you always know what you can trust.How does bill validation work?
How does bill validation work?
Every extraction runs built-in validation that cross-checks the extracted charges against the bill total, verifies billing period dates are consistent, flags unusually high or low usage, and checks that tariff rates fall within expected ranges for the retailer and region. Issues are returned in the
validation_issues array.How do I authenticate API requests?
How do I authenticate API requests?
Include your API key in the
X-API-Key request header. You can generate a free key instantly at app.termina.io — no credit card required.What are the rate limits?
What are the rate limits?
Free tier accounts can process up to 50 bills total. Pro accounts have configurable rate limits based on your plan. The API returns a
429 status code with a Retry-After header if you exceed your limit. See Error handling for all status codes.