publicdata.au publicdata.au on GitHub

Geocoded National Address File (G-NAF), Geoscape

live
Publisher Geoscape AustraliaUpdated quarterlyLicence Open G-NAF EULALatest 2026-08-17Rows 131,441,280Tables 37Fields 219

G-NAF is the Geocoded National Address File, the address database Geoscape Australia builds from the address data of the states, territories and the Commonwealth and publishes each quarter on data.gov.au. Each release is a set of pipe-separated files that make up a relational database: addresses, the sites and geocodes behind them, aliases, streets, localities, states and the ABS mesh block each address falls in, with lookup tables for every code.

This site serves each release as one DuckDB database holding every table, the keys and references between them and Geoscape's own address view, which joins an address to its street, locality, state and default geocode. The same tables are also served as one Parquet file each. The database attaches read-only over HTTPS, so a query over addresses runs without downloading the release. Coordinates are GDA2020.

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

Before you use it
The licence has a 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.
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.
131,441,280rows
37tables
1view
47references
1version

One database, every table

Query it from R, Python or DuckDB without downloading it

The DuckDB file holds all 37 tables, the 1 view and the keys between them. It attaches read-only over HTTPS, and only the blocks a query touches are read. Start with address_view.

The dated URL in the code never changes. https://publicdata.au/d/gnaf/latest/data.duckdb redirects to the newest version.

library(publicdataau)
con <- pd_connect("gnaf")
DBI::dbGetQuery(con, "SELECT postcode, count(*) AS n FROM address_view GROUP BY 1 ORDER BY 2 DESC LIMIT 10")
# dplyr: pd_tbl("gnaf", "address_view")

pd_connect() attaches the version read-only over HTTPS, so the query runs without a download. Needs the duckdb and DBI packages.

Made for agents

Connect your AI agent

Any agent that connects to publicdata.au/mcp can find this dataset, read its 37 tables and 219 fields and diff its versions. Every answer names the version and carries Geoscape's attribution. No key.

Then ask it: What does Geocoded National Address File (G-NAF), Geoscape hold, and how do I attach it?

claude mcp add --transport http publicdata https://publicdata.au/mcp

One command. No key, no account, no sign-up.

Download the database, or one table at a time

Every file is from version 2026-08-17. A dated version keeps its content. The same files sit under https://publicdata.au/d/gnaf/latest/, which redirects to the newest version.

One Parquet file per table, 2.3 GB in all, under tables/. Each carries the provenance header in its metadata.

TableRowsKeyRefers toParquet
address_detail16,970,406address_detail_pidaddress_site, flat_type_aut, geocoded_level_type_aut, level_type_aut, locality, street_localityParquet 576 MB
address_default_geocode16,970,406address_default_geocode_pidaddress_detail, geocode_type_autParquet 466 MB
address_site16,970,406address_site_pidaddress_type_autParquet 98 MB
address_site_geocode20,754,564address_site_geocode_pidaddress_site, geocode_reliability_aut, geocode_type_autParquet 576 MB
address_alias878,895address_alias_pidaddress_alias_type_aut, address_detailParquet 14 MB
address_feature234,311address_feature_idaddress_change_type_aut, address_detailParquet 3.3 MB
primary_secondary4,966,622primary_secondary_pidaddress_detail, ps_join_type_autParquet 66 MB
street_locality767,239street_locality_pidgeocode_reliability_aut, locality, street_class_aut, street_suffix_aut, street_type_autParquet 13 MB
street_locality_alias41,100street_locality_alias_pidstreet_locality, street_locality_alias_type_aut, street_suffix_aut, street_type_autParquet 736 KB
street_locality_point719,651street_locality_point_pidstreet_localityParquet 22 MB
locality17,581locality_pidgeocode_reliability_aut, locality_class_aut, stateParquet 365 KB
locality_alias29,577locality_alias_pidlocality, locality_alias_type_autParquet 458 KB
locality_neighbour89,438locality_neighbour_pidlocalityParquet 794 KB
locality_point17,581locality_point_pidlocalityParquet 570 KB
state9state_pidParquet 9.0 KB
address_mesh_block_202616,970,406address_mesh_block_pid_2026address_detail, mb_2026, mb_match_code_autParquet 156 MB
mb_2026374,916mb_pid_2026Parquet 4.0 MB
address_mesh_block_202116,970,406address_mesh_block_2021_pidaddress_detail, mb_2021, mb_match_code_autParquet 156 MB
mb_2021368,285mb_2021_pidParquet 3.1 MB
address_mesh_block_201616,970,406address_mesh_block_2016_pidaddress_detail, mb_2016, mb_match_code_autParquet 156 MB
mb_2016358,122mb_2016_pidParquet 2.9 MB
address_alias_type_aut8codeParquet 8.6 KB
address_change_type_aut511codeParquet 17 KB
address_type_aut3codeParquet 8.2 KB
flat_type_aut54codeParquet 9.3 KB
geocoded_level_type_aut8codeParquet 8.7 KB
geocode_reliability_aut6codeParquet 9.0 KB
geocode_type_aut30codeParquet 9.7 KB
level_type_aut16codeParquet 8.6 KB
locality_alias_type_aut2codeParquet 8.3 KB
locality_class_aut9codeParquet 8.7 KB
mb_match_code_aut5codeParquet 9.4 KB
ps_join_type_aut2codeParquet 8.7 KB
street_class_aut2codeParquet 8.9 KB
street_locality_alias_type_aut2codeParquet 8.3 KB
street_suffix_aut19codeParquet 8.5 KB
street_type_aut276codeParquet 12 KB

