Method:
DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress
Use to geocode Australian addresses with the G-NAF dataset

Test:
ParameterValue
AddressLine1
AddressLine2
AddressLine3
AddressLine4
AddressLine5
AddressLine6
Locality
State
Postcode
RequestId
RequestKey
DepartmentCode
Input Parameters:
ParameterDescription
AddressLine1Address line 1 eg. 'Level 22 Suite 5'.
AddressLine2Address line 2 eg. 'The Big Building'.
AddressLine3Address line 3 eg. '220 Big Street'.
AddressLine4Address line 4
AddressLine5Address line 5
AddressLine6Address line 6
LocalityLocality, Suburb or Town
StateState for Australian addresses eg. NSW, VIC.
PostcodePostcode
RequestIdOptional user value to assist in linking DtRequests with DtResponses.
RequestKeyRequired for user access verification. For client side script protect your Request Key by using the DataTools.Security.GenerateTemporaryRequestKey
DepartmentCodeOptional user value to allocate transaction usage by department. Limit of 50 unique Department codes per account.

Output Fields:
FieldDescription
LongitudeLongitude
LatitudeLatitude
GeocodeResultLevelReturns a code that indicates the level to which the address could be geocoded. [Option Values]
GeocodeResultLevelDescriptionA meaningful description of the level to which the address could be geocoded.
GnafSa1-2011An 11-digit SA1 2011 code that is fully hierarchical and comprises of the S/T identifier, SA4 identifier, SA3 identifier, SA2 identifier and a SA1 identifier.
GnafSa1b-2011A 7-digit SA1 2011 code is not fully hierarchical and comprises of the S/T identifier, SA2 identifier and SA1 identifier.
GnafSa1-2016An 11-digit SA1 2016 code that is fully hierarchical and comprises of the S/T identifier, SA4 identifier, SA3 identifier, SA2 identifier and a SA1 identifier.
GnafSa1b-2016A 7-digit SA1 2016 code is not fully hierarchical and comprises of the S/T identifier, SA2 identifier and SA1 identifier.
GnafSa1-2021An 11-digit SA1 2021 code that is fully hierarchical and comprises of the S/T identifier, SA4 identifier, SA3 identifier, SA2 identifier and a SA1 identifier.
GnafSa1b-2021A 7-digit SA1 2021 code is not fully hierarchical and comprises of the S/T identifier, SA2 identifier and SA1 identifier.
LGA-2011Local Government Area 2011 code.
LGA-2016Local Government Area 2016 code.
LGA-2020Local Government Area 2020 code.
LGA-2021Local Government Area 2021 code.
MechBlock-20112011 Mesh Block code. The smallest geographical area defined by the ABS.
MechBlock-20162016 Mesh Block code. The smallest geographical area defined by the ABS.
MeshBlock-20212021 Mesh Block code. The smallest geographical area defined by the ABS.
GnafPidThe G-NAF Persistent Identifier (G-NAF PID) is a 9-digit number that uniquely identifies each G-NAF address.

Supported Web Service API Interfaces:
Web Service Method: ProcessQueryStringRequest (REST with QueryString)
Request Format: Url QueryString, Body (x-www-form-urlencoded), Response Formats: JSON, XML*,
Protocols: HTTP GET, HTTPS GET, HTTP POST, HTTPS POST, HTTP OPTIONS, HTTPS OPTIONS
Example Server Path: https://customname.datatoolscloud.net.au/KleberWebService/DtKleberService.svc
Sample QueryString Request:
/ProcessQueryStringRequest?Method=DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress&AddressLine1=&AddressLine2=&AddressLine3=&AddressLine4=&AddressLine5=&AddressLine6=&Locality=&State=&Postcode=&RequestId=&RequestKey=&DepartmentCode=
Sample JSON Response:
{ "DtResponse":{ "RequestId":"", "ResultCount":"1", "ErrorMessage":"", "Result":[ { "Longitude":"", "Latitude":"", "GeocodeResultLevel":"", "GeocodeResultLevelDescription":"", "GnafSa1-2011":"", "GnafSa1b-2011":"", "GnafSa1-2016":"", "GnafSa1b-2016":"", "GnafSa1-2021":"", "GnafSa1b-2021":"", "LGA-2011":"", "LGA-2016":"", "LGA-2020":"", "LGA-2021":"", "MechBlock-2011":"", "MechBlock-2016":"", "MeshBlock-2021":"", "GnafPid":"" } ] } }
Sample Code:



Web Service Method: ProcessQueryJsonRequest (REST with JSON)
Request Format: Body (Raw JSON), Response Formats: JSON, XML*,
Protocols: HTTP GET, HTTPS GET, HTTP POST, HTTPS POST, HTTP OPTIONS, HTTPS OPTIONS
Example Server Path: https://customname.datatoolscloud.net.au/KleberWebService/DtKleberService.svc

