---
title: Geocoded National Address File (G-NAF), Geoscape
resource: https://publicdata.au/d/gnaf/
publisher: Geoscape Australia
licence: Open G-NAF EULA
licence_url: https://data.gov.au/data/dataset/geocoded-national-address-file-g-naf/resource/09f74802-08b1-4214-a6ea-3591b2753d30
licence_condition: You must not use the data to generate an address, or a compilation of addresses, for the sending of mail unless you have verified that each address is capable of receiving mail by reference to a secondary source (clause 2(a)(2) of the EULA). The licence is otherwise CC BY 4.0: use, share and build on it with the attribution kept.
kind: database
version: 2026-08-17
rows: 131441280
tables: 37
fields: 219
source: https://data.gov.au/data/dataset/19432f89-dc3a-4ef3-b943-5326ef1dbecc/resource/b023544a-5836-4d43-b6d8-da2f73e8d2bf/download/g-naf_aug26_allstates_gda2020_psv_110.zip
source_sha256: 16820cc91c3ea32a3997b88024c8d0e576c1db10fe8645380be49b457e952df5
language: en-AU
operator: National Digital
not_endorsed: true
---

# Geocoded National Address File (G-NAF), Geoscape

Every physical address in Australia with its geocode, street, locality, postcode and mesh block, as Geoscape's quarterly G-NAF release: 37 related tables with about 131 million rows in all, including about 17 million addresses, served as one DuckDB database and one Parquet file per table.

Published by Geoscape Australia under Open G-NAF EULA. National Digital converted the publisher's release to one DuckDB database and one Parquet file per table. It typed the cells and named the columns in lower case. National Digital made these changes, and the publisher is not responsible for them. Geoscape Australia has not endorsed this site.

Condition of use: You must not use the data to generate an address, or a compilation of addresses, for the sending of mail unless you have verified that each address is capable of receiving mail by reference to a secondary source (clause 2(a)(2) of the EULA). The licence is otherwise CC BY 4.0: use, share and build on it with the attribution kept.

Also called: G-NAF, GNAF, Geocoded National Address File, PSMA G-NAF, Australian address database.

## Files

- DuckDB, every table and view: https://publicdata.au/d/gnaf/v/2026-08-17/data.duckdb. Attach it read-only over HTTPS: ATTACH 'https://publicdata.au/d/gnaf/v/2026-08-17/data.duckdb' AS db (READ_ONLY);
- Parquet, one file per table: https://publicdata.au/d/gnaf/v/2026-08-17/tables/<table>.parquet
- SQL: https://publicdata.au/d/gnaf/v/2026-08-17/schema.sql (CREATE TABLE with keys, references and the views)
- Schema: https://publicdata.au/d/gnaf/v/2026-08-17/schema.json
- The publisher's archive: https://publicdata.au/d/gnaf/v/2026-08-17/source.zip (1.9 GB)

https://publicdata.au/d/gnaf/latest/ redirects to the newest version. Dated versions keep their content.

## Tables