What is in it

Column names are the publisher's own in snake_case, and the publisher's header is kept beside each one. Cells are typed. Blank cells are null. Nothing is added, removed, ranked or summarised; the view below is the publisher's own script.

address_detail 16,970,406 rows, 35 fields

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. The key is address_detail_pid. Publisher's table ADDRESS_DETAIL. address_detail.parquet (576 MB).

FieldTypePublisher's headerNote
address_detail_pidstringADDRESS_DETAIL_PIDThe persistent identifier of the address, which never changes.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_last_modifieddateDATE_LAST_MODIFIEDThe date the row last changed.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
building_namestringBUILDING_NAMEThe building's name, where it has one.
lot_number_prefixstringLOT_NUMBER_PREFIXThe prefix of the lot number.
lot_numberstringLOT_NUMBERThe lot number, for an address with no street number.
lot_number_suffixstringLOT_NUMBER_SUFFIXThe suffix of the lot number.
flat_type_codestringFLAT_TYPE_CODEThe kind of flat, from flat_type_aut. Refers to flat_type_aut.code.
flat_number_prefixstringFLAT_NUMBER_PREFIXThe prefix of the flat number.
flat_numberintegerFLAT_NUMBERThe flat, unit, apartment or shop number.
flat_number_suffixstringFLAT_NUMBER_SUFFIXThe suffix of the flat number.
level_type_codestringLEVEL_TYPE_CODEThe kind of level, from level_type_aut. Refers to level_type_aut.code.
level_number_prefixstringLEVEL_NUMBER_PREFIXThe prefix of the level number.
level_numberintegerLEVEL_NUMBERThe level number within the building.
level_number_suffixstringLEVEL_NUMBER_SUFFIXThe suffix of the level number.
number_first_prefixstringNUMBER_FIRST_PREFIXThe prefix of the first street number.
number_firstintegerNUMBER_FIRSTThe street number, or the first of a range.
number_first_suffixstringNUMBER_FIRST_SUFFIXThe suffix of the first street number.
number_last_prefixstringNUMBER_LAST_PREFIXThe prefix of the last street number.
number_lastintegerNUMBER_LASTThe last street number of a range.
number_last_suffixstringNUMBER_LAST_SUFFIXThe suffix of the last street number.
street_locality_pidstringSTREET_LOCALITY_PIDThe street within a locality, from street_locality. Refers to street_locality.street_locality_pid.
location_descriptionstringLOCATION_DESCRIPTIONA description of the location, for an address with no street.
locality_pidstringLOCALITY_PIDThe locality, from locality. Refers to locality.locality_pid.
alias_principalstringALIAS_PRINCIPALP for a principal address, A for an alias.
postcodestringPOSTCODEThe postcode, as text.
private_streetstringPRIVATE_STREETThe private street name, for an address on one.
legal_parcel_idstringLEGAL_PARCEL_IDThe legal parcel identifier of the land, where known.
confidenceintegerCONFIDENCEHow many of the contributors hold the address, less one. A value below 0 means the address was retired by every contributor.
address_site_pidstringADDRESS_SITE_PIDThe address site, from address_site. Refers to address_site.address_site_pid.
level_geocoded_codeintegerLEVEL_GEOCODED_CODEThe level the address is geocoded to, from geocoded_level_type_aut. Refers to geocoded_level_type_aut.code.
property_pidstringPROPERTY_PIDThe property the address belongs to, where known.
gnaf_property_pidstringGNAF_PROPERTY_PIDThe G-NAF property identifier, where known.
primary_secondarystringPRIMARY_SECONDARYP for a primary address, S for a secondary one such as a flat, blank where neither.
address_default_geocode 16,970,406 rows, 7 fields

