Every Israeli price,
one pip install away

israeli-prices is a Python client for Israel's price-transparency data — prices, promotions and stores of 31 retail chains, parsed into typed objects.

$ pip install israeli-prices
import israeli_prices as ilp

# every chain covered by the law
ilp.list_chains()

# full store list of a chain
stores = ilp.get_stores("shufersal")
# 417 branches

# latest price snapshot for one store
prices = ilp.get_prices("super-pharm", store_id="142")
# PriceItem(item_code='7290006651204',
#   name='U LACTIN HAND CREAM 100ML',
#   price=Decimal('35.90'), ...)

# promotions, same call shape
promos = ilp.get_promos("super-pharm", store_id="142")
31/32

chains of the government roster live — re-verified every night

5

portal families — shared logins, JSON APIs, signed URLs — behind one API

3

datasets — prices, promotions and stores, every file type the law mandates

What you get

Exhaustive, standardized, ready to work with.

01 — Exhaustive

Every chain, every file

The full government roster — supermarkets, pharmacies, convenience, online-only — and all five file types the law mandates, from daily full snapshots to hourly incremental updates.

ilp.list_chains()
# 32 chains registered, 31 live

ilp.list_files("rami-levy",
               file_type=ilp.FileType.PROMO_FULL)
# every promotion file currently
# published on the portal
02 — Standardized

Five portal engines, one schema

Logins, signed URLs, session expiry, encodings from UTF-16 to ZIP-archives-named-.gz — every portal quirk handled, every XML dialect normalized into the same typed objects. Prices as Decimal, Hebrew preserved, promotions with their full group structure.

# same call, any chain
ilp.get_promos("good-pharm", store_id="048")
ilp.get_promos("rami-levy",  store_id="001")

# -> PromoFile
#    Promotion(promotion_id='26285',
#      discounted_price=Decimal('69.9'),
#      items=[...])
03 — Ready to use

From pip to DataFrame in a minute

Typed objects out of the box, optional pandas export for analysis — and the whole library is re-verified against the live portals every night, so you know it works before your pipeline does.

prices = ilp.get_prices("shufersal",
                        store_id="001")
df = prices.to_df()
len(df)
# 6558 prices, one call

# nightly health report: 31/32 chains ok

Every chain the law covers

One adapter per portal family — 31 of 32 chains live.

ChainPortalStatusStores
Shufersal (incl. Be Pharm) Self-hosted live 417
Super-Pharm Self-hosted live 306
Wolt Market Self-hosted live 34
Carrefour Self-hosted live 147
Hatzi Hinam Self-hosted live 13
Rami Levy Cerberus live 99
Tiv Taam Cerberus live 54
Yochananof Cerberus live 51
Osher Ad Cerberus live 24
Dor Alon Cerberus live 156
Keshet Teamim Cerberus live 27
Super Cofix Cerberus live 34
Politzer Cerberus live 8
Stop Market Cerberus live 11
Fresh Market Cerberus live 47
Salach Dabach Cerberus live 10
Super Yuda Cerberus live 26
Yellow Cerberus live 242
Good Pharm Bina live 82
Super Bareket Bina live 14
King Store Bina live 29
Maayan 2000 Bina live 38
Meshnat Yosef Bina live 4
Shefa Birkat Hashem Bina live 22
Shuk Hayir Bina live 26
Super Sapir Bina live 68
Zol VeBegadol Bina live 35
City Market Bina live 28
Victory Laib catalog live 70
Mahsanei HaShuk Laib catalog live 71
Het Cohen Laib catalog live 5
Nativ HaHesed One-off down

Be Pharm publishes inside the Shufersal feed. Nativ HaHesed's portal has answered HTTP 500 since July 2026 — it is registered and will be enabled the day it comes back. Full details, per-chain quirks and geo-restrictions in the chain matrix. Branch counts as published in each chain's latest Stores file (August 25, 2026).

Questions, answered straight

What is Israel's price-transparency law?

Since 2015, Israeli law requires large retailers — supermarkets, and since 2017 large drugstore chains — to publish machine-readable files of their full prices, promotions and store lists: daily snapshots before store opening, and incremental updates within an hour of any register change. The files are public, free, and no registration is required.

What exactly does the library do?

It fetches those files from each chain's portal — handling five different portal engines, logins, signed URLs, session expiry, encodings from UTF-16 to ZIP-archives-named-.gz — and parses every XML dialect into one set of typed Python objects. Prices as Decimal, Hebrew preserved, promotions with their full group structure.

It does nothing else: no scraping of retail websites, only the official transparency files.

Why is it free?

The data is public by law, and fetching it cleanly is plumbing — plumbing should be open. Publishing our client also keeps us honest: you can read exactly how every file is fetched and parsed, and verify it against the portals yourself. MIT licensed, commercial use included, no strings.

What does RxRadar sell, then?

Use israeli-prices to fetch the raw government files yourself. Use RxRadar when you need the finished index: cleaned, matched across chains, historized — and enriched with what the files don't contain: product descriptions and images, category rankings, share of shelf, banners, ratings. Dashboards and an API, updated run after run.

Request access →

israeli-prices is forever free and open source

MIT licensed, built in the open, verified against the portals every night.

View on GitHub