> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prontiq.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Enrich

> Fetch the richest public address document by G-NAF ID: structured components, geocodes, boundaries, aliases, and source context.

Enrich returns the richest public address document for a G-NAF persistent identifier.
Call it after a user selects an autocomplete suggestion or after validate
returns a match whose `id` you want to store.

<Info>
  Usage is metered in credits. See the [Credits guide](/guides/credits) for response headers and
  usage behaviour.
</Info>

## When to use it

* Auto-fill suburb, state, postcode, coordinates, and boundary fields after address selection.
* Store structured address components instead of parsing `addressLabel`.
* Attach LGA, ward, SA1, mesh block, or ABS Statistical Area fields to a record.
* Inspect alternate address labels, secondary/unit records, and additional geocodes when present.
* Resolve an address ID you previously stored.

## Request

| Parameter | Type   | Required | Default | Description                                                     |
| --------- | ------ | -------- | ------- | --------------------------------------------------------------- |
| `id`      | string | Yes      | —       | G-NAF address document ID returned by Autocomplete or Validate. |

## Examples

<CodeGroup>
  ```bash curl theme={null}
  curl "https://api.prontiq.dev/v1/address/enrich?id=GAQLD156786950" \
    -H "X-Api-Key: YOUR_API_KEY"
  ```

  ```typescript TypeScript SDK theme={null}
  import { Prontiq } from "@prontiq/sdk";

  const prontiq = new Prontiq({
    serverURL: "https://api.prontiq.dev",
    apiKeyAuth: process.env.PRONTIQ_API_KEY!,
  });

  const response = await prontiq.address.enrichAddress("GAQLD156786950");
  const { result: address } = response;

  console.log(address.geocode);
  console.log(address.boundaries?.lga?.name);
  console.log(address.components?.streetNumberFirst);
  console.log(address.boundaries?.sa1);
  ```

  ```python Python SDK theme={null}
  from prontiq import Prontiq

  client = Prontiq()

  address = client.address.enrich(
      id="GAQLD156786950",
  )

  print(address.geocode)
  print(address.boundaries.lga.name if address.boundaries and address.boundaries.lga else None)
  ```
</CodeGroup>

## Response

The exact values depend on the selected address and current data release. Enrich
adds optional fields when that source metadata exists for the record. Coverage
varies by address and geography, so treat every enrich-only field defensively.

```json theme={null}
{
  "id": "GAVIC411087566",
  "addressLabel": "FLAT 14, 5 DUKE STREET",
  "localityName": "CAULFIELD SOUTH",
  "state": "VIC",
  "postcode": "3162",
  "confidence": 2,
  "sourceDataRelease": "2026.04",
  "addressRole": "SECONDARY",
  "legalParcelId": "14\\PS349838",
  "components": {
    "flatType": "FLAT",
    "flatNumber": "14",
    "streetNumberFirst": "5",
    "streetName": "DUKE",
    "streetType": "STREET"
  },
  "geocode": {
    "latitude": -37.89180933,
    "longitude": 145.01510717,
    "type": "FRONTAGE CENTRE SETBACK",
    "reliability": 2
  },
  "location": {
    "lat": -37.89180933,
    "lon": 145.01510717
  },
  "allGeocodes": [
    {
      "latitude": -37.89180933,
      "longitude": 145.01510717,
      "type": "FRONTAGE CENTRE SETBACK",
      "reliability": 2
    },
    {
      "latitude": -37.89180905,
      "longitude": 145.01490263,
      "type": "PROPERTY CENTROID",
      "reliability": 2
    }
  ],
  "locality": {
    "id": "loc1b5a0e70afd4",
    "classification": "GAZETTED LOCALITY",
    "neighbours": ["ELSTERNWICK", "GARDENVALE", "ORMOND"],
    "aliases": []
  },
  "street": {
    "id": "VIC1953679",
    "classification": "CONFIRMED",
    "aliases": []
  },
  "boundaries": {
    "lga": { "name": "Glen Eira", "code": "lga9bd137c30d17" },
    "ward": { "name": "Bambra Ward" },
    "meshBlock": { "code": "20192490000", "category": "Residential" },
    "sa1": "20802117831",
    "sa2": { "name": "Caulfield - South", "code": "208021178" }
  },
  "aliases": [
    {
      "id": "MA13517230",
      "addressLabel": "SHOP 1 GROUND 1 MCNAB AVENUE",
      "type": "SYNONYM"
    }
  ],
  "secondaries": [
    {
      "id": "GAVIC425495838",
      "addressLabel": "SHOP 1 1 MCNAB AVENUE"
    }
  ]
}
```

## Enrich-only fields

| Field               | Meaning                                                                                                              |
| ------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `sourceDataRelease` | Source data release or version used to produce the record. This is not the Prontiq API version.                      |
| `addressRole`       | `PRIMARY` or `SECONDARY` when the address has parent/child address role metadata.                                    |
| `components`        | Structured address parts such as flat, level, lot, street number, street name, street type, and building/site names. |
| `legalParcelId`     | Parcel or legal-property reference when available. Coverage varies.                                                  |
| `allGeocodes`       | Additional geocodes associated with the address.                                                                     |
| `locality`          | Locality context including classification, neighbouring localities, and aliases.                                     |
| `street`            | Street context including classification and aliases.                                                                 |
| `aliases`           | Alternative address labels associated with this address.                                                             |
| `secondaries`       | Secondary or child addresses associated with a primary address.                                                      |
| `boundaries.sa1`    | ABS Statistical Area Level 1 code. Useful for downstream statistical joins.                                          |
| `boundaries.ward`   | Council ward name when available.                                                                                    |

## Shared full-address fields

| Field                                       | Meaning                                                                   |
| ------------------------------------------- | ------------------------------------------------------------------------- |
| `geocode`                                   | Physical location and geocoding metadata.                                 |
| `geocode.reliability`                       | G-NAF reliability value where lower is better.                            |
| `location`                                  | Compact map point shape: `{ lat, lon }`.                                  |
| `boundaries.lga`                            | Local Government Area, with optional code when available.                 |
| `stateElectorate`, `commonwealthElectorate` | State and federal electoral districts.                                    |
| `meshBlock`                                 | ABS mesh block and land-use category when available.                      |
| `sa2`, `sa3`, `sa4`, `gccsa`                | ABS Statistical Area hierarchy and Greater Capital City Statistical Area. |

Boundary and enrich-only fields are optional. Handle missing nested objects defensively.

## Integration tips

* Store the `id` from Autocomplete or Validate instead of attempting to recreate
  it from address text.
* Use Enrich only when you need the richest record; Autocomplete and Validate
  already return display and match-quality fields.
* Prefer `components` over parsing `addressLabel`.
* Use `allGeocodes` only when your workflow needs to compare multiple geocode candidates.
* Treat boundary data as source metadata that may change across official data
  releases.

See the [Enrich API reference](/api-reference/enrich) for the generated schema
and live playground.