The default geocode of each address: the longitude and latitude Geoscape recommends for it and the type of feature the point sits on. The key is address_default_geocode_pid. Publisher's table ADDRESS_DEFAULT_GEOCODE. address_default_geocode.parquet (466 MB).

FieldTypePublisher's headerNote
address_default_geocode_pidstringADDRESS_DEFAULT_GEOCODE_PIDThe persistent identifier of the default geocode.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
address_detail_pidstringADDRESS_DETAIL_PIDThe persistent identifier of the address. Refers to address_detail.address_detail_pid.
geocode_type_codestringGEOCODE_TYPE_CODEWhat the point sits on, from geocode_type_aut. Refers to geocode_type_aut.code.
longitudenumberLONGITUDELongitude in decimal degrees, GDA2020.
latitudenumberLATITUDELatitude in decimal degrees, GDA2020.
address_site 16,970,406 rows, 5 fields

The site an address refers to, with its type and name. Several addresses can share one site. The key is address_site_pid. Publisher's table ADDRESS_SITE. address_site.parquet (98 MB).

FieldTypePublisher's headerNote
address_site_pidstringADDRESS_SITE_PIDThe address site, from address_site.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
address_typestringADDRESS_TYPEThe kind of site, from address_type_aut. Refers to address_type_aut.code.
address_site_namestringADDRESS_SITE_NAMEThe name of the site, where it has one.
address_site_geocode 20,754,564 rows, 13 fields

Every geocode held for an address site, with its type, reliability and the elevation and boundary extent where known. The key is address_site_geocode_pid. Publisher's table ADDRESS_SITE_GEOCODE. address_site_geocode.parquet (576 MB).

FieldTypePublisher's headerNote
address_site_geocode_pidstringADDRESS_SITE_GEOCODE_PIDThe persistent identifier of the geocode.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
address_site_pidstringADDRESS_SITE_PIDThe address site, from address_site. Refers to address_site.address_site_pid.
geocode_site_namestringGEOCODE_SITE_NAMEThe name of the feature the geocode sits on.
geocode_site_descriptionstringGEOCODE_SITE_DESCRIPTIONA description of the feature the geocode sits on.
geocode_type_codestringGEOCODE_TYPE_CODEWhat the point sits on, from geocode_type_aut. Refers to geocode_type_aut.code.
reliability_codeintegerRELIABILITY_CODEHow reliable the geocode is, from geocode_reliability_aut. Refers to geocode_reliability_aut.code.
boundary_extentintegerBOUNDARY_EXTENTThe extent of the boundary the geocode was derived from, in metres, where known.
planimetric_accuracyintegerPLANIMETRIC_ACCURACYThe planimetric accuracy of the point, in metres, where known.
elevationintegerELEVATIONThe elevation of the point, in metres, where known.
longitudenumberLONGITUDELongitude in decimal degrees, GDA2020.
latitudenumberLATITUDELatitude in decimal degrees, GDA2020.
address_alias 878,895 rows, 7 fields

Pairs of addresses where one is an alias of the other, with the type of alias. The key is address_alias_pid. Publisher's table ADDRESS_ALIAS. address_alias.parquet (14 MB).

FieldTypePublisher's headerNote
address_alias_pidstringADDRESS_ALIAS_PIDThe persistent identifier of the alias pair.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
principal_pidstringPRINCIPAL_PIDThe principal address, from address_detail. Refers to address_detail.address_detail_pid.
alias_pidstringALIAS_PIDThe alias address, from address_detail. Refers to address_detail.address_detail_pid.
alias_type_codestringALIAS_TYPE_CODEThe kind of alias, from the lookup table. Refers to address_alias_type_aut.code.
alias_commentstringALIAS_COMMENTA note on the alias.
address_feature 234,311 rows, 6 fields

