# Zap.co.il Scraper - Israel Price Comparison & Store Offers (`normdata/zap-scraper`) Actor

Scrape Zap.co.il, Israel's biggest price comparison site: products by category, keyword or brand with lowest price in shekels, store count, rating and specs. Includes single-store listings. Add every store's offer: price, shipping, delivery days, warranty, import type, store rating and buy link.

- **URL**: https://apify.com/normdata/zap-scraper.md
- **Developed by:** [Norm Data](https://apify.com/normdata) (community)
- **Categories:** E-commerce
- **Features:** Limited permissions
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.00 / 1,000 product or listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Norm Data](https://raw.githubusercontent.com/FabriAV/normdata/refs/heads/main/assets/banner_norm2.png)

## 🛒 Zap.co.il Scraper - Israel Price Comparison & Store Offers

Extract products and store listings from **Zap (זאפ)**, Israel's biggest price comparison site. Every result comes with its **lowest price in shekels, number of stores, rating, reviews, brand, category and key specs**. Single-store listings (phone cases, ink, spare parts) come with **the store, its rating, the shipping cost and the delivery time**. Turn on **Store offers** for **every store's offer on the product: price, shipping, delivery days, new, refurbished or Eilat only, official or parallel import, warranty and who gives it, store rating and the buy link**. Pick from **455 categories**, search by keyword or brand, filter by price, sort 6 ways, paste links, or run it on a schedule to get **only new results**.

> 👉 **Try it now:** press **Start**. The ready-made input gives you 10 product or listings in a few seconds.<br>
> 💰 **$0.014 per product or listing** on the Free plan (10 product or listings per run), from $0.013 on paid plans. [See pricing](#-pricing)

### ✨ Why this scraper?

> - **Whole categories**<br>
>   Every results page is read to the end, not just the first page.
>
> - **Every store of a product**<br>
>   The add-on reads the whole offer table, including warranty and import type, which Zap does not put in its structured data.
>
> - **Checked against the site**<br>
>   In our tests every price, store count, rating, spec and offer matched Zap's own pages.
>
> - **Gentle on the site**<br>
>   It paces itself to stay under Zap's rate limit, so runs finish instead of getting blocked.
>
> - **Nothing to set up**<br>
>   No proxy, no login, no browser.
>
> - **455 categories**<br>
>   In English (with their Hebrew names): phones, TVs, appliances, computers, home and garden, sports, music, beauty and health. Pick them from the list or type a name like Cell phones or מקררים.
>
> - **Apify platform**<br>
>   Schedule runs, get only new product or listings, export to Excel or CSV, use the API, or connect Google Sheets, Zapier and Make.

### ⚖️ How it compares

| Capability | This actor | Other Zap actors |
|---|:--:|:--:|
| Keyword search with lowest price | **yes** | yes |
| Whole categories (455, in English) | **yes** | no |
| Brand filter (full brand list) | **yes** | no |
| 6 sort orders | **yes** | no |
| Single-store listings with store, shipping and delivery | **yes** | no |
| Every store's offer with warranty, import type and buy link | **yes** | no |
| Specs, rating and reviews | **yes** | partly |
| Product and results page links | **yes** | no |
| Only new products monitoring | **yes** | no |
| Proxy | **none needed** | residential |

### 🚀 How to scrape Zap.co.il

1. Create a free Apify account.
2. Pick the filters you need, or keep the ready-made input.
3. Click **Start**.
4. Download the product or listings as Excel, CSV or JSON from the **Output** tab.

### 💰 Pricing

#### How much does it cost to scrape Zap.co.il?

You pay a one-time **$0.003** per run, plus a price for each product or listing saved (and for each add-on you turn on):

| Charged for | Free | Bronze | Silver | Gold+ |
| --- | --- | --- | --- | --- |
| **Product or listing**: One Zap product or store listing saved to the dataset | 0.014 | 0.013 | 0.012 | 0.011 |
| **Store offers**: One product saved with every store offer on its Zap page | 0.007 | 0.0065 | 0.006 | 0.0055 |

Example: 1,000 product or listings cost about **$13** on Bronze. No proxy or compute costs on top.

### 📦 What data you get

| Field | Description |
| --- | --- |
| `imageUrl` | Product photo. |
| `type` | product (one model compared across stores) or listing (one store's own item, common for cases, ink and spare parts). |
| `id` | Zap model id (listings: the store item id). |
| `name` | Name as Zap shows it: the Hebrew product type, then the model (טלפון סלולרי Apple iPhone 17 256GB). |
| `brand` | Brand. On accessory listings (cases, ink) Zap gives the brand of the device they fit, unless you filter by brand. |
| `category`, `categoryId` | Zap category in English (in Hebrew when it is not in the scraper's list) and its Zap code. |
| `lowestPrice`, `highestPrice` | Lowest store price in shekels, and the highest one. |
| `storeCount` | Number of stores selling it (1 for listings). |
| `store`, `storeId`, `storeRating`, `storeReviews` | For listings and products only one store sells: that store, its Zap id, its rating out of 5 and its review count. |
| `shipping`, `deliveryDays` | Same rows: shipping cost in shekels (0 = free) and delivery time in business days. |
| `rating`, `reviewCount` | Average rating out of 5 and the number of reviews. |
| `description` | Listings: the store's own text, when it says more than the name. |
| `searchQuery` | The search that found it: category, keyword and brand (null for product links). |
| `url` | Product page on Zap (listings: the store item link). |
| `specs` | Key specs as Zap lists them (Hebrew name → value), like screen size and storage. |
| `offers` | *(Store offers)* Every store's offer: store, storeId, price, shipping (0 = free), deliveryDays, inStoreOnly, condition (New, Refurbished, Eilat only), importType (Official, Parallel, Personal), warranty, warrantyMonths, warrantyBy, storeRating, storeReviews, storeReviewsLastYear, description, tags and buyUrl. |
| `scrapedAt` | When this row was saved. |
| `error` | Only present when a row failed. The fields that loaded are still there. |

Fields marked *Store offers* only appear when that add-on is on.

#### Example row (trimmed)

```json
{
  "imageUrl": "https://img.zap.co.il/pics/8/7/4/4/95844478c.gif",
  "type": "product",
  "id": "1253558",
  "name": "טלפון סלולרי Apple iPhone 17 256GB",
  "brand": "Apple",
  "category": "Electrical & Electronics > Communication > Cell phones",
  "categoryId": "e-cellphone",
  "lowestPrice": 2889,
  "highestPrice": 4378,
  "storeCount": 29,
  "rating": 5,
  "reviewCount": 2,
  "searchQuery": "Electrical & Electronics > Communication > Cell phones",
  "url": "https://www.zap.co.il/model.aspx?modelid=1253558",
  "specs": { "גודל מסך": "6.3 אינטש", "נפח אחסון פנימי": "256GB", "שנת הכרזה": "2025", "ערכת שבבים": "Apple A19" },
  "offers": [
    { "store": "TopMobile", "storeId": "5292", "price": 2889, "shipping": 0, "deliveryDays": 7, "inStoreOnly": false, "condition": "New", "importType": null, "warranty": "שנה אחריות", "warrantyMonths": 12, "warrantyBy": "גט סייל", "storeRating": 4.56 }
  ],
  "scrapedAt": "2026-10-30T04:01:05.271Z"
}
```

### ⚙️ Input

| Section | What it's for |
| --- | --- |
| **Maximum results** | Always first, caps the whole run. Empty means no limit. |
| **What to scrape** | Categories, keywords and brands. |
| **Filters** | Sort by, minimum price (₪) and maximum price (₪). |
| **Add-ons** | Store offers. |
| **Monitoring** | Only new products and monitor name. |
| **Links** | Links instead of the fields above. Filters are ignored with links. |

#### Input examples

**Every cell phone on Zap (the whole category):**

```json
{
  "categories": ["e-cellphone"]
}
```

**Every store's price, shipping and warranty for the iPhone 17:**

```json
{
  "keywords": ["iphone 17"],
  "includeOffers": true,
  "maxItems": 50
}
```

**Samsung phones from ₪1,000 to ₪3,000, cheapest first:**

```json
{
  "categories": ["e-cellphone"],
  "brands": ["Samsung"],
  "minPrice": 1000,
  "maxPrice": 3000,
  "sort": "priceLow"
}
```

**Refrigerators with the most stores:**

```json
{
  "categories": ["Refrigerators"],
  "sort": "stores",
  "maxItems": 200
}
```

**New TVs each day (schedule it):**

```json
{
  "categories": ["e-tv"],
  "onlyNew": true,
  "monitorName": "tvs"
}
```

**Pages you already have:**

```json
{
  "startUrls": [
    { "url": "https://www.zap.co.il/models.aspx?sog=e-cellphone&db188396=1951979" },
    { "url": "https://www.zap.co.il/model.aspx?modelid=1253558" }
  ],
  "includeOffers": true
}
```

### 🔗 Related scrapers

> - [Websosanh Scraper](https://apify.com/normdata/websosanh-scraper): Vietnam Price Comparison & Store Offers.
> - [Hinnavaatlus Scraper](https://apify.com/normdata/hinnavaatlus-scraper): Estonia Price Comparison.
> - [Buscapé & Zoom Price Scraper](https://apify.com/normdata/buscape-price-scraper)
> - [Knasta Scraper](https://apify.com/normdata/knasta-scraper): Chile & Peru Price Tracker & Real Deals.

### ❓ FAQ and troubleshooting

#### Is there a Zap.co.il API? Do I need an API key?

> Zap.co.il has no public data API for this. This Actor works as a Zap.co.il API alternative: it reads the public pages and gives you clean JSON, CSV or Excel, with no API key, no login and no code to maintain. You can also call it from your own code with the Apify API, or from an AI agent through MCP.

#### Why do I get only 10 product or listings?

> On the Apify free plan each run saves up to 10 results, so you can try it before paying. Any paid plan removes the limit.

#### What are the limits?

> - Zap blocks an IP for an hour after a burst of requests, so the scraper reads at a steady pace (about 1,500 results a minute, or about 100 a minute with Store offers). If Zap still refuses, the run stops and keeps what it saved.
> - Prices are what Zap shows at the time of the run; stores update them during the day.
> - Names, specs and store texts are in Hebrew, as on Zap. Categories are in English.
> - Only public pages are read. No login, no personal data.

#### Is this an official Zap.co.il tool?

> No. It is independent and not affiliated with Zap.co.il. It reads only data Zap.co.il publishes on its public pages, at a moderate pace. Use the data in line with Zap.co.il's terms and the laws that apply to you.

### 📧 Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

# Actor input Schema

## `maxItems` (type: `integer`):

Stop after this many products in total. Leave empty for no limit. The Apify Free plan is always capped at 10.

## `categories` (type: `array`):

Zap categories (455, in English; type to search).

## `keywords` (type: `array`):

Search words in Hebrew or English, like iphone 17, airpods or מקרר. Alone they search all of Zap; with categories they search inside them.

## `brands` (type: `array`):

Brand names, like Apple, Samsung or LG, used with categories or keywords. Any spelling works: the scraper finds the name in Zap's brand filter. A brand Zap does not list there is skipped (with a warning).

## `sort` (type: `string`):

Order of the results.

## `minPrice` (type: `integer`):

Only products whose lowest price is at least this, in shekels.

## `maxPrice` (type: `integer`):

Only products whose lowest price is at most this, in shekels.

## `includeOffers` (type: `boolean`):

Every store's offer for the product (one more page each): store, price, shipping, delivery days, new/refurbished/Eilat, official or parallel import, warranty and who gives it, store rating and reviews, and the buy link. Adds the highest price.

## `onlyNew` (type: `boolean`):

Skip products saved by earlier runs with the same monitor name.

## `monitorName` (type: `string`):

Runs with the same name share their history. Use a different name for each schedule.

## `startUrls` (type: `array`):

Zap category or filtered pages (zap.co.il/models.aspx?sog=e-cellphone\&db188396=1951979), search pages (zap.co.il/search.aspx?keyword=airpods) or product pages (zap.co.il/model.aspx?modelid=1253558). Store offers on product links follow the add-on. Filters are ignored with links.

## Actor input object example

```json
{
  "maxItems": 10,
  "categories": [
    "e-cellphone"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "categories": [
        "e-cellphone"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("normdata/zap-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "categories": ["e-cellphone"],
}

# Run the Actor and wait for it to finish
run = client.actor("normdata/zap-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "categories": [
    "e-cellphone"
  ]
}' |
apify call normdata/zap-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,normdata/zap-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NnAEqT3hRStwaRDCr/builds/VS3ElgBFGBIbCS62r/openapi.json
