PassionCore Address Tokenizer

Turn messy addresses into structured information.

Built for messy, human-entered address data.

Messy input
Flat 25, 12/F
Acacia Building
150 Kennedy Rd
Wan Chai, HK
free textmixed levels
Address
Tokenizer
Structured output
CountryHK0.97High
DistrictWan Chai0.96High
StreetKennedy Road0.96High
Building No.1500.97High
Unit / FloorFlat 25, 12/F0.93High
Overall Confidence0.96High

We turn messy, human-entered data into structured information.

</> Java-native◇ Offline▱ Explainable
Real showcase data, not a live parser

Pick a real example, see the real output

There is no live backend behind this page, so instead of a free-text box that could imply real-time AI parsing, pick one of the real example scenarios below. Every input, token, and structured field shown here is pulled directly from the same public showcase dataset used on our showcase cases and full showcase JSON pages — nothing is generated on the fly.

US

United States — civic address, New York

House number precedes street, ZIP at end, 2-letter state. Gazetteer confirms NEW YORK via OurAirports municipality (P2); sub-division resolved to US-NY.

Input

350 Fifth Avenue, New York, NY 10118

Core version

Real Core token output

Core output
{
  "country": "US",
  "tokens": [
    "POSTAL_CODE: 10118",
    "STATE_CODE: NY",
    "CITY: NEW YORK",
    "HOUSE_NO: 350",
    "STREET_NAME: FIFTH",
    "STREET_TYPE: AVENUE",
    "COUNTRY_CODE: US"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "US",
  "confidence": {
    "parse": 0.95,
    "gazetteer": 0.97,
    "final": 0.97
  },
  "needsReview": false,
  "iso20022Result": {
    "strtNm": "FIFTH AVENUE",
    "bldgNb": "350",
    "pstCd": "10118",
    "twnNm": "NEW YORK",
    "ctry": "US",
    "dstrct": "NEW YORK"
  }
}
GB

United Kingdom — 10 Downing Street

Postcode at end (SW1A 2AA). Core detects GB from the postcode pattern; Pro validates LONDON against the gazetteer.

Input

10 Downing Street, London SW1A 2AA

Core version

Real Core token output

Core output
{
  "country": "GB",
  "tokens": [
    "POSTAL_CODE: SW1A 2AA",
    "CITY: LONDON",
    "HOUSE_NO: 10",
    "STREET_NAME: DOWNING",
    "STREET_TYPE: STREET",
    "COUNTRY_CODE: GB"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "GB",
  "confidence": {
    "parse": 0.95,
    "gazetteer": 0.97,
    "final": 0.97
  },
  "needsReview": false,
  "iso20022Result": {
    "strtNm": "DOWNING STREET",
    "bldgNb": "10",
    "pstCd": "SW1A 2AA",
    "twnNm": "LONDON",
    "ctry": "GB"
  }
}
DE

Germany — house number after street

German convention: street name before house number, 5-digit postcode before city.

Input

Unter den Linden 6, 10117 Berlin

Core version

Real Core token output

Core output
{
  "country": "DE",
  "tokens": [
    "POSTAL_CODE: 10117",
    "CITY: BERLIN",
    "HOUSE_NO: 6",
    "STREET_NAME: UNTER DEN LINDEN",
    "COUNTRY_CODE: DE"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "DE",
  "confidence": {
    "parse": 0.95,
    "gazetteer": 0.97,
    "final": 0.97
  },
  "needsReview": false,
  "iso20022Result": {
    "strtNm": "UNTER DEN LINDEN",
    "bldgNb": "6",
    "pstCd": "10117",
    "twnNm": "BERLIN",
    "ctry": "DE"
  }
}
FR

France — street type before name

'Rue' street type precedes the name; BAN postcode data confirms 75001 → PARIS.

Input

75 Rue de Rivoli, 75001 Paris

Core version

Real Core token output

Core output
{
  "country": "FR",
  "tokens": [
    "POSTAL_CODE: 75001",
    "CITY: PARIS",
    "HOUSE_NO: 75",
    "STREET_TYPE: RUE",
    "STREET_NAME: DE RIVOLI",
    "COUNTRY_CODE: FR"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "FR",
  "confidence": {
    "parse": 0.95,
    "gazetteer": 0.97,
    "final": 0.97
  },
  "needsReview": true,
  "iso20022Result": {
    "strtNm": "RUE DE RIVOLI",
    "bldgNb": "75",
    "pstCd": "75001",
    "twnNm": "PARIS",
    "ctry": "FR"
  }
}
AU

Australia — state abbreviation + G-NAF postcode

Level/unit prefix, state abbreviation NSW before a 4-digit postcode; G-NAF data confirms the postcode/locality pair.

Input

Level 3, 80 Pacific Highway, North Sydney NSW 2060

Core version

Real Core token output

Core output
{
  "country": "AU",
  "tokens": [
    "STATE_CODE: NSW",
    "POSTAL_CODE: 2060",
    "CITY: NORTH SYDNEY",
    "UNIT: LEVEL 3",
    "HOUSE_NO: 80",
    "STREET_NAME: PACIFIC",
    "STREET_TYPE: HIGHWAY",
    "COUNTRY_CODE: AU"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "AU",
  "confidence": {
    "parse": 0.95,
    "gazetteer": 0.93,
    "final": 0.93
  },
  "needsReview": true,
  "iso20022Result": {
    "strtNm": "PACIFIC HIGHWAY",
    "bldgNb": "80",
    "pstCd": "2060",
    "twnNm": "NORTH SYDNEY",
    "ctry": "AU"
  }
}
CA

Canada (English) — multiple unit tokens

Two unit tokens (Unit 100, Suite 1002) ahead of the civic address; alternating letter-digit postal code.

Input

Unit 100, Suite 1002, 123 Bay Street, Toronto, ON M5H 2N2

Core version

Real Core token output

Core output
{
  "country": "CA",
  "tokens": [
    "POSTAL_CODE: M5H 2N2",
    "STATE_CODE: ON",
    "UNIT: UNIT 100",
    "UNIT: SUITE 1002",
    "HOUSE_NO: 123",
    "STREET_NAME: BAY",
    "STREET_TYPE: STREET",
    "CITY: TORONTO",
    "COUNTRY_CODE: CA"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "CA",
  "confidence": {
    "parse": 0.95,
    "gazetteer": 0.97,
    "final": 0.97
  },
  "needsReview": false,
  "iso20022Result": {
    "strtNm": "BAY STREET",
    "bldgNb": "123",
    "pstCd": "M5H 2N2",
    "twnNm": "TORONTO",
    "ctry": "CA"
  }
}
CA

Canada (Québec French) — street-type-first

French layout ('3700, rue Saint-Denis'); Québec French detection is included in Core.

Input

3700, rue Saint-Denis, Montreal, QC H2X 3L7

Core version

Real Core token output

Core output
{
  "country": "CA",
  "tokens": [
    "POSTAL_CODE: H2X 3L7",
    "STATE_CODE: QC",
    "CITY: MONTREAL",
    "HOUSE_NO: 3700",
    "STREET_TYPE: RUE",
    "STREET_NAME: SAINT-DENIS",
    "COUNTRY_CODE: CA"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "CA",
  "confidence": {
    "parse": 0.95,
    "gazetteer": 0.93,
    "final": 0.93
  },
  "needsReview": false,
  "iso20022Result": {
    "strtNm": "RUE SAINT-DENIS",
    "bldgNb": "3700",
    "pstCd": "H2X 3L7",
    "twnNm": "MONTREAL",
    "ctry": "CA"
  }
}
HK

Hong Kong — Pro-only parser

Flat/floor/building tokens, no postal code. HK parsing is a Pro-tier parser — see the Core output for what the free tier does with it.

Input

Flat 25, 12/F, Acacia Building, 150 Kennedy Road, Wan Chai, Hong Kong

Core version

Real Core token output

Core output
{
  "country": "HK",
  "tokens": [
    "STREET_NAME: FLAT 25",
    "CITY: 12/F",
    "CITY: ACACIA BUILDING",
    "CITY: 150 KENNEDY ROAD",
    "CITY: WAN CHAI",
    "CITY: HONG KONG",
    "COUNTRY_CODE: HK"
  ]
}
Pro version

Real Pro structured output

ISO 20022-oriented result
{
  "country": "HK",
  "confidence": {
    "parse": 0.82,
    "gazetteer": 0.97,
    "final": 0.97
  },
  "needsReview": false,
  "iso20022Result": {
    "strtNm": "KENNEDY ROAD",
    "bldgNb": "150",
    "twnNm": "HONG KONG",
    "ctry": "HK",
    "dstrct": "WAN CHAI"
  }
}
These are representative examples from the public showcase dataset, not a live parsing endpoint. Actual output may vary by package, version, enabled country data, and parser configuration. See showcase cases for edge cases, hostile input, and out-of-scope examples. Found an address we do not handle well? Submit an edge case.

Real-world address data is messy.

Addresses arrive from forms, PDFs, emails, spreadsheets, payment systems, KYC workflows, and legacy databases. They are often multilingual, incomplete, inconsistent, and hard to turn into reliable structured fields.

Key capabilities

Address Tokenizer combines deterministic parsing, confidence analysis, offline deployment, and Pro-level enrichment features for production address data workflows.

Address tokenization

Break messy address text into meaningful address components for downstream systems and review workflows.

Country detection & enrichment

Core: country hints, parser signals, and GeoNames city-to-country resolution.
Pro: curated reference datasets for enhanced detection and enrichment.

Universal fallback parser

When no dedicated country parser is available, the fallback parser extracts the best available structure and can mark records with needsReview = true.

Confidence analysis

Core: one overall confidence score.
Pro: field-level confidence so teams can see which parts are safe, uncertain, or reviewable.

Pro

Data healing & enrichment

Repair incomplete or inconsistent addresses using country-specific rules and curated reference datasets to improve data quality and standardization.

Pro
ISO

ISO 20022 mapping

Generate ISO 20022-compatible address fields from parsed results for payment modernization and financial messaging workflows.

JAR

Offline Java library

Deploy inside your own Java application, batch job, backend service, or internal data-quality tool without external API calls.

Pro

Explainable trace
logging

Understand how parsing decisions were made, including country detection, fallback behavior, and enrichment steps.

Pro

Commercial support

Support for enterprise adoption, private distribution, integration questions, and licensing conversations.

Supported countries

PackageCountry-specific parser coverageFallback behavior
CoreAustralia, Canada, Canada Quebec/French handling, France, Germany, United Kingdom, United StatesUniversal fallback parser for other countries
Pro TeamCore countries plus Brazil, Hong Kong, Japan, and SingaporeCurated reference-data enrichment when Core detection is uncertain, plus universal fallback parser where no country parser is available
Enterprise / OEMLicensed countries plus custom expansion by agreementDeployment, support, and country expansion terms by agreement
Country-specific fields, reference data, confidence output, and trace behavior may vary by package, country, and parser version.

Designed for

Address Tokenizer is built for applications that need deterministic, explainable, and offline address parsing — especially where messy address data must become structured, reviewable, and interoperable.

Designed for

  • Address parsing — extract structured components from free-text addresses.
  • Address tokenization — identify street names, house numbers, units, floors, districts, postal codes, and country signals.
  • Data normalization — convert inconsistent address formats into a consistent machine-readable structure.
  • Country-specific parsing — apply dedicated parser rules for supported countries, with fallback parsing for all others.
  • Data harmonization — standardize address data collected from different systems into a common format.
  • Confidence analysis — use Core overall confidence and Pro field-level confidence to identify records that may need review.
  • Data healing & enrichment Pro — improve incomplete or inconsistent addresses using country-specific rules and curated reference datasets.
  • ISO 20022 mapping Pro — generate ISO 20022-compatible address fields for payment modernization and financial messaging.

Not designed for

  • Geocoding — converting addresses into latitude and longitude coordinates.
  • Route planning or navigation — calculating driving routes or travel directions.
  • Postal deliverability verification — confirming whether a postal address can receive mail.
  • Official government address verification — replacing authoritative government address databases.
  • AI-generated address completion — guessing or inventing missing address information using generative AI.

Address Tokenizer focuses on turning messy address data into structured, explainable, and interoperable information — making downstream systems easier to integrate and automate.