- address_detail (16,970,406 rows, key address_detail_pid): One row per address: its building, lot, flat, level and street numbers, the street and locality it sits in, its postcode and confidence, and the dates it was created, last changed and retired. Fields: address_detail_pid (string), date_created (date), date_last_modified (date), date_retired (date), building_name (string), lot_number_prefix (string), lot_number (string), lot_number_suffix (string), flat_type_code (string → flat_type_aut.code), flat_number_prefix (string), flat_number (integer), flat_number_suffix (string), level_type_code (string → level_type_aut.code), level_number_prefix (string), level_number (integer), level_number_suffix (string), number_first_prefix (string), number_first (integer), number_first_suffix (string), number_last_prefix (string), number_last (integer), number_last_suffix (string), street_locality_pid (string → street_locality.street_locality_pid), location_description (string), locality_pid (string → locality.locality_pid), alias_principal (string), postcode (string), private_street (string), legal_parcel_id (string), confidence (integer), address_site_pid (string → address_site.address_site_pid), level_geocoded_code (integer → geocoded_level_type_aut.code), property_pid (string), gnaf_property_pid (string), primary_secondary (string)
- address_default_geocode (16,970,406 rows, key address_default_geocode_pid): The default geocode of each address: the longitude and latitude Geoscape recommends for it and the type of feature the point sits on. Fields: address_default_geocode_pid (string), date_created (date), date_retired (date), address_detail_pid (string → address_detail.address_detail_pid), geocode_type_code (string → geocode_type_aut.code), longitude (number), latitude (number)
- address_site (16,970,406 rows, key address_site_pid): The site an address refers to, with its type and name. Several addresses can share one site. Fields: address_site_pid (string), date_created (date), date_retired (date), address_type (string → address_type_aut.code), address_site_name (string)
- address_site_geocode (20,754,564 rows, key address_site_geocode_pid): Every geocode held for an address site, with its type, reliability and the elevation and boundary extent where known. Fields: address_site_geocode_pid (string), date_created (date), date_retired (date), address_site_pid (string → address_site.address_site_pid), geocode_site_name (string), geocode_site_description (string), geocode_type_code (string → geocode_type_aut.code), reliability_code (integer → geocode_reliability_aut.code), boundary_extent (integer), planimetric_accuracy (integer), elevation (integer), longitude (number), latitude (number)
- address_alias (878,895 rows, key address_alias_pid): Pairs of addresses where one is an alias of the other, with the type of alias. Fields: address_alias_pid (string), date_created (date), date_retired (date), principal_pid (string → address_detail.address_detail_pid), alias_pid (string → address_detail.address_detail_pid), alias_type_code (string → address_alias_type_aut.code), alias_comment (string)
- address_feature (234,311 rows, key address_feature_id): Address features: a record per address of the change that created it, kept so a release can be compared with the one before. Fields: address_feature_id (string), address_feature_pid (string), address_detail_pid (string → address_detail.address_detail_pid), date_address_detail_created (date), date_address_detail_retired (date), address_change_type_code (string → address_change_type_aut.code)
- primary_secondary (4,966,622 rows, key primary_secondary_pid): Links a secondary address, such as a flat, to its primary address. Fields: primary_secondary_pid (string), primary_pid (string → address_detail.address_detail_pid), secondary_pid (string → address_detail.address_detail_pid), date_created (date), date_retired (date), ps_join_type_code (integer → ps_join_type_aut.code), ps_join_comment (string)
- street_locality (767,239 rows, key street_locality_pid): One row per street within a locality, with the street's name, type, suffix and class. Fields: street_locality_pid (string), date_created (date), date_retired (date), street_class_code (string → street_class_aut.code), street_name (string), street_type_code (string → street_type_aut.code), street_suffix_code (string → street_suffix_aut.code), locality_pid (string → locality.locality_pid), gnaf_street_pid (string), gnaf_street_confidence (integer), gnaf_reliability_code (integer → geocode_reliability_aut.code)
- street_locality_alias (41,100 rows, key street_locality_alias_pid): Alternative names for a street within a locality. Fields: street_locality_alias_pid (string), date_created (date), date_retired (date), street_locality_pid (string → street_locality.street_locality_pid), street_name (string), street_type_code (string → street_type_aut.code), street_suffix_code (string → street_suffix_aut.code), alias_type_code (string → street_locality_alias_type_aut.code)
- street_locality_point (719,651 rows, key street_locality_point_pid): A representative point for each street within a locality. Fields: street_locality_point_pid (string), date_created (date), date_retired (date), street_locality_pid (string → street_locality.street_locality_pid), boundary_extent (integer), planimetric_accuracy (integer), longitude (number), latitude (number)
- locality (17,581 rows, key locality_pid): One row per locality, which is a suburb, town or district, with its name, class, state and primary postcode. Fields: locality_pid (string), date_created (date), date_retired (date), locality_name (string), primary_postcode (string), locality_class_code (string → locality_class_aut.code), state_pid (string → state.state_pid), gnaf_locality_pid (string), gnaf_reliability_code (integer → geocode_reliability_aut.code)
- locality_alias (29,577 rows, key locality_alias_pid): Alternative names for a locality. Fields: locality_alias_pid (string), date_created (date), date_retired (date), locality_pid (string → locality.locality_pid), name (string), postcode (string), alias_type_code (string → locality_alias_type_aut.code), state_pid (string)
- locality_neighbour (89,438 rows, key locality_neighbour_pid): Pairs of localities that share a boundary. Fields: locality_neighbour_pid (string), date_created (date), date_retired (date), locality_pid (string → locality.locality_pid), neighbour_locality_pid (string → locality.locality_pid)
- locality_point (17,581 rows, key locality_point_pid): A representative point for each locality. Fields: locality_point_pid (string), date_created (date), date_retired (date), locality_pid (string → locality.locality_pid), planimetric_accuracy (integer), longitude (number), latitude (number)
- state (9 rows, key state_pid): The states and territories, by name and abbreviation. Fields: state_pid (string), date_created (date), date_retired (date), state_name (string), state_abbreviation (string)
- address_mesh_block_2026 (16,970,406 rows, key address_mesh_block_pid_2026): The ABS 2026 mesh block each address falls in, with how the match was made. Fields: address_mesh_block_pid_2026 (string), date_created (date), date_retired (date), address_detail_pid (string → address_detail.address_detail_pid), mb_match_code (string → mb_match_code_aut.code), mb_pid_2026 (string → mb_2026.mb_pid_2026)
- mb_2026 (374,916 rows, key mb_pid_2026): The ABS 2026 mesh block codes referred to by address_mesh_block_2026. Fields: mb_pid_2026 (string), date_created (date), date_retired (date), mb_code_2026 (string)
- address_mesh_block_2021 (16,970,406 rows, key address_mesh_block_2021_pid): The ABS 2021 mesh block each address falls in, with how the match was made. Fields: address_mesh_block_2021_pid (string), date_created (date), date_retired (date), address_detail_pid (string → address_detail.address_detail_pid), mb_match_code (string → mb_match_code_aut.code), mb_2021_pid (string → mb_2021.mb_2021_pid)
- mb_2021 (368,285 rows, key mb_2021_pid): The ABS 2021 mesh block codes referred to by address_mesh_block_2021. Fields: mb_2021_pid (string), date_created (date), date_retired (date), mb_2021_code (string)
- address_mesh_block_2016 (16,970,406 rows, key address_mesh_block_2016_pid): The ABS 2016 mesh block each address falls in, with how the match was made. Fields: address_mesh_block_2016_pid (string), date_created (date), date_retired (date), address_detail_pid (string → address_detail.address_detail_pid), mb_match_code (string → mb_match_code_aut.code), mb_2016_pid (string → mb_2016.mb_2016_pid)
- mb_2016 (358,122 rows, key mb_2016_pid): The ABS 2016 mesh block codes referred to by address_mesh_block_2016. Fields: mb_2016_pid (string), date_created (date), date_retired (date), mb_2016_code (string)
- address_alias_type_aut (8 rows, key code): Lookup: the kinds of address alias. Fields: code (string), name (string), description (string)
- address_change_type_aut (511 rows, key code): Lookup: the kinds of change recorded in address_feature. Fields: code (string), name (string), description (string)
- address_type_aut (3 rows, key code): Lookup: the kinds of address site. Fields: code (string), name (string), description (string)
- flat_type_aut (54 rows, key code): Lookup: the kinds of flat, unit, apartment, shop and so on. Fields: code (string), name (string), description (string)
- geocoded_level_type_aut (8 rows, key code): Lookup: the level an address is geocoded to, from locality down to the property. Fields: code (integer), name (string), description (string)
- geocode_reliability_aut (6 rows, key code): Lookup: how reliable a geocode is, as a code and a description. Fields: code (integer), name (string), description (string)
- geocode_type_aut (30 rows, key code): Lookup: what feature a geocode point sits on, such as the building centroid, the frontage or the property centroid. Fields: code (string), name (string), description (string)
- level_type_aut (16 rows, key code): Lookup: the kinds of level within a building. Fields: code (string), name (string), description (string)
- locality_alias_type_aut (2 rows, key code): Lookup: the kinds of locality alias. Fields: code (string), name (string), description (string)
- locality_class_aut (9 rows, key code): Lookup: the classes of locality. Fields: code (string), name (string), description (string)
- mb_match_code_aut (5 rows, key code): Lookup: how an address was matched to its mesh block. Fields: code (string), name (string), description (string)
- ps_join_type_aut (2 rows, key code): Lookup: the kinds of link between a primary and a secondary address. Fields: code (integer), name (string), description (string)
- street_class_aut (2 rows, key code): Lookup: the classes of street. Fields: code (string), name (string), description (string)
- street_locality_alias_type_aut (2 rows, key code): Lookup: the kinds of street alias. Fields: code (string), name (string), description (string)
- street_suffix_aut (19 rows, key code): Lookup: the street suffixes, such as North or Extension. Fields: code (string), name (string), description (string)
- street_type_aut (276 rows, key code): Lookup: the street types, such as Road, Street and Avenue. Fields: code (string), name (string), description (string)

