API Documentation

Integrate bill comparison data into your applications

Base URL:https://api.ismybillhigh.com.au

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_KEY

Rate Limits:

  • Public endpoints: 100 requests/minute
  • Authenticated endpoints: 1000 requests/minute

Endpoints

GET/api/v1/providers/rankings

Get 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_size
limitnumber— Results per page (default: 20, max: 100)
GET/api/v1/localities/search

Search localities by postal code

Parameters

postal_codestring— Postal code to search
countrystring— Country code (default: AU)
GET/api/v1/providers/search

Search providers by name

Parameters

qstring— Search query
categorystring— Filter by category
countrystring— Country code (default: AU)
POST/api/v1/bills/upload

Submit bill data for comparison

Parameters

categorystring— Bill category (required)
billAmountnumber— Total bill amount (required)
billingFrequencystring— monthly, quarterly, or annual
postalCodestring— Postal code (required)
GET/api/v1/bills/{billId}/comparison

Get comparison results for a submitted bill

Parameters

billIdstring— Bill ID from upload response

Code 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 results

Response 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_insurance

SDKs & 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