Israeli Address Normalizer & Matcher avatar

Israeli Address Normalizer & Matcher

Pricing

Pay per usage

Go to Apify Store
Israeli Address Normalizer & Matcher

Israeli Address Normalizer & Matcher

Clean messy Israeli addresses (Hebrew/English) and match them to official settlement and street codes from data.gov.il open data. Not an official government service.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Refael Sheinker

Refael Sheinker

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Categories

Features

Limited permissions

Share

Turn messy, free-text Israeli addresses into clean, structured records. Each address is matched to its settlement code (סמל ישוב) and street code (סמל רחוב) from the public street and settlement lists on data.gov.il.

This is not an official government service. It is an independent tool built on open data from data.gov.il. It is not affiliated with, endorsed by or certified by the Israeli government, the Central Bureau of Statistics or the Population and Immigration Authority. Results are best-effort matches, not official address validation.

What it does

  • Accepts addresses in Hebrew, English or mixed, in any word order: הרצל 40 טירת כרמל, Tirat Carmel, 40 Herzl St, שד' רוטשילד 12 ת"א.
  • Handles common mess:
    • abbreviations (רח', שד', סמ', ת"א, פ"ת, ראשל"צ, י-ם…)
    • full and defective spelling (כתיב מלא/חסר)
    • different quote and gershayim characters, and missing quotes
    • reversed name order in the official list (e.g. "אשכול לוי")
    • apartment, floor and entrance noise, postal codes, and "Israel" at the end
    • numbered streets (רח 3014)
    • known alternative street names, taken from the official synonyms file
  • Returns the official Hebrew names, the English settlement name where the source has one, the house number, a confidence score and flags for ambiguous, unmatched and low-confidence results.

Input

{
"addresses": [
"הרצל 40 טירת כרמל",
"רח' דיזנגוף 50 דירה 4, תל-אביב",
"12 Ben Yehuda St, Jerusalem",
"קיבוץ יגור"
],
"minConfidence": 0.6,
"includeAlternatives": true
}
FieldTypeDefaultMeaning
addressesstring[]—Addresses to match, one per item.
minConfidencenumber 0–10.6Results below this score get lowConfidence: true. They are still returned.
includeAlternativesbooleantrueInclude up to 3 runner-up candidates.

Output (one dataset item per address)

{
"input": "הרצל 40 טירת כרמל",
"settlementCode": 2100,
"settlementName": "טירת כרמל",
"settlementNameEn": "TIRAT KARMEL",
"streetCode": 434,
"streetName": "הרצל",
"streetNameEn": null,
"houseNumber": "40",
"normalizedAddress": "הרצל 40, טירת כרמל",
"confidence": 1,
"settlementMatchMethod": "name",
"streetMatchMethod": "exact",
"unmatchedSettlement": false,
"unmatchedStreet": false,
"ambiguous": false,
"missingHouseNumber": false,
"poBox": false,
"lowConfidence": false,
"alternatives": [],
"dataSnapshot": "2026-10-28T19:27:27.822Z"
}
  • confidence: 1.0 means an exact match on the official names. Lower scores mean spelling, phonetic or partial matching was needed. An ambiguous match is scored down.
  • ambiguous: two candidates scored almost the same. Check alternatives.
  • unmatchedSettlement / unmatchedStreet: no candidate was good enough. Addresses with only a settlement (e.g. a kibbutz) return the settlement with unmatchedStreet: true.
  • A run summary (counts, data snapshot date, source IDs) is saved to the key-value store as SUMMARY.

Accuracy (v0.1, snapshot 2026-10-28)

  • Blind hand-written holdout set (35 messy addresses, written before the first run): 33/35 fully correct (94.3%) on the first run. It reached 35/35 after two general fixes.
  • Synthetic stress test: 3,000 random real streets written in messy ways (missing or extra yod/vav, "רח'" prefix, city first, no quotes, apartment noise). 99.1% exact settlement+street match, and about half of the misses were flagged.
  • Development set (45 addresses used for tuning): 45/45.

These numbers come from small test sets. Your data may score differently.

Limitations

  • No English street names. The source lists streets in Hebrew only, so streetNameEn is always null. English street input is matched phonetically (e.g. "Ben Yehuda" → בן יהודה), which can be wrong for unusual spellings.
  • English settlement names come from the source, which cuts them at 20 characters (e.g. MODI'IN-MAKKABBIM-RE).
  • No geocoding (no coordinates), and no check that a house number actually exists on the street.
  • A street with no settlement cannot be resolved reliably.
  • A settlement name that is also a street name can confuse an address with no commas.
  • The official list sometimes has several codes with the same street name in one settlement. Check alternatives when ambiguous is true.

Data source and attribution

Data: data.gov.il, Israel's national open data portal, from these datasets:

The data is used under the data.gov.il terms of use: https://data.gov.il/terms-of-use. The Actor bundles a snapshot (the date is shown in every result as dataSnapshot), and the maintainer refreshes it from the public CKAN API with npm run refresh-data. The data has been processed (normalised and indexed) and is not presented as official. Use of the data does not imply any sponsorship or endorsement by the State of Israel.

Local development

npm install
npm run refresh-data # optional: pull the latest lists from data.gov.il
npm test # dev set, blind holdout set, synthetic stress test
apify run # or: node src/main.js, with storage/key_value_stores/default/INPUT.json