Address features: a record per address of the change that created it, kept so a release can be compared with the one before. The key is address_feature_id. Publisher's table ADDRESS_FEATURE. address_feature.parquet (3.3 MB).

FieldTypePublisher's headerNote
address_feature_idstringADDRESS_FEATURE_IDThe identifier of the feature row.
address_feature_pidstringADDRESS_FEATURE_PIDThe persistent identifier of the feature.
address_detail_pidstringADDRESS_DETAIL_PIDThe persistent identifier of the address. Refers to address_detail.address_detail_pid.
date_address_detail_createddateDATE_ADDRESS_DETAIL_CREATEDThe date the address was created.
date_address_detail_retireddateDATE_ADDRESS_DETAIL_RETIREDThe date the address was retired, where it has been.
address_change_type_codestringADDRESS_CHANGE_TYPE_CODEThe kind of change, from address_change_type_aut. Refers to address_change_type_aut.code.
primary_secondary 4,966,622 rows, 7 fields

Links a secondary address, such as a flat, to its primary address. The key is primary_secondary_pid. Publisher's table PRIMARY_SECONDARY. primary_secondary.parquet (66 MB).

FieldTypePublisher's headerNote
primary_secondary_pidstringPRIMARY_SECONDARY_PIDThe persistent identifier of the link.
primary_pidstringPRIMARY_PID Refers to address_detail.address_detail_pid.
secondary_pidstringSECONDARY_PIDThe secondary address, from address_detail. Refers to address_detail.address_detail_pid.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
ps_join_type_codeintegerPS_JOIN_TYPE_CODEThe kind of link, from ps_join_type_aut. Refers to ps_join_type_aut.code.
ps_join_commentstringPS_JOIN_COMMENTA note on the link.
street_locality 767,239 rows, 11 fields

One row per street within a locality, with the street's name, type, suffix and class. The key is street_locality_pid. Publisher's table STREET_LOCALITY. street_locality.parquet (13 MB).

FieldTypePublisher's headerNote
street_locality_pidstringSTREET_LOCALITY_PIDThe street within a locality, from street_locality.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
street_class_codestringSTREET_CLASS_CODEThe class of street, from street_class_aut. Refers to street_class_aut.code.
street_namestringSTREET_NAMEThe street's name without its type.
street_type_codestringSTREET_TYPE_CODEThe street type, from street_type_aut. Refers to street_type_aut.code.
street_suffix_codestringSTREET_SUFFIX_CODEThe street suffix, from street_suffix_aut. Refers to street_suffix_aut.code.
locality_pidstringLOCALITY_PIDThe locality, from locality. Refers to locality.locality_pid.
gnaf_street_pidstringGNAF_STREET_PID
gnaf_street_confidenceintegerGNAF_STREET_CONFIDENCE
gnaf_reliability_codeintegerGNAF_RELIABILITY_CODEHow reliable the locality's point is, from geocode_reliability_aut. Refers to geocode_reliability_aut.code.
street_locality_alias 41,100 rows, 8 fields

Alternative names for a street within a locality. The key is street_locality_alias_pid. Publisher's table STREET_LOCALITY_ALIAS. street_locality_alias.parquet (736 KB).

FieldTypePublisher's headerNote
street_locality_alias_pidstringSTREET_LOCALITY_ALIAS_PIDThe persistent identifier of the alias.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
street_locality_pidstringSTREET_LOCALITY_PIDThe street within a locality, from street_locality. Refers to street_locality.street_locality_pid.
street_namestringSTREET_NAMEThe street's name without its type.
street_type_codestringSTREET_TYPE_CODEThe street type, from street_type_aut. Refers to street_type_aut.code.
street_suffix_codestringSTREET_SUFFIX_CODEThe street suffix, from street_suffix_aut. Refers to street_suffix_aut.code.
alias_type_codestringALIAS_TYPE_CODEThe kind of alias, from the lookup table. Refers to street_locality_alias_type_aut.code.
street_locality_point 719,651 rows, 8 fields

A representative point for each street within a locality. The key is street_locality_point_pid. Publisher's table STREET_LOCALITY_POINT. street_locality_point.parquet (22 MB).

