# Vomar Scraper (`sleepmodesystems/vomar`) Actor

Vomar product API alternative: all ~6,300 vomar.nl products with prices, unit prices, every EAN barcode per product (13,000+), brand, BIO and Beter Leven labels and categories, in seconds, no proxy. Checked against Vomar's own product total. Keyword and barcode search included.

- **URL**: https://apify.com/sleepmodesystems/vomar.md
- **Developed by:** [Sleep Mode Systems](https://apify.com/sleepmodesystems) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

Vomar Scraper extracts products from Vomar Voordeelmarkt (https://www.vomar.nl): prices, unit prices, **every barcode Vomar lists per product**, brand, size, BIO and Beter Leven labels, and Vomar's category tree. A full run reads all 6,325 products in two requests and checks the count against Vomar's own product total. It is a Vomar prijslijst you can download as CSV or Excel, or use as a Vomar product API.

**Price: $1.00 per 1,000 products. A full run reads all 6,325 products in about 4 seconds on Apify, with no proxy.**

### What does the Vomar Scraper extract?

| Data     | Fields                                            | Filled in last full run                                           |
| -------- | ------------------------------------------------- | ----------------------------------------------------------------- |
| Identity | `externalId`, `name`, `brand`, `ean`, `gtins`     | 100% id, 6,324 names, 6,322 barcodes (13,425 in all), 94.4% brand |
| Size     | `sizeText`, `quantity`, `unit`                    | 100% size text, 6,322 parsed quantity and unit                    |
| Price    | `price`, `currency`, `unitPrice`, `unitPriceUnit` | 100% price, 6,322 unit prices                                     |
| Labels   | `organic`, `badges`, `soldByWeight`               | 291 BIO, 192 Beter Leven, 234 sold by weight                      |
| Category | `categoryPath`, `categoryIds`, `category`         | 100%: 10 departments, 85 main groups, 341 subgroups               |
| Links    | `url`, `imageUrl`                                 | 100%                                                              |
| Run      | `searchTerm`, `scrapedAt`                         | 100%                                                              |

Last full run: 2026-11-05 on Apify, 6,325 products in 4 seconds, 2 requests, both HTTP 200.

Vomar's deals are not in this data: Vomar publishes them only in its PDF folder (see below), so the deal fields are always `null`.

### Who uses the Vomar Scraper?

- **Price comparison sites** load the full Vomar prijslijst and match it to Albert Heijn, Jumbo, Dirk, PLUS, DekaMarkt and Hoogvliet on barcodes: Vomar lists 13,425 of them, so a product matches on any of its label versions.
- **Brand and category managers** follow their products' shelf price at Vomar, and its own brands (`G'woon` 970 products, `Vomar` 420).
- **Retail and market analysts** track a regional chain's price level, assortment size and category mix week by week.
- **Food and diet apps** use Vomar's BIO and Beter Leven labels and its category tree.
- **Developers** who need a Vomar API without maintaining one call this actor from JavaScript, Python or REST.

### How much does the Vomar Scraper cost?

Pay per event. You pay for products written to the dataset and a tiny start fee. Platform usage is included.

| Event                      | Price                                  |
| -------------------------- | -------------------------------------- |
| Product written to dataset | $0.001                                 |
| Actor start                | $0.00005 per run at the default 512 MB |

#### Vomar Scraper cost examples

| Scenario                                | Products  | Cost        |
| --------------------------------------- | --------- | ----------- |
| Small test, `maxItems: 100`             | 100       | $0.10       |
| Keyword search, `keywords: ["melk"]`    | 166       | $0.17       |
| Barcode lookup, 100 barcodes in one run | up to 100 | up to $0.10 |
| Full catalog                            | 6,325     | $6.33       |
| Full catalog every week, 4 runs a month | 25,300    | $25.30      |
| Full catalog every day, 30 runs a month | 189,750   | $189.75     |

Product counts are from runs on 2026-11-05. Set `maxItems` to cap any run. Set the run's maximum charge in Apify to cap spend; the actor stops cleanly when it is reached and reports how many products it got.

### How do you configure the Vomar Scraper?

| Field      | Type             | Default | Meaning                                                             |
| ---------- | ---------------- | ------- | ------------------------------------------------------------------- |
| `keywords` | array of strings | empty   | Search for these words instead of reading the full catalog.         |
| `eans`     | array of strings | empty   | Look up these barcodes instead of reading the full catalog.         |
| `maxItems` | integer          | 100000  | Stop after this many products. The default covers the full catalog. |
| `minItems` | integer          | 1       | Fail the run if fewer products were found.                          |

With `keywords` and `eans` empty, the actor reads the full catalog.

### How do you get the full Vomar assortiment with the Vomar Scraper?

Use it for a complete Vomar product and price list. Leave the input empty. The actor reads Vomar's category tree and every product, two requests in all, and checks that it got as many products as Vomar's own total says.

```json
{}
```

### How do you search Vomar by keyword with the Vomar Scraper?

Use it when you need a product group. One Vomar search runs per keyword and each result is stored once: `melk` returned 166 products and `halfvolle melk` 23, all among the 166; `bier` returned 115. Vomar's search returns its best matches, at most about 200 a keyword, not every match: `vomar` returned 152 of the 420 products of the Vomar brand. For a whole brand, label or category, run the full catalog and filter it.

```json
{
    "keywords": ["melk", "halfvolle melk"]
}
```

### How do you look up Vomar products by EAN barcode with the Vomar Scraper?

Use it to check the price of products you already know. The actor reads the whole catalog, one request, and matches each barcode against every barcode Vomar lists for a product, primary or additional. Leading zeros are optional. The 3 examples below took 2 seconds on Apify; a barcode not in the catalog gives no item and `expected: 0` in the run summary.

```json
{
    "eans": ["8718989029883", "08718734490470", "25004052"]
}
```

### Which fields does the Vomar Scraper output?

Source: **Vomar** = Vomar's value unchanged. **Derived** = computed by this actor. **Fixed** = same in every item. **Input** = from your input. Missing values are `null`, never an empty string.

| Field               | Source  | Meaning                                                                                             |
| ------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| `chain`             | Fixed   | Always `vomar`.                                                                                     |
| `store`             | Fixed   | Always `null`: the prices vomar.nl shows.                                                           |
| `externalId`        | Vomar   | Vomar article number, such as `109795`.                                                             |
| `ean`               | Vomar   | Primary barcode, mostly EAN-13.                                                                     |
| `gtins`             | Vomar   | Every barcode Vomar lists for the product, primary first.                                           |
| `name`              | Vomar   | Product name, with brand and often size, such as `Melkan Lactosevrije Melk 1l`.                     |
| `brand`             | Vomar   | Brand.                                                                                              |
| `sizeText`          | Vomar   | Size as Vomar writes it, such as `500 gram`, `6 stuks` or `per stuk`.                               |
| `packCount`         | Fixed   | Always `null` on Vomar; kept for the same field on other chains.                                    |
| `quantity`          | Derived | Amount in the size, such as 500; 1 for `per stuk`.                                                  |
| `unit`              | Derived | Unit of `quantity`: `g`, `kg`, `ml`, `l` or `stuk`.                                                 |
| `price`             | Vomar   | Price in EUR as vomar.nl shows it.                                                                  |
| `currency`          | Fixed   | Always `EUR`.                                                                                       |
| `unitPrice`         | Derived | Price per kg, litre or piece in EUR: Vomar gives none. 4 decimals when under a cent.                |
| `unitPriceUnit`     | Derived | Unit of `unitPrice`: `kg`, `l` or `stuk`.                                                           |
| `promoPrice`        | Fixed   | Always `null`: Vomar's deals are not in its product data.                                           |
| `promoText`         | Fixed   | Always `null`, as above.                                                                            |
| `promoType`         | Fixed   | Always `null`, as above.                                                                            |
| `promoLabels`       | Fixed   | Always `null`, as above.                                                                            |
| `promoStart`        | Fixed   | Always `null`, as above.                                                                            |
| `promoEnd`          | Fixed   | Always `null`, as above.                                                                            |
| `organic`           | Vomar   | `true` with Vomar's `BIO` label.                                                                    |
| `nutriScore`        | Fixed   | Always `null`: Vomar gives no Nutri-Score.                                                          |
| `badges`            | Vomar   | Vomar's labels: `BIO`, `Beter Leven keurmerk 1 ster`, `2 ster` or `3 ster`.                         |
| `soldByWeight`      | Vomar   | `true` for cheese, meat and fish packed by weight, and loose fruit and vegetables priced by weight. |
| `categoryPath`      | Vomar   | Department, main group and subgroup, such as `Vers/Fruit/Exotisch Fruit`.                           |
| `categoryIds`       | Vomar   | Vomar's numbers for the same three.                                                                 |
| `category`          | Vomar   | Department, such as `Vers`.                                                                         |
| `url`               | Derived | Product page on vomar.nl, in the website's own address form.                                        |
| `imageUrl`          | Vomar   | Product image.                                                                                      |
| `inStock`           | Fixed   | Always `null`: Vomar gives no stock information.                                                    |
| `availabilityLabel` | Fixed   | Always `null` on Vomar.                                                                             |
| `searchTerm`        | Input   | The keyword or barcode that found the product; `null` in full-catalog mode.                         |
| `scrapedAt`         | Fixed   | Time the product was read, ISO 8601.                                                                |

#### Vomar Scraper output example

```json
{
    "chain": "vomar",
    "store": null,
    "externalId": "102881",
    "ean": "5024121369117",
    "gtins": ["5024121369117", "8718285800063", "5024121885303"],
    "name": "Organix Chips",
    "brand": "Organix",
    "sizeText": "20 gram",
    "packCount": null,
    "quantity": 20,
    "unit": "g",
    "price": 1.25,
    "currency": "EUR",
    "unitPrice": 62.5,
    "unitPriceUnit": "kg",
    "promoPrice": null,
    "promoText": null,
    "promoType": null,
    "promoLabels": null,
    "promoStart": null,
    "promoEnd": null,
    "organic": true,
    "nutriScore": null,
    "badges": ["BIO"],
    "soldByWeight": false,
    "categoryPath": "Baby & Kind/Baby- en Kindervoeding/Koekjes & Tussendoortjes",
    "categoryIds": ["10", "100", "10"],
    "category": "Baby & Kind",
    "url": "https://www.vomar.nl/producten/baby-kind/baby-en-kindervoeding/organix-chips/102881",
    "imageUrl": "https://d3vricquk1sjgf.cloudfront.net/product-images/75a4e0d0-a9ac-4014-a33c-511cd21152c8.png",
    "inStock": null,
    "availabilityLabel": null,
    "searchTerm": null,
    "scrapedAt": "2026-11-05T11:10:00.604Z"
}
```

### How does the Vomar Scraper report on its run?

Every run saves a `SUMMARY` record in its key-value store. From the last full run:

```json
{
    "mode": "catalog",
    "itemsPushed": 6325,
    "distinctIds": 6325,
    "productsRead": 6325,
    "catalogTotal": 6325,
    "outsideTree": 0,
    "barcodesMissing": 3,
    "namesMissing": 1,
    "stoppedAtChargeLimit": false,
    "blocked": false,
    "eanCatalogScan": false,
    "durationSec": 4,
    "requests": 2,
    "statusCodes": { "200": 2 },
    "errors": [],
    "retries": [],
    "categories": [{ "id": 50, "name": "Vers", "collected": 1768 }],
    "searches": []
}
```

| Field                              | Meaning                                                                                            |
| ---------------------------------- | -------------------------------------------------------------------------------------------------- |
| `itemsPushed`, `distinctIds`       | Products stored. Only products Apify accepted count.                                               |
| `productsRead`                     | Distinct products read, including those left out by `maxItems` or your charge limit.               |
| `catalogTotal`                     | Vomar's own count of its products.                                                                 |
| `outsideTree`                      | Products whose group is not in Vomar's category tree; they have no category or address.            |
| `barcodesMissing`                  | Products with no barcode of 8 digits or more: 3 beer crates.                                       |
| `namesMissing`                     | Products Vomar lists without a name: 1.                                                            |
| `eanCatalogScan`                   | `true` when barcodes were looked up in the catalog.                                                |
| `categories`                       | Products per department.                                                                           |
| `searches`                         | In search mode, the products found and collected per keyword or barcode.                           |
| `stoppedAtChargeLimit`             | `true` when the run stopped at your maximum charge.                                                |
| `blocked`                          | `true` when Vomar refused twice in a row (HTTP 403); the run then fails.                           |
| `statusCodes`, `retries`, `errors` | Every HTTP status received, every retry with its reason, and requests that failed after 3 retries. |

A full-catalog run is suspect when `productsRead` is below `catalogTotal`, when `outsideTree` is above 0, when `blocked` is `true`, or when `statusCodes` holds anything other than 200. Set `minItems` to make a bad run fail outright.

### How does the Vomar Scraper compare to other Vomar scrapers?

|                            | Vomar Scraper                      | harvestedge/dutch-supermarkets-all-11 |
| -------------------------- | ---------------------------------- | ------------------------------------- |
| Price per 1,000            | $1.00                              | $5.00                                 |
| Full catalog               | yes, default, about 4 seconds      | no, keyword search                    |
| EAN barcodes               | yes, all 13,425 Vomar lists        | no                                    |
| BIO and Beter Leven labels | yes                                | no                                    |
| Category tree              | yes, 3 levels                      | no                                    |
| Unit price                 | yes, computed                      | yes                                   |
| Keyword and barcode search | yes                                | keyword only                          |
| Completeness check         | yes, against Vomar's product total | no                                    |
| Proxy                      | none                               | not stated                            |

Figures read from the actor's public page on 2026-11-05. It is the only other actor on the Apify Store that covers Vomar.

### Things to know about Vomar data from the Vomar Scraper

- **Vomar's deals are not in its product data.** Vomar publishes its weekly deals (folder deze week, dagknallers) only as PDF flipbooks with no product data, and its website's product pages show regular prices. So `promoPrice`, `promoText` and the other deal fields are always `null`; for deals, read Vomar's folder.
- **Many barcodes per product.** Vomar lists additional barcodes for other label versions and older codes, and for fresh produce the barcodes of every grower's pack: 78 on white grapes and on cherry tomatoes. `gtins` holds all 13,425; barcode lookups match any of them.
- **333 barcodes are in-store codes.** Products weighed or packed in store carry codes starting with 2, which match no other chain.
- **3 beer crates have no barcode.** Heineken 0% Pils, Grolsch Pils and De Klok Pils crates (24x300ml) carry only a 3-digit Vomar code, so their `ean` is `null`. Other crates have a real barcode among their additional ones, which the actor uses.
- **One product has no name.** Article 241784 (€1.79, barcode 4014400400007) has no name in Vomar's data; it is kept with `name: null`.
- **Vomar gives no unit price.** `unitPrice` is computed from the price and size. Spices reach real unit prices above €1,000 per kg, such as Verstegen Saffraan, 0.05 gram for €1.49; per-piece prices under a cent keep 4 decimals, such as 300 cotton buds for €0.89 at €0.003 a piece.
- **Search returns best matches, not every match.** Vomar's search gives at most about 200 results a keyword, ranked: `vomar` returned 152 of the 420 Vomar-brand products, `g'woon` 180 of 970 G'woon products, `biologisch` 17 while 291 carry the BIO label. For a whole brand, label or category, filter the full catalog.
- **No Nutri-Score, ingredients or stock.** Vomar's product data holds none of them.

### Is it legal to use the Vomar Scraper?

This actor reads publicly available data only. Vomar product data contains no personal data. It sends one request at a time, two for a full catalog, keeps to Vomar's robots.txt and does not bypass any login or paywall. You are responsible for how you use the data, including any terms that apply to you. See Apify's [guide to web scraping legality](https://blog.apify.com/is-web-scraping-legal/).

### Frequently asked questions about the Vomar Scraper

#### Can I get the Vomar prijslijst as CSV or Excel?

Yes. Every run's dataset downloads as CSV, Excel, JSON or XML from Apify, or through the API.

#### How often should I run it?

As often as you need prices: a full run takes about 4 seconds and costs $6.33. Once a week keeps a price list current; once a day catches every price change.

#### Does it need proxies?

No. Requests go straight to Vomar, one at a time: the last full run got HTTP 200 on both requests from Apify's servers. If Vomar answers 403, the actor pauses 60 seconds and tries once more; a second 403 ends the run with `blocked: true`.

#### Can I schedule it and send results somewhere?

Yes. Use Apify Schedules, and a webhook or integration to send each run's dataset to your database, Google Sheets, Slack or Notion.

#### Does it work with the Apify API and SDK?

Yes. Any Apify client (JavaScript, Python, REST) can start the actor and read the dataset.

#### Does the Vomar Scraper give Vomar aanbiedingen?

No. Vomar publishes its deals only in its PDF folder, not in its product data, so the actor gives regular prices. The deal fields stay in the output, always `null`, so datasets combine with the other chains' scrapers.

#### Is there an official Vomar API?

No public one. Vomar's website reads its products from a gateway that is not documented for outside use. This actor reads it for you and returns a stable set of fields, so you do not maintain the integration.

#### Can I get Vomar's biologische producten?

Yes. Run the full catalog and filter on `organic: true`: 291 products carried Vomar's BIO label in the last run, 120 of them in Voorraadkast and 69 in Vers.

#### Can I get Vomar's bier assortiment?

Yes. Run the full catalog and filter `categoryPath` on `Bier, Wijn & Sterke Drank/Bier`: 125 products in the last run, next to 207 wines, ports and sherries and 174 spirits. A keyword search for `bier` returned 115 of those 125.

#### Can I compare Vomar prices with Albert Heijn, Jumbo, Dirk, PLUS, DekaMarkt and Hoogvliet?

Yes. The scrapers for those chains by Sleep Mode Systems output the same fields. Match on barcodes (Albert Heijn writes them with a leading zero, so compare without leading zeros), using every code in Vomar's `gtins`, and compare `unitPrice`.

### Other scrapers by Sleep Mode Systems

| Actor                                                                   | What it extracts                                                       | Price per 1,000 |              |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------- | --------------- | ------------ |
| Vomar Scraper                                                           | Vomar products: prices, every EAN barcode, BIO, categories             | $1.00           | you are here |
| [Albert Heijn Scraper](https://apify.com/sleepmodesystems/albert-heijn) | Albert Heijn products: prices, Bonus deals, EAN, Nutri-Score           | $1.00           |              |
| [Jumbo Scraper](https://apify.com/sleepmodesystems/jumbo)               | Jumbo products: prices, deals with dates, EAN, organic, shelf life     | $1.50           |              |
| [Dirk Scraper](https://apify.com/sleepmodesystems/dirk)                 | Dirk products: prices, next week's deals, EAN, Nutri-Score             | $2.00           |              |
| [PLUS Scraper](https://apify.com/sleepmodesystems/plus)                 | PLUS products: prices, deals with dates, EAN, Nutri-Score, vegan       | $1.50           |              |
| [DekaMarkt Scraper](https://apify.com/sleepmodesystems/dekamarkt)       | DekaMarkt products: prices, next week's deals, EAN, organic            | $2.00           |              |
| [Hoogvliet Scraper](https://apify.com/sleepmodesystems/hoogvliet)       | Hoogvliet products: prices, next week's deals, EAN, ingredients, vegan | $2.00           |              |
| [Poiesz Scraper](https://apify.com/sleepmodesystems/poiesz)             | Poiesz products: prices, deals with dates, EAN, deposit, ingredients   | $1.50           |              |
| [Ekoplaza Scraper](https://apify.com/sleepmodesystems/ekoplaza)         | Ekoplaza products: prices, next week's deals, EAN, allergens, Ekoscope | $2.00           |              |
| [Aldi NL Scraper](https://apify.com/sleepmodesystems/aldi)              | Aldi products: prices, next week's deals, special buys, seals          | $1.00           |              |

All of them share the same output fields, so you can combine their datasets directly. The Aldi NL Scraper adds `articleNumber`, `description`, `specialBuy`, `vegan`, `vegetarian`, `ageRestriction` and `priceDate`, and has no barcodes; the Ekoplaza Scraper adds `articleNumber`, `vegan`, `vegetarian`, `ekoscope`, `origin`, `shelfLifeDays`, `ageRestriction`, `soldByWeight`, `detailsDate`, `description`, `ingredients`, `allergens`, `mayContain`, `freeFrom`, `nutrition` and `priceDate`; the Poiesz Scraper adds `promoDescription`, `deposit`, `depositAmount`, `ageRestriction`, `alcoholPercentage`, `purchaseLimit`, `soldByWeight`, `detailsRead`, `detailsDate`, `ingredients`, `allergens`, `mayContain`, `freeFrom`, `nutrition` and `storage`; the Vomar Scraper adds `soldByWeight`, and fills `gtins` with every barcode Vomar lists; the Hoogvliet Scraper adds `promoDescription`, `vegan`, `vegetarian`, `shelfLifeDays`, `ageRestriction`, `soldByWeight`, `ingredients`, `nutrition`, `storage`, `origin`, `alcoholPercentage` and `priceDate`; the DekaMarkt and Dirk Scrapers add `soldByWeight` and `priceDate`; PLUS adds `vegan`, `vegetarian`, `deposit`, `storeOnly`, `detailsRead` and `detailsDate`; Jumbo adds `promotions` and `shelfLifeDays`. Category ids are text on Jumbo, Dirk, DekaMarkt, Hoogvliet, Vomar, Poiesz, Ekoplaza and Aldi, numbers on Albert Heijn, and not given by PLUS.

### Support for the Vomar Scraper

Questions, a missing field, or a custom pipeline on top of this data: write to Imad at imad@sleepmodesystems.com. Bugs go in the Issues tab of this actor.

# Actor input Schema

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

Search Vomar for these words instead of reading the full catalog. Vomar returns its best matches, at most about 200 a word; for a whole brand or category, read the full catalog. Leave empty for the full catalog.

## `eans` (type: `array`):

Look up these barcodes instead of reading the full catalog, on every barcode Vomar lists per product. Leading zeros are optional. Leave empty for the full catalog.

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

Stop after this many products. The full Vomar catalog is about 6,300 products.

## `minItems` (type: `integer`):

Fail the run if fewer products were found.

## Actor input object example

```json
{
  "keywords": [],
  "eans": [],
  "maxItems": 100000,
  "minItems": 1
}
```

# Actor output Schema

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

No description

## `summary` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("sleepmodesystems/vomar").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("sleepmodesystems/vomar").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 '{}' |
apify call sleepmodesystems/vomar --silent --output-dataset

```

## MCP server setup

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

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/AHI8m55qWlI27E34B/builds/HjVHvJbe7djejolAg/openapi.json
