# Get Address Requirements

Returns the list of fields required to create a valid address. Use this as a starting point to discover required fields.
The response contains 4 required top-level fields:
- `country` (select field with list of values)
- `city` (text field)
- `postCode` (text field)
- `firstLine` (text field)

If a field has `refreshRequirementsOnChange: true`, call the POST endpoint with that field's value to discover additional required fields.
For a step-by-step walkthrough, see the [Address Requirements guide](/guides/developer/api-guides/address-requirements).

Endpoint: GET /v1/address-requirements
Security: UserToken, PersonalToken

## Header parameters:

  - `X-External-Correlation-Id` (string)
    Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

## Response 200 fields (application/json):

  - `type` (string)
    Always "address".
    Example: address

  - `fields` (array)
    List of fields required for the address.

  - `fields.name` (string)
    Display name of the field.
    Example: Country

  - `fields.group` (array)

  - `fields.group.key` (string)
    Key name to include in the JSON request.
    Example: country

  - `fields.group.type` (string)
    Display type of field.
    Enum: "text", "select"

  - `fields.group.refreshRequirementsOnChange` (boolean)
    If true, call POST address-requirements when this field value changes to discover additional required fields.
    Example: true

  - `fields.group.required` (boolean)
    Indicates if the field is mandatory.
    Example: true

  - `fields.group.displayFormat` (string | null)
    Display format pattern.
    Example: null

  - `fields.group.example` (string)
    Example value to help users understand what to input.
    Example: Germany

  - `fields.group.minLength` (integer | null)
    Minimum valid length of field value.
    Example: null

  - `fields.group.maxLength` (integer | null)
    Maximum valid length of field value.
    Example: null

  - `fields.group.validationRegexp` (string | null)
    Regexp validation pattern.
    Example: null

  - `fields.group.validationAsync` (string | null)
    Deprecated. This validation will instead be performed when submitting the request.
    Example: null

  - `fields.group.valuesAllowed` (array)
    List of allowed values (for select fields).
    Example: [{"key":"US","name":"United States"},{"key":"GB","name":"United Kingdom"}]

  - `fields.group.valuesAllowed.key` (string)
    Value key to use in the request.

  - `fields.group.valuesAllowed.name` (string)
    Display name for the value.

