> [!NOTE]
> **Note:** This document describes the basic elements of an address validation response for an address of high quality. For guidance on working with real-world address scenarios and building logic around more complex responses, see See [Build your validation logic](https://developers.google.com/maps/documentation/javascript/address-validation/build-validation-logic.md.txt).

The Address Validation API response contains these top-level properties:

```json
{
  // Address details determined by the API.
  "address": {},
  // Validation verdict.
  "verdict": {},
  // The geocode generated for the input address.
  "geocode": {},
  // Information indicating if the address is a business, residence, etc.
  "metadata": {},
  // Information about the address from the US Postal Service
  // ("US" and "PR" addresses only).
  "uspsData": {},
  // A unique identifier generated for every request to the API.
  "responseId": "ID"
}
```

## The `verdict` property

> [!IMPORTANT]
> **Key Point:** Use the [verdict](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Verdict) property to get a baseline summary of the quality of the address.

The `verdict` property summarizes the results of the address validation and
should be the first property to evaluate when building address checking logic.
The property can return a variety of fields, depending on the quality of the
output address. For example, the following shows the `verdict` property of an
address of good quality, which returns the following fields for this particular
request:

```json
"verdict": {
  "inputGranularity": "PREMISE",
  "validationGranularity": "PREMISE",
  "geocodeGranularity": "PREMISE",
  "possibleNextAction": "ACCEPT",
  "addressComplete": true,
  "hasUnconfirmedComponents": false,
  "hasInferredComponents": true,
  "hasReplacedComponents": false
}
```

The following sections summarize all fields in the `verdict` property.

|---|
| See [Verdict](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Verdict) in the reference guide. |

### Granularity of the address

Address granularity refers to the level of detail used in determining the
specificity of an address or geocode. Address specificity in the
`validationGranularity` response is a key signal for whether or not an address
is deliverable.

The `verdict` property returns these granularity signals:

- **`inputGranularity`** --- Describes the level of detail captured from the address sent to the Address Validation in Maps JavaScript API. The level of address detail in the request influences the level of address detail in the validation response. For example, an address with an `inputGranularity` below `PREMISE` below level does not typically result in a `validationGranularity` to a `PREMISE` level.
- **`validationGranularity`** --- The granularity level that the Address Validation in Maps JavaScript API can fully validate the address to. In most cases, a granularity level of `PREMISE` or `SUB_PREMISE` indicates a quality address that is likely deliverable.
- **`geocodeGranularity`** --- Describes the level of detail of the geocode associated with the address. For example, Google records might indicate the existence of an apartment number, but not a precise location for that particular apartment within a large apartment complex. In that case, the `validationGranularity` is `SUB_PREMISE` but the `geocodeGranularity` is `PREMISE`.

|---|
| See [Granularity](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Granularity) in the reference guide. |

### Completeness of the address

The verdict returns the `addressComplete` property as a signal for a
high-quality address, which means specifically that it has no missing,
unresolved, or unexpected components:

```json
"verdict": {
    "inputGranularity": "PREMISE",
    "validationGranularity": "PREMISE",
    "geocodeGranularity": "PREMISE",
    "addressComplete": true
}
```

When the address has missing, unresolved, or unexpected components, the field
is set to `false`.

> [!NOTE]
> **Note:** When the `addressComplete` property does not appear in the verdict upon manual inspection, its value is false. In this case you should either query the verdict for the presence of the `addressComplete` property or query the property directly. See [Address quality](https://developers.google.com/maps/documentation/javascript/address-validation/understand-response.md.txt#address_quality) below for an example.

|---|
| See `addressComplete` under [Verdict](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Verdict) and [Address](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Address) in the reference guide. |

### Address quality

A number of possible fields indicate either problems with address components, or
adjustments to them, such as inferred or missing address components. For
example, the following `verdict` property indicates an address with unconfirmed
components and a missing `addressComplete` field:

```json
"verdict": {
    "inputGranularity": "PREMISE",
    "validationGranularity": "OTHER",
    "geocodeGranularity": "OTHER",
    "hasUnconfirmedComponents": true,
    "hasInferredComponents": true
}
```

|---|
| See [Verdict](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Verdict) in the reference guide. |

### Possible next action

<br />

> [!WARNING]
> This product or feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google
> Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage
> descriptions](https://developers.google.com/maps/launch-stages).

<br />

The [`possibleNextAction`](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#PossibleNextAction)
verdict field offers an interpretive summary of the API response, intended to
assist in determining a potential subsequent action to take. This field is
derived from other fields in the API response and should not be considered as a
guarantee of address accuracy or deliverability.

## The `address` and `addressComponent` properties

> [!IMPORTANT]
> **Key Point:** Use the `address` property to obtain address formatting. Use its subcomponent `addressComponent` for investigating errors and providing information about those errors to your customers. However, don't build your integration to rely on the specific confirmation level for address components. See [Build your validation logic](https://developers.google.com/maps/documentation/javascript/address-validation/build-validation-logic.md.txt) for integration guidance.

The `address` property provides formatting for the processed address provided in
the request, along with component-level summaries of the address, including
misspelled parts of the address, replaced incorrect parts, and inferred missing
parts.

|---|
| See [`Address`](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Address) in the reference guide. |

The `addressComponent` property is a subcomponent of `address` which provides
a detailed listing of the elements---or components---of the address that the
Address Validation in Maps JavaScript API has processed. The API identifies each component
field provides by its name, type, and confirmation level.

|---|
| See [`addressComponent`](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#AddressComponent) in the reference guide. |

## The `geocode` property

> [!IMPORTANT]
> **Key Point:** Use the `geocode` property as a convenience to obtain the geocode or place ID when your logic previously called the Geocoding API.

The `geocode` property indicates the geocoded location associated with the input
address. This property provides details about the location itself, such as
its place ID.

|---|
| See [`Geocode`](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#Geocode) in the reference guide. |

## The `metadata` property

> [!IMPORTANT]
> **Key Point:** Use the `metadata` property to determine the type of property associated with the address: residential, PO Box, or business.

This property might not be populated for every address processed by the
Address Validation in Maps JavaScript API, but indicates if the address is of type residential,
business, or a PO Box.

|---|
| See [Address Validation API coverage](https://developers.google.com/maps/documentation/javascript/address-validation/coverage.md.txt) and the reference for [`Address metadata`](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#AddressMetadata). |

## The `uspsData` property

> [!IMPORTANT]
> **Key Point:** Use the `uspsData` property to obtain delivery confidence levels and other USPS details about US addresses.

This property provides useful information for United States postal addresses.
However, it's not guaranteed to be fully populated for every address validated
by the service. For that reason, you shouldn't rely on this property as the
sole means to validate addresses, but instead check the `verdict` and
`address` as well.

|---|
| See [Handle United States addresses](https://developers.google.com/maps/documentation/javascript/address-validation/handle-us-addresses) and the reference for [`USPSData`](https://developers.google.com/maps/documentation/javascript/reference/address-validation.md.txt#USPSData). |