FieldTypePublisher's headerNote
street_locality_point_pidstringSTREET_LOCALITY_POINT_PIDThe persistent identifier of the point.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
street_locality_pidstringSTREET_LOCALITY_PIDThe street within a locality, from street_locality. Refers to street_locality.street_locality_pid.
boundary_extentintegerBOUNDARY_EXTENTThe extent of the boundary the geocode was derived from, in metres, where known.
planimetric_accuracyintegerPLANIMETRIC_ACCURACYThe planimetric accuracy of the point, in metres, where known.
longitudenumberLONGITUDELongitude in decimal degrees, GDA2020.
latitudenumberLATITUDELatitude in decimal degrees, GDA2020.
locality 17,581 rows, 9 fields

One row per locality, which is a suburb, town or district, with its name, class, state and primary postcode. The key is locality_pid. Publisher's table LOCALITY. locality.parquet (365 KB).

FieldTypePublisher's headerNote
locality_pidstringLOCALITY_PIDThe locality, from locality.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
locality_namestringLOCALITY_NAMEThe locality's name.
primary_postcodestringPRIMARY_POSTCODEThe locality's primary postcode.
locality_class_codestringLOCALITY_CLASS_CODEThe class of locality, from locality_class_aut. Refers to locality_class_aut.code.
state_pidstringSTATE_PIDThe state or territory, from state. Refers to state.state_pid.
gnaf_locality_pidstringGNAF_LOCALITY_PIDThe G-NAF locality identifier.
gnaf_reliability_codeintegerGNAF_RELIABILITY_CODEHow reliable the locality's point is, from geocode_reliability_aut. Refers to geocode_reliability_aut.code.
locality_alias 29,577 rows, 8 fields

Alternative names for a locality. The key is locality_alias_pid. Publisher's table LOCALITY_ALIAS. locality_alias.parquet (458 KB).

FieldTypePublisher's headerNote
locality_alias_pidstringLOCALITY_ALIAS_PIDThe persistent identifier of the alias.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
locality_pidstringLOCALITY_PIDThe locality, from locality. Refers to locality.locality_pid.
namestringNAMEThe alias name, or the lookup value's name.
postcodestringPOSTCODEThe postcode, as text.
alias_type_codestringALIAS_TYPE_CODEThe kind of alias, from the lookup table. Refers to locality_alias_type_aut.code.
state_pidstringSTATE_PIDThe state or territory, from state.
locality_neighbour 89,438 rows, 5 fields

Pairs of localities that share a boundary. The key is locality_neighbour_pid. Publisher's table LOCALITY_NEIGHBOUR. locality_neighbour.parquet (794 KB).

FieldTypePublisher's headerNote
locality_neighbour_pidstringLOCALITY_NEIGHBOUR_PIDThe persistent identifier of the pair.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
locality_pidstringLOCALITY_PIDThe locality, from locality. Refers to locality.locality_pid.
neighbour_locality_pidstringNEIGHBOUR_LOCALITY_PIDThe neighbouring locality, from locality. Refers to locality.locality_pid.
locality_point 17,581 rows, 7 fields

A representative point for each locality. The key is locality_point_pid. Publisher's table LOCALITY_POINT. locality_point.parquet (570 KB).

FieldTypePublisher's headerNote
locality_point_pidstringLOCALITY_POINT_PIDThe persistent identifier of the point.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
locality_pidstringLOCALITY_PIDThe locality, from locality. Refers to locality.locality_pid.
planimetric_accuracyintegerPLANIMETRIC_ACCURACYThe planimetric accuracy of the point, in metres, where known.
longitudenumberLONGITUDELongitude in decimal degrees, GDA2020.
latitudenumberLATITUDELatitude in decimal degrees, GDA2020.
state 9 rows, 5 fields

The states and territories, by name and abbreviation. The key is state_pid. Publisher's table STATE. state.parquet (9.0 KB).

FieldTypePublisher's headerNote
state_pidstringSTATE_PIDThe state or territory, from state.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
state_namestringSTATE_NAMEThe state or territory's name.
state_abbreviationstringSTATE_ABBREVIATIONThe state or territory's abbreviation, such as QLD.
address_mesh_block_2026 16,970,406 rows, 6 fields

The ABS 2026 mesh block each address falls in, with how the match was made. The key is address_mesh_block_pid_2026. Publisher's table ADDRESS_MESH_BLOCK_2026. address_mesh_block_2026.parquet (156 MB).