Single Request
Sample JSON Request:
{ "DtRequest":{ "Method":"DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress", "AddressLine1":"", "AddressLine2":"", "AddressLine3":"", "AddressLine4":"", "AddressLine5":"", "AddressLine6":"", "Locality":"", "State":"", "Postcode":"", "RequestId":"", "RequestKey":"", "DepartmentCode":"" } }
Sample JSON Response:
{ "DtResponse":{ "RequestId":"", "ResultCount":"1", "ErrorMessage":"", "Result":[ { "Longitude":"", "Latitude":"", "GeocodeResultLevel":"", "GeocodeResultLevelDescription":"", "GnafSa1-2011":"", "GnafSa1b-2011":"", "GnafSa1-2016":"", "GnafSa1b-2016":"", "GnafSa1-2021":"", "GnafSa1b-2021":"", "LGA-2011":"", "LGA-2016":"", "LGA-2020":"", "LGA-2021":"", "MechBlock-2011":"", "MechBlock-2016":"", "MeshBlock-2021":"", "GnafPid":"" } ] } }

Multiple Requests
Sample JSON Request:
{ "DtRequests":{ "DtRequest":[ { "Method":"DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress", "AddressLine1":"", "AddressLine2":"", "AddressLine3":"", "AddressLine4":"", "AddressLine5":"", "AddressLine6":"", "Locality":"", "State":"", "Postcode":"", "RequestId":"", "RequestKey":"", "DepartmentCode":"" }, { "Method":"DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress", "AddressLine1":"", "AddressLine2":"", "AddressLine3":"", "AddressLine4":"", "AddressLine5":"", "AddressLine6":"", "Locality":"", "State":"", "Postcode":"", "RequestId":"", "RequestKey":"", "DepartmentCode":"" } ] } }
Sample JSON Response:
{ "DtResponses":{ "ErrorMessage":"", "DtResponse":[ { "RequestId":"", "ResultCount":"1", "ErrorMessage":"", "Result":[ { "Longitude":"", "Latitude":"", "GeocodeResultLevel":"", "GeocodeResultLevelDescription":"", "GnafSa1-2011":"", "GnafSa1b-2011":"", "GnafSa1-2016":"", "GnafSa1b-2016":"", "GnafSa1-2021":"", "GnafSa1b-2021":"", "LGA-2011":"", "LGA-2016":"", "LGA-2020":"", "LGA-2021":"", "MechBlock-2011":"", "MechBlock-2016":"", "MeshBlock-2021":"", "GnafPid":"" } ] }, { "RequestId":"", "ResultCount":"1", "ErrorMessage":"", "Result":[ { "Longitude":"", "Latitude":"", "GeocodeResultLevel":"", "GeocodeResultLevelDescription":"", "GnafSa1-2011":"", "GnafSa1b-2011":"", "GnafSa1-2016":"", "GnafSa1b-2016":"", "GnafSa1-2021":"", "GnafSa1b-2021":"", "LGA-2011":"", "LGA-2016":"", "LGA-2020":"", "LGA-2021":"", "MechBlock-2011":"", "MechBlock-2016":"", "MeshBlock-2021":"", "GnafPid":"" } ] } ] } }



Web Service Method: ProcessQueryXmlRequest (REST with XML)
Request Format: Body (Raw XML), Response Formats: JSON, XML*,
Protocols: HTTP GET, HTTPS GET, HTTP POST, HTTPS POST, HTTP OPTIONS, HTTPS OPTIONS
Example Server Path: https://customname.datatoolscloud.net.au/KleberWebService/DtKleberService.svc

Single Request
Sample XML Request:
<DtRequest Method="DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress" AddressLine1="" AddressLine2="" AddressLine3="" AddressLine4="" AddressLine5="" AddressLine6="" Locality="" State="" Postcode="" RequestId="" RequestKey="" DepartmentCode="" />
Sample XML Response:
<DtResponse RequestId="" ResultCount="1" ErrorMessage=""> <Result Longitude="" Latitude="" GeocodeResultLevel="" GeocodeResultLevelDescription="" GnafSa1-2011="" GnafSa1b-2011="" GnafSa1-2016="" GnafSa1b-2016="" GnafSa1-2021="" GnafSa1b-2021="" LGA-2011="" LGA-2016="" LGA-2020="" LGA-2021="" MechBlock-2011="" MechBlock-2016="" MeshBlock-2021="" GnafPid="" /> </DtResponse>

