Co APIrami-levy.co.il ↗
Access Rami Levy grocery data: search products, retrieve prices and nutritional info, browse categories, and fetch active promotions via 4 structured endpoints.
What is the Co API?
The Rami Levy API exposes 4 endpoints covering product search, full product detail, category hierarchy, and live promotions from Israel's rami-levy.co.il online grocery. The get_product endpoint returns 10+ fields per item including price in ILS, barcode, ingredients, and nutritional data. Use it to track grocery prices, monitor promotions, or build Hebrew-language product catalogs.
curl -X GET 'https://api.parse.bot/scraper/d1d8c29c-61f2-4bb4-bd4a-b59896f08300/search_products?page=1&query=%D7%97%D7%9C%D7%91' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace rami-levy-co-il-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Rami Levy Grocery SDK — bounded, re-runnable; every call capped."""
from parse_apis.rami_levy_co_il_api import RamiLevy, ProductNotFound
client = RamiLevy()
# Search for milk products, limited to 3 results
for product in client.products.search(query="חלב", limit=3):
print(product.name, product.price, product.in_stock)
# Drill-down: get full details for the first product found
item = client.products.search(query="שוקולד", limit=1).first()
if item:
try:
detail = item.details.get()
print(detail.name, detail.brand, detail.price)
print("Ingredients:", detail.ingredients)
except ProductNotFound as e:
print(f"Product gone: {e.product_id}")
# List categories
for category in client.categories.list(limit=3):
print(category.name, len(category.groups), "groups")
# List current promotions
for deal in client.promotion_deals.list(limit=3):
print(deal.product_name, deal.original_price, "→", deal.sale_price)
print("exercised: products.search / product.details.get / categories.list / promotion_deals.list")
Full-text search across Rami Levy grocery products. Returns paginated results with product name, price, stock status, image, and active promotions. Results are auto-iterated; each page returns up to 20 items.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination, 1-based. |
| queryrequired | string | Search term in Hebrew or English (e.g. חלב, שוקולד). |
{
"type": "object",
"fields": {
"page": "current page number",
"query": "search term echoed back",
"total": "total number of matching products",
"products": "array of product summaries with id, name, price, image_url, stock status, and sale info"
},
"sample": {
"data": {
"page": 1,
"query": "חלב",
"total": 575,
"products": [
{
"id": 3025,
"name": "חלב תנובה 3% שומן 1 ל' קרטון בד\"צ",
"sale": null,
"price": 7.2,
"barcode": 7290004131074,
"group_id": 198,
"in_stock": true,
"image_url": "https://img.rami-levy.co.il/product/7290004131074/large.jpg",
"sub_group_id": 22,
"department_id": 50
}
]
},
"status": "success"
}
}About the Co API
Product Search and Detail
The search_products endpoint accepts a query string in Hebrew or English (e.g. חלב, שוקולד) and returns paginated results up to 20 items per page. Each result includes a numeric product id, name, price, image_url, stock status, and any active sale info. Pass the page parameter to iterate through results; the response includes a total count so you can calculate how many pages to request.
The get_product endpoint takes a product_id from search results and returns the full record: brand, barcode, description, ingredients, in_stock flag, image_url, current price in ILS, and active sale details. The sale field is either a promotion object or null, making it straightforward to filter in-promotion items.
Categories and Promotions
get_categories requires no parameters and returns the complete store taxonomy as nested department objects, each containing groups and sub-groups. This is useful for building navigation trees or scoping product queries to specific departments.
get_promotions returns store-wide active deals. An optional store parameter lets you scope results to a specific Rami Levy branch. Each promotion object includes original price, sale price, validity period, and associated product info. The total_promotions field tells you how many deals are currently active across the queried store.
The Co API is a managed, monitored endpoint for rami-levy.co.il — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rami-levy.co.il changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official rami-levy.co.il API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track weekly price changes on staple groceries using
search_productsandget_productprice fields - Build a Hebrew-language grocery comparison tool using product names, prices, and brand data
- Monitor active promotions per store branch using
get_promotionswith thestoreparameter - Populate a nutrition database using the
ingredientsanddescriptionfields fromget_product - Map the Rami Levy product taxonomy for catalog or search UI work using
get_categories - Alert users when a specific product drops in price by polling
get_productfor itssalefield - Check real-time stock availability for a list of products using the
in_stockflag inget_product
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Rami Levy have an official public developer API?+
What does the `get_product` endpoint return beyond basic price?+
barcode, brand, description, ingredients text, in_stock boolean, image_url, price in ILS, and a sale object (or null) describing any active promotion. Product names are in Hebrew.How does pagination work in `search_products`?+
total field with the full match count and a page field echoing the current page. Pass the page integer parameter (1-based) to step through all results.Does the API return customer reviews or ratings for products?+
Can I retrieve promotions for a specific store branch?+
get_promotions endpoint accepts an optional store parameter. Without it, results default to a general store context. The response includes total_promotions, per-promotion sale prices, and validity periods. Order history or loyalty account data is not exposed; you can fork the API on Parse and revise it to target additional store-specific endpoints.