FieldTypePublisher's headerNote
address_mesh_block_pid_2026stringADDRESS_MESH_BLOCK_PID_2026The persistent identifier of the match.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
address_detail_pidstringADDRESS_DETAIL_PIDThe persistent identifier of the address. Refers to address_detail.address_detail_pid.
mb_match_codestringMB_MATCH_CODEHow the address was matched to the mesh block, from mb_match_code_aut. Refers to mb_match_code_aut.code.
mb_pid_2026stringMB_PID_2026The mesh block, from mb_2026. Refers to mb_2026.mb_pid_2026.
mb_2026 374,916 rows, 4 fields

The ABS 2026 mesh block codes referred to by address_mesh_block_2026. The key is mb_pid_2026. Publisher's table MB_2026. mb_2026.parquet (4.0 MB).

FieldTypePublisher's headerNote
mb_pid_2026stringMB_PID_2026The mesh block, from mb_2026.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
mb_code_2026stringMB_CODE_2026The ABS 2026 mesh block code.
address_mesh_block_2021 16,970,406 rows, 6 fields

The ABS 2021 mesh block each address falls in, with how the match was made. The key is address_mesh_block_2021_pid. Publisher's table ADDRESS_MESH_BLOCK_2021. address_mesh_block_2021.parquet (156 MB).

FieldTypePublisher's headerNote
address_mesh_block_2021_pidstringADDRESS_MESH_BLOCK_2021_PIDThe persistent identifier of the match.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
address_detail_pidstringADDRESS_DETAIL_PIDThe persistent identifier of the address. Refers to address_detail.address_detail_pid.
mb_match_codestringMB_MATCH_CODEHow the address was matched to the mesh block, from mb_match_code_aut. Refers to mb_match_code_aut.code.
mb_2021_pidstringMB_2021_PIDThe mesh block, from mb_2021. Refers to mb_2021.mb_2021_pid.
mb_2021 368,285 rows, 4 fields

The ABS 2021 mesh block codes referred to by address_mesh_block_2021. The key is mb_2021_pid. Publisher's table MB_2021. mb_2021.parquet (3.1 MB).

FieldTypePublisher's headerNote
mb_2021_pidstringMB_2021_PIDThe mesh block, from mb_2021.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
mb_2021_codestringMB_2021_CODEThe ABS 2021 mesh block code.
address_mesh_block_2016 16,970,406 rows, 6 fields

The ABS 2016 mesh block each address falls in, with how the match was made. The key is address_mesh_block_2016_pid. Publisher's table ADDRESS_MESH_BLOCK_2016. address_mesh_block_2016.parquet (156 MB).

FieldTypePublisher's headerNote
address_mesh_block_2016_pidstringADDRESS_MESH_BLOCK_2016_PIDThe persistent identifier of the match.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
address_detail_pidstringADDRESS_DETAIL_PIDThe persistent identifier of the address. Refers to address_detail.address_detail_pid.
mb_match_codestringMB_MATCH_CODEHow the address was matched to the mesh block, from mb_match_code_aut. Refers to mb_match_code_aut.code.
mb_2016_pidstringMB_2016_PIDThe mesh block, from mb_2016. Refers to mb_2016.mb_2016_pid.
mb_2016 358,122 rows, 4 fields

The ABS 2016 mesh block codes referred to by address_mesh_block_2016. The key is mb_2016_pid. Publisher's table MB_2016. mb_2016.parquet (2.9 MB).

FieldTypePublisher's headerNote
mb_2016_pidstringMB_2016_PIDThe mesh block, from mb_2016.
date_createddateDATE_CREATEDThe date the row was created in G-NAF.
date_retireddateDATE_RETIREDThe date the row was retired. Blank for a current row.
mb_2016_codestringMB_2016_CODEThe ABS 2016 mesh block code.
address_alias_type_aut 8 rows, 3 fields

Lookup: the kinds of address alias. The key is code. Publisher's table ADDRESS_ALIAS_TYPE_AUT. address_alias_type_aut.parquet (8.6 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
address_change_type_aut 511 rows, 3 fields

Lookup: the kinds of change recorded in address_feature. The key is code. Publisher's table ADDRESS_CHANGE_TYPE_AUT. address_change_type_aut.parquet (17 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
address_type_aut 3 rows, 3 fields

Lookup: the kinds of address site. The key is code. Publisher's table ADDRESS_TYPE_AUT. address_type_aut.parquet (8.2 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
flat_type_aut 54 rows, 3 fields

Lookup: the kinds of flat, unit, apartment, shop and so on. The key is code. Publisher's table FLAT_TYPE_AUT. flat_type_aut.parquet (9.3 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
geocoded_level_type_aut 8 rows, 3 fields