## Views

- address_view: One row per address with its street, locality, state, postcode and default geocode joined, from Geoscape's address_view.sql script. Addresses with a confidence below 0 are left out, as the script does.

## Versions

- 2026-08-17: 131,441,280 rows, 37 tables, fetched 1 October 2026, source sha256 16820cc91c3ea32a3997b88024c8d0e576c1db10fe8645380be49b457e952df5

## Same subject, other publishers

- Median vacant land prices by suburb, Victoria (Vic): https://publicdata.au/d/vic-median-vacant-land-prices-by-suburb/

## Questions

### How do I query Geocoded National Address File (G-NAF) without downloading it?

Attach https://publicdata.au/d/gnaf/v/2026-08-17/data.duckdb read-only from DuckDB, R or Python and query any table or view, such as address_view. DuckDB reads only the blocks a query touches over HTTPS. https://publicdata.au/d/gnaf/latest/data.duckdb redirects to the newest version; a dated URL never changes.

### How do I get one table of Geocoded National Address File (G-NAF)?

Every table is a Parquet file under https://publicdata.au/d/gnaf/v/2026-08-17/tables/, for example https://publicdata.au/d/gnaf/v/2026-08-17/tables/address_detail.parquet, which pandas, R, Polars, Spark and DuckDB read directly. https://publicdata.au/d/gnaf/v/2026-08-17/schema.sql has the SQL that creates every table, with the keys and references, and https://publicdata.au/d/gnaf/v/2026-08-17/schema.json the same as Table Schema.