Multiple Requests
Sample XML Request:
<DtRequests>
<DtRequest Method="DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress" AddressLine1="" AddressLine2="" AddressLine3="" AddressLine4="" AddressLine5="" AddressLine6="" Locality="" State="" Postcode="" RequestId="" RequestKey="" DepartmentCode="" />
<DtRequest Method="DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress" AddressLine1="" AddressLine2="" AddressLine3="" AddressLine4="" AddressLine5="" AddressLine6="" Locality="" State="" Postcode="" RequestId="" RequestKey="" DepartmentCode="" />
</DtRequests>
Sample XML Response:
<DtResponses ErrorMessage=""> <DtResponse RequestId="" ResultCount="1" ErrorMessage=""> <Result Longitude="" Latitude="" GeocodeResultLevel="" GeocodeResultLevelDescription="" GnafSa1-2011="" GnafSa1b-2011="" GnafSa1-2016="" GnafSa1b-2016="" GnafSa1-2021="" GnafSa1b-2021="" LGA-2011="" LGA-2016="" LGA-2020="" LGA-2021="" MechBlock-2011="" MechBlock-2016="" MeshBlock-2021="" GnafPid="" /> </DtResponse> <DtResponse RequestId="" ResultCount="1" ErrorMessage=""> <Result Longitude="" Latitude="" GeocodeResultLevel="" GeocodeResultLevelDescription="" GnafSa1-2011="" GnafSa1b-2011="" GnafSa1-2016="" GnafSa1b-2016="" GnafSa1-2021="" GnafSa1b-2021="" LGA-2011="" LGA-2016="" LGA-2020="" LGA-2021="" MechBlock-2011="" MechBlock-2016="" MeshBlock-2021="" GnafPid="" /> </DtResponse> </DtResponses>

Web Service Method: ProcessXmlRequest (SOAP)
Request Format: XML over SOAP, Protocols: HTTP POST, HTTPS POST, Response Formats: XML, JSON*
Example Server Path: https://customname.datatoolscloud.net.au/KleberWebServiceSoap/DtKleberService.svc
SOAP WSDL: https://customname.datatoolscloud.net.au/KleberWebServiceSoap/DtKleberService.svc?wsdl
Sample XML Request:
<DtRequest Method="DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress" AddressLine1="" AddressLine2="" AddressLine3="" AddressLine4="" AddressLine5="" AddressLine6="" Locality="" State="" Postcode="" RequestId="" RequestKey="" DepartmentCode="" />
Sample XML Response:
<DtResponse RequestId="" ResultCount="1" ErrorMessage=""> <Result Longitude="" Latitude="" GeocodeResultLevel="" GeocodeResultLevelDescription="" GnafSa1-2011="" GnafSa1b-2011="" GnafSa1-2016="" GnafSa1b-2016="" GnafSa1-2021="" GnafSa1b-2021="" LGA-2011="" LGA-2016="" LGA-2020="" LGA-2021="" MechBlock-2011="" MechBlock-2016="" MeshBlock-2021="" GnafPid="" /> </DtResponse>
SOAP Envelope: The XML request is passed through a single parameter in the SOAP envelope <DtXmlRequest>. Where the development language requires the SOAP envelope contents to be defined manually, the additional step of encoding the Dt XML Request is required. The encoding required needs to transform "<" of the DtRequest to "&lt;" and ">" to "&gt;". See example below. 
Sample SOAP Envelope:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <soapenv:Header/> <soapenv:Body> <tem:ProcessXmlRequest> <!--Optional:--> <tem:DtXmlRequest> &lt;DtRequest Method="DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress" AddressLine1="" AddressLine2="" AddressLine3="" AddressLine4="" AddressLine5="" AddressLine6="" Locality="" State="" Postcode="" RequestId="" RequestKey="" DepartmentCode="" /&gt; </tem:DtXmlRequest> </tem:ProcessXmlRequest> </soapenv:Body> </soapenv:Envelope>
Batching Requests: Use the <DtRequests> (plural) tag to send through multiple requests in a single transaction.
<DtRequests>
<DtRequest Method="DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress" AddressLine1="" AddressLine2="" AddressLine3="" AddressLine4="" AddressLine5="" AddressLine6="" Locality="" State="" Postcode="" RequestId="" RequestKey="" DepartmentCode="" />
<DtRequest Method="DataTools.Enhance.Address.Geocoding.Gnaf.Au.AppendToAddress" AddressLine1="" AddressLine2="" AddressLine3="" AddressLine4="" AddressLine5="" AddressLine6="" Locality="" State="" Postcode="" RequestId="" RequestKey="" DepartmentCode="" />
</DtRequests>
Sample Code:

* Add the additional input parameter "OutputFormat=json" or "OutputFormat=xml" to change the response format from default.
* Add the additional input parameter "callback" to convert JSON responses to JSONP responses for across domains support.
  CORS header included where callback is not defined.

Please Note:
Ensure you thoroughly test all the methods you are using and are happy with the results before going into production. DataTools is charged by the data suppliers for use of every method – therefore ALL calls to any method will incur a COST. When you register DataTools provides you with free credit to help with development and trialling of the service. Once that credit is used you will need to purchase a monthly subscription and/or top up to continue using the service, even for development purposes. Please check the Method Pricing List for all current costs. DataTools does not warrant or guarantee the quality of the results returned and will not be held responsible for any costs incurred by using a method. Should you have any questions please contact your Sales representative or the Client Services team.