API Documentation
Integrate bill comparison data into your applications
Getting Started
The Is My Bill High API provides access to aggregated bill comparison data and provider statistics. Use it to build tools that help consumers make informed decisions about their household bills.
API Access
Public endpoints (provider rankings, locality search) are available without authentication. To submit bills or access user-specific data, you'll need an API key. Contact us at api@ismybillhigh.com.au to request access.
Authentication
Authenticated endpoints require a Bearer token in the Authorization header:
Authorization: Bearer YOUR_API_KEYRate Limits:
- Public endpoints: 100 requests/minute
- Authenticated endpoints: 1000 requests/minute
Endpoints
/api/v1/providers/rankingsGet provider rankings by median bill amount
Parameters
categorystring— Filter by category (electricity, gas, etc.)countrystring— Country code (default: AU)sortBystring— Sort field: median_bill, loyalty_tax, sample_sizelimitnumber— Results per page (default: 20, max: 100)/api/v1/localities/searchSearch localities by postal code
Parameters
postal_codestring— Postal code to searchcountrystring— Country code (default: AU)/api/v1/providers/searchSearch providers by name
Parameters
qstring— Search querycategorystring— Filter by categorycountrystring— Country code (default: AU)/api/v1/bills/uploadSubmit bill data for comparison
Parameters
categorystring— Bill category (required)billAmountnumber— Total bill amount (required)billingFrequencystring— monthly, quarterly, or annualpostalCodestring— Postal code (required)/api/v1/bills/{billId}/comparisonGet comparison results for a submitted bill
Parameters
billIdstring— Bill ID from upload responseCode Examples
Get Provider Rankings
// Get electricity provider rankings
const response = await fetch(
'https://api.ismybillhigh.com.au/api/v1/providers/rankings?category=electricity&limit=10'
);
const data = await response.json();
console.log(data.data.rankings);
// [
// { rank: 1, providerName: "Provider A", medianBill: 167.50, ... },
// { rank: 2, providerName: "Provider B", medianBill: 159.00, ... },
// ...
// ]Submit a Bill
// Submit a bill for comparison
const response = await fetch('https://api.ismybillhigh.com.au/api/v1/bills/upload', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
category: 'electricity',
billAmount: 185.50,
billingFrequency: 'monthly',
postalCode: '3000',
localityId: 'uuid-here',
billingPeriodStart: '2026-01-01',
billingPeriodEnd: '2026-01-31'
})
});
const { data } = await response.json();
console.log(data.billId); // Use this to get comparison resultsResponse Format
All API responses follow a consistent JSON format:
{
"success": true,
"data": {
// Response data here
},
"metadata": {
"timestamp": "2026-01-12T10:30:00Z",
"requestId": "abc123"
}
}
// Error response
{
"success": false,
"error": {
"message": "Invalid category",
"code": "VALIDATION_ERROR"
}
}Bill Categories
Valid values for the category parameter:
electricitygasbroadbandmobilecar_insurancehome_insurancehealth_insuranceSDKs & Libraries
Official SDKs are coming soon. In the meantime, you can use the REST API directly with any HTTP client.
JavaScript/TypeScript
Coming soon
Python
Coming soon
PHP
Coming soon
Need Help?
Have questions about the API or need higher rate limits?
Contact API Support