### How often is Geocoded National Address File (G-NAF) updated?

Geoscape releases it quarterly. This site checks the portal every week and adds a dated version when the release changes.

### Can I use Geocoded National Address File (G-NAF) commercially?

Yes, with one condition. You must not use the data to generate an address, or a compilation of addresses, for the sending of mail unless you have verified that each address is capable of receiving mail by reference to a secondary source (clause 2(a)(2) of the EULA). The licence is otherwise CC BY 4.0: use, share and build on it with the attribution kept. The attribution string is in this page's side column and inside every file.

### Is this the official source for Geocoded National Address File (G-NAF)?

No. The publisher is Geoscape Australia, and its page is https://data.gov.au/data/dataset/geocoded-national-address-file-g-naf. National Digital converted the publisher's release to one DuckDB database and one Parquet file per table. It typed the cells and named the columns in lower case. National Digital made these changes, and the publisher is not responsible for them. The publisher's archive sits beside every version as source.zip with its SHA-256, so the two can be compared.

### What is the condition on use?

The Open G-NAF End User Licence Agreement is CC BY 4.0 with one condition added: the data must not be used to generate an address, or a compilation of addresses, for the sending of mail unless each address has been verified as capable of receiving mail by reference to a secondary source. Geoscape's fact sheet on the restriction is on the source page. Everything else CC BY 4.0 allows, this licence allows, with the attribution kept.

### Which coordinate system is it in?

GDA2020. Geoscape publishes a GDA94 release beside it, which this site does not serve.

### Where do I start?

The address_view view is one row per address with its street, locality, state, postcode and default geocode already joined, from Geoscape's own script. The address_detail table is the same addresses with every field and the keys into the other tables. Every code column has a lookup table ending in _aut.

### Why is there no CSV or Excel file?

A release is 37 tables and about 131 million rows, which is not one spreadsheet. The DuckDB file holds every table and attaches over HTTPS, and each table is also a Parquet file that pandas, R, Spark and DuckDB read directly. The publisher's pipe-separated files are beside every version as source.zip.

### Does it include G-NAF Core?

No. G-NAF Core is a flattened single-table cut Geoscape publishes on its own site. The address view here serves the same purpose from the full release.

## Attribution

Incorporates or developed using G-NAF © Geoscape Australia licensed by the Commonwealth of Australia under the Open Geo-coded National Address File (G-NAF) End User Licence Agreement, sourced 1 October 2026, https://data.gov.au/data/dataset/geocoded-national-address-file-g-naf.

Citation: Incorporates or developed using G-NAF © Geoscape Australia licensed by the Commonwealth of Australia under the Open Geo-coded National Address File (G-NAF) End User Licence Agreement, sourced 1 October 2026, https://data.gov.au/data/dataset/geocoded-national-address-file-g-naf. Serialised and versioned by National Digital at publicdata.au, https://publicdata.au/d/gnaf/v/2026-08-17/

This is an independent republication. The publisher has not endorsed this site.