Lookup: the level an address is geocoded to, from locality down to the property. The key is code. Publisher's table GEOCODED_LEVEL_TYPE_AUT. geocoded_level_type_aut.parquet (8.7 KB).

FieldTypePublisher's headerNote
codeintegerCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
geocode_reliability_aut 6 rows, 3 fields

Lookup: how reliable a geocode is, as a code and a description. The key is code. Publisher's table GEOCODE_RELIABILITY_AUT. geocode_reliability_aut.parquet (9.0 KB).

FieldTypePublisher's headerNote
codeintegerCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
geocode_type_aut 30 rows, 3 fields

Lookup: what feature a geocode point sits on, such as the building centroid, the frontage or the property centroid. The key is code. Publisher's table GEOCODE_TYPE_AUT. geocode_type_aut.parquet (9.7 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
level_type_aut 16 rows, 3 fields

Lookup: the kinds of level within a building. The key is code. Publisher's table LEVEL_TYPE_AUT. level_type_aut.parquet (8.6 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
locality_alias_type_aut 2 rows, 3 fields

Lookup: the kinds of locality alias. The key is code. Publisher's table LOCALITY_ALIAS_TYPE_AUT. locality_alias_type_aut.parquet (8.3 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
locality_class_aut 9 rows, 3 fields

Lookup: the classes of locality. The key is code. Publisher's table LOCALITY_CLASS_AUT. locality_class_aut.parquet (8.7 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
mb_match_code_aut 5 rows, 3 fields

Lookup: how an address was matched to its mesh block. The key is code. Publisher's table MB_MATCH_CODE_AUT. mb_match_code_aut.parquet (9.4 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
ps_join_type_aut 2 rows, 3 fields

Lookup: the kinds of link between a primary and a secondary address. The key is code. Publisher's table PS_JOIN_TYPE_AUT. ps_join_type_aut.parquet (8.7 KB).

FieldTypePublisher's headerNote
codeintegerCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
street_class_aut 2 rows, 3 fields

Lookup: the classes of street. The key is code. Publisher's table STREET_CLASS_AUT. street_class_aut.parquet (8.9 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
street_locality_alias_type_aut 2 rows, 3 fields

Lookup: the kinds of street alias. The key is code. Publisher's table STREET_LOCALITY_ALIAS_TYPE_AUT. street_locality_alias_type_aut.parquet (8.3 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
street_suffix_aut 19 rows, 3 fields

Lookup: the street suffixes, such as North or Extension. The key is code. Publisher's table STREET_SUFFIX_AUT. street_suffix_aut.parquet (8.5 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.
street_type_aut 276 rows, 3 fields

Lookup: the street types, such as Road, Street and Avenue. The key is code. Publisher's table STREET_TYPE_AUT. street_type_aut.parquet (12 KB).

FieldTypePublisher's headerNote
codestringCODEThe code.
namestringNAMEThe alias name, or the lookup value's name.
descriptionstringDESCRIPTIONWhat the code means.

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.

