Simple APIs for Australian Addresses
As-you-type autocomplete and full address look-ups, backed by G-NAF — the Geocoded National Address File.
Get started for freeShowing built-in sample results — the live API is not connected here.
Features
99.9% Availability Guarantee
Independently monitored guaranteed uptime
Easy to use libraries
<label for="address_line_1">Address line 1</label>
<input id="address_line_1" type="text">
<label for="address_line_2">Address line 2</label>
<input id="address_line_2" type="text">
<label for="suburb">Suburb</label>
<input id="suburb" type="text">
<label for="state">State</label>
<input id="state" type="text">
<label for="postcode">Postcode</label>
<input id="postcode" type="text">
<script src="https://cdn.getaddress.io/scripts/getaddress-au-autocomplete-1.5.1.js"></script>
<script>
getAddressAu.autocomplete('address_line_1', 'DOMAIN TOKEN',
{
output_fields: {
address_line_1: 'address_line_1',
address_line_2: 'address_line_2',
locality_name: 'suburb',
state: 'state',
postcode: 'postcode'
}
});
</script>
Autocomplete
Autocomplete as they type
/autocomplete/{term} returns matching addresses with an id for each.
Suggestions are free and rate limited, so you can call it on every keystroke.
Resolve the one they picked
/get/{id} returns the full address with its geocode. This is the
only call that counts as a look-up against your plan.
- Every address in Australia, from G-NAF
- Ranked near the visitor first
- An API key in the query string — no SDK required
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css">
<label for="location">Suburb or postcode</label>
<input id="location" type="text">
<div id="map" style="height: 380px"></div>
<script src="https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js"></script>
<script src="https://cdn.getaddress.io/scripts/getaddress-au-autocomplete-1.5.1.js"></script>
<script>
const map = new maplibregl.Map({
container: 'map',
style: 'https://tiles.openfreemap.org/styles/positron',
center: [134, -28],
zoom: 3
});
const marker = new maplibregl.Marker();
getAddressAu.location('location', 'DOMAIN TOKEN',
{
selected: place => {
const centre = [place.coordinates.longitude, place.coordinates.latitude];
marker.setLngLat(centre).addTo(map);
map.flyTo({ center: centre, zoom: 13 });
}
});
</script>
Location
Suggest suburbs and postcodes
/location/{term} returns matching places — one per suburb, state and postcode.
Suggestions are free and rate limited.
Put the one they picked on a map
/get-location/{id} returns the place with its centre, ready for any map.
It counts as one look-up.
- Every suburb and postcode in Australia, from G-NAF
- Nearest places to any point with
/nearest-location - Works with any map — no Google key needed
<label for="suburb">Suburb</label>
<input id="suburb" type="text">
<label for="street">Street</label>
<input id="street" type="text">
<label for="postcode">Postcode</label>
<input id="postcode" type="text">
<label for="state">State</label>
<input id="state" type="text">
<script src="https://cdn.getaddress.io/scripts/getaddress-au-autocomplete-1.5.1.js"></script>
<script>
const token = 'DOMAIN TOKEN';
getAddressAu.typeahead('suburb', token, { search: 'locality' });
getAddressAu.typeahead('street', token, { search: 'street' });
getAddressAu.typeahead('postcode', token, { search: 'postcode' });
getAddressAu.typeahead('state', token, { search: 'state' });
</script>
Typeahead
Complete any field as it is typed
/typeahead/{term} completes a suburb, postcode, street or state and returns plain
values, not addresses.
Narrow it only if you choose to
Each field stands alone, as the boxes here do. Pass a suburb, state or postcode
filter when you want the values held to one place.
- Free — rate limited, never counts as a look-up
- Every suburb, postcode and street in G-NAF
- Works on forms you already have
<form id="check">
<label for="address">Address</label>
<input id="address" type="text">
<button>Validate</button>
</form>
<p id="result"></p>
<script src="https://cdn.getaddress.io/scripts/getaddress-au-autocomplete-1.5.1.js"></script>
<script>
document.getElementById('check').addEventListener('submit', async e => {
e.preventDefault();
const line = document.getElementById('address').value;
const result = await getAddressAu.validate(line, 'DOMAIN TOKEN');
const out = document.getElementById('result');
if (result.status === 'found') {
out.textContent = result.address.address_label; // one look-up
} else if (result.status === 'ambiguous') {
out.textContent = result.candidates.length + ' possible addresses'; // free
} else {
out.textContent = 'No such address'; // free
}
});
</script>
Validate
Send an address on one line
/validate/{address} reads the unit, number, street, suburb, state and postcode
however they are written.
Get the one address, or be told it isn't one
One match comes back as the full G-NAF record. Several come back as ids, none as a 404 — never a best guess.
- Only a found address counts as a look-up
- Units, levels, lots and number ranges
- Clean up imported or pasted addresses
Add-ons
Optional extras, switched on per subscription from your console.
Google Places fallback
FreeWhen an address search finds nothing in G-NAF, the autocomplete widget searches Google for businesses and places instead — using your own Google API key.
- No charge from us, and Google results never count as look-ups
- Addresses still come from G-NAF; Google only fills the gaps
- No code changes — switch it on in your console
New Zealand addresses
Coming soonFind New Zealand addresses alongside Australian ones, through the same API and widget.
FAQ
- Autocomplete queries are rate limited but do not increase your usage.
- Resolving an autocomplete suggestion to a full address counts as 1 look-up.
Coverage is Australia only. Incorporates or developed using G-NAF Core © Geoscape Australia 2023 Copyright and Disclaimer Notice. Licensed by Geoscape Australia under the Open G-NAF Core End User Licence Agreement.