The SQL of address_view
SELECT
AD.ADDRESS_DETAIL_PID as ADDRESS_DETAIL_PID,
AD.STREET_LOCALITY_PID as STREET_LOCALITY_PID,
AD.LOCALITY_PID as LOCALITY_PID,
AD.BUILDING_NAME as BUILDING_NAME,
AD.LOT_NUMBER_PREFIX as LOT_NUMBER_PREFIX,
AD.LOT_NUMBER as LOT_NUMBER,
AD.LOT_NUMBER_SUFFIX as LOT_NUMBER_SUFFIX,
FTA.NAME as FLAT_TYPE,
AD.FLAT_NUMBER_PREFIX as FLAT_NUMBER_PREFIX,
AD.FLAT_NUMBER as FLAT_NUMBER,
AD.FLAT_NUMBER_SUFFIX as FLAT_NUMBER_SUFFIX,
LTA.NAME as LEVEL_TYPE,
AD.LEVEL_NUMBER_PREFIX as LEVEL_NUMBER_PREFIX,
AD.LEVEL_NUMBER as LEVEL_NUMBER,
AD.LEVEL_NUMBER_SUFFIX as LEVEL_NUMBER_SUFFIX,
AD.NUMBER_FIRST_PREFIX as NUMBER_FIRST_PREFIX,
AD.NUMBER_FIRST as NUMBER_FIRST,
AD.NUMBER_FIRST_SUFFIX as NUMBER_FIRST_SUFFIX,
AD.NUMBER_LAST_PREFIX as NUMBER_LAST_PREFIX,
AD.NUMBER_LAST as NUMBER_LAST,
AD.NUMBER_LAST_SUFFIX as NUMBER_LAST_SUFFIX,
SL.STREET_NAME as STREET_NAME,
SL.STREET_CLASS_CODE as STREET_CLASS_CODE,
SCA.NAME as STREET_CLASS_TYPE,
SL.STREET_TYPE_CODE as STREET_TYPE_CODE,
SL.STREET_SUFFIX_CODE as STREET_SUFFIX_CODE,
SSA.NAME as STREET_SUFFIX_TYPE,
L.LOCALITY_NAME as LOCALITY_NAME,
ST.STATE_ABBREVIATION as STATE_ABBREVIATION,
AD.POSTCODE as POSTCODE,
ADG.LATITUDE as LATITUDE,
ADG.LONGITUDE as LONGITUDE,
GTA.NAME as GEOCODE_TYPE,
AD.CONFIDENCE as CONFIDENCE,
AD.ALIAS_PRINCIPAL as ALIAS_PRINCIPAL,
AD.PRIMARY_SECONDARY as PRIMARY_SECONDARY,
AD.LEGAL_PARCEL_ID as LEGAL_PARCEL_ID,
AD.DATE_CREATED as DATE_CREATED
FROM
ADDRESS_DETAIL AD
LEFT JOIN FLAT_TYPE_AUT FTA ON AD.FLAT_TYPE_CODE=FTA.CODE
LEFT JOIN LEVEL_TYPE_AUT LTA ON AD.LEVEL_TYPE_CODE=LTA.CODE
JOIN STREET_LOCALITY SL ON AD.STREET_LOCALITY_PID=SL.STREET_LOCALITY_PID
LEFT JOIN STREET_SUFFIX_AUT SSA ON SL.STREET_SUFFIX_CODE=SSA.CODE
LEFT JOIN STREET_CLASS_AUT SCA ON SL.STREET_CLASS_CODE=SCA.CODE
LEFT JOIN STREET_TYPE_AUT STA ON SL.STREET_TYPE_CODE=STA.CODE
JOIN LOCALITY L ON AD.LOCALITY_PID = L.LOCALITY_PID
JOIN ADDRESS_DEFAULT_GEOCODE ADG ON AD.ADDRESS_DETAIL_PID=ADG.ADDRESS_DETAIL_PID
LEFT JOIN GEOCODE_TYPE_AUT GTA ON ADG.GEOCODE_TYPE_CODE=GTA.CODE
LEFT JOIN GEOCODED_LEVEL_TYPE_AUT GLTA ON AD.LEVEL_GEOCODED_CODE=GLTA.CODE
JOIN STATE ST ON L.STATE_PID=ST.STATE_PID
WHERE
AD.CONFIDENCE > -1

The same schema as a Frictionless Table Schema for every table is at schema.json, and as SQL at schema.sql.

What changed

One version for every release the publisher has made since this site started following the dataset. The date is the day the archive changed on the portal. Versions of a database are compared table by table, by row count.

  • 2026-08-17
    131,441,280 rows37 tables219 fieldszip16820cc91c3e

versions.json · changes.json · history.tar.zst (6.2 KB, every version's schema and manifest)

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 this site did to the data. Each table's cells were typed, its columns were named in lower case and the tables were put in one database with the publisher's keys, references and views. Rows were left alone. The publisher's archive sits beside every version as source.zip so the change can be checked.

Attribution and citation

The licence requires the publisher's attribution. We ask that you also name publicdata.au and link to the version you used.

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/

The attribution alone is inside every file. Harvard is the author-date form a report or a brief asks for. Paste the HTML on a web page so the links carry.

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.

The condition is in the licence and in the licence.condition field of every provenance header. This dataset is not copied to Hugging Face, Kaggle or Zenodo, since none of them can state the condition.

For agents and tools

This page carries a schema.org Dataset record and is listed in /.well-known/ard.json and /catalog.json.

Source

Geoscape Australia publishes this release on data.gov.au. Questions about the content go to the publisher. Questions about the files here go to corrections.

Fetched 1 October 2026. Source SHA-256 16820cc91c3ea32a…