# Hepsiburada Scraper - Turkey Prices, Sellers & Barcodes (`scrapewise/hepsiburada-scraper`) Actor

Get Hepsiburada (Turkey) product prices, sellers and reviews by search term, category, brand or product link: price, discount, seller, rating, stock and position. Optional reviews with date and star filters, Q\&A, barcode (GTIN), variants and other sellers' prices. Price-drop tracking. Errors free.

- **URL**: https://apify.com/scrapewise/hepsiburada-scraper.md
- **Developed by:** [Scrapewise Data](https://apify.com/scrapewise) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.40 / 1,000 product delivereds

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

## Hepsiburada Scraper: Turkey product prices, sellers and barcodes

Scrape [Hepsiburada.com](https://www.hepsiburada.com), one of Turkey's largest online marketplaces, **without an
account or a browser**. Type a search term, paste a search, category, brand or store URL with your filters, or paste
product links. Every product comes with price, original price and discount, the winning seller, rating and review
count, stock, delivery time, installment offer, image and its **position in the results**.

Turn on the full product page and you also get the **barcode (GTIN/EAN)**, the category path, **every variant**
(color, size, capacity) with its own price, stock and barcode, the **other sellers** with their price, seller rating
and city, all images and, when the page has one, the specifications table.

Turn on **customer reviews** and **questions and answers** and every product also brings its reviews (rating, text,
date, verified purchase, seller, helpful votes, photos, per-feature ratings) and its customer questions with the
sellers' answers, newest first, with a date window and star filter.

Built for **price monitoring**: schedule the same search every day and get only the products that are new, or whose
price changed, with the previous price and the change in lira and percent. A quiet day costs nothing.

### What this Hepsiburada scraper fixes

- **Reviews in the order you need, with a date window.** Newest first (or oldest, most helpful, highest or lowest
  rating), plus `reviewsFrom` / `reviewsTo`. With a start date, reading stops at the first older review, so a daily
  run of a fixed product list reads only what is new.
- **Every review of the product, not just one variant.** Reviews of all colors and capacities come in, as the site
  counts them (an iPhone with 13,000 reviews gives 13,000, not the 3,600 of one color), each with the variant it was
  written for.
- **Reviews without paying for products.** `reviewsOnly` with product links reads only the reviews: no product row,
  no product charge, no product page opened.
- **Your limits are respected.** A `limit`, `max_reviews` or `max_qna` pasted from another Hepsiburada actor's input
  wins over this form's defaults.
- **No proxy setup for volume.** The default connection is already the one that works; refused IPs are retried on
  fresh ones and anything that still fails is a free error row, never a red run with an empty dataset.

### Hepsiburada scraper at a glance

- **Price per 1,000 products, Free plan:** US$ 4.00
- **Full product page (optional):** US$ 4.00 per 1,000, on top
- **Reviews and questions (optional):** US$ 1.00 per 1,000
- **Fee per run start:** None
- **Search terms, search URLs, categories, brands, stores and product links:** Yes
- **Hepsiburada's own sort orders (best sellers, price, rating, discount, newest):** Yes
- **Brand and price filters:** Yes, with the site's own filters
- **Minimum rating, discounted only, fast delivery only, official sellers only:** Yes
- **Customer reviews (sort, date window, star filter, photos only):** Yes, optional, one row per review
- **Questions and sellers' answers:** Yes, optional, one row per question
- **Position in the results on every row:** Yes, ranking tracking out of the box
- **Barcode (GTIN/EAN) per product and per variant:** Yes, with the full product page
- **Other sellers' prices on the same product:** Yes, with the full product page
- **Only new products since the last run (`onlyNew`):** Yes, free when nothing is new
- **Price tracking between runs (`trackPriceChanges`, `onlyPriceDrops`):** Yes
- **Error rows (bad URL, no results, site refusal):** Free, with an `errorCode`

### What data the Hepsiburada scraper returns

From a test on 2026-10-07 (a product link, so the full product page is included), shortened to one seller, one
variant, two images and four specifications:

```json
{
  "type": "product",
  "productId": "HBC00004X9ZCG",
  "sku": "HBCV00004X9ZCK",
  "name": "Apple iPhone 15 128 GB Mavi",
  "brand": "Apple",
  "url": "https://www.hepsiburada.com/apple-iphone-15-128-gb-mavi-p-HBCV00004X9ZCK",
  "price": 57949,
  "originalPrice": 57949,
  "discountPct": 0,
  "currency": "TRY",
  "inStock": true,
  "sellerName": "Hepsiburada",
  "isMultiSeller": true,
  "shipsInDays": 0,
  "rating": 4.8,
  "reviewCount": 13048,
  "image": "https://productimages.hepsiburada.net/s/462/1500/110000498600869.jpg",
  "imageCount": 10,
  "variantCount": 15,
  "hasDetails": true,
  "barcode": "0195949036583",
  "categoryPath": "Telefon > Cep Telefonu > iPhone iOS Telefonlar",
  "categoryIds": ["2147483642", "371965", "60005202"],
  "productType": "Cep Telefonu",
  "sellerCity": "KOCAELİ",
  "sellerLabel": "Resmi Satıcı",
  "priceRangeAmongSellers": [58751.08, 70000],
  "otherSellers": [
    {
      "sellerName": "Turax Teknoloji",
      "price": 58751.08,
      "originalPrice": 59255.98,
      "sellerRating": 9.7,
      "sellerRatingCount": 22,
      "sellerCity": "ÇANKIRI",
      "freeShipping": false,
      "fulfilledByHepsiburada": false,
      "buyboxOrder": 2
    }
  ],
  "hasMoreSellers": true,
  "variants": [
    {
      "sku": "HBCV00004X9ZCH",
      "name": "Apple iPhone 15 128 GB Siyah",
      "price": 57749,
      "inStock": true,
      "barcode": "0195949036040",
      "attributes": {"Renk": "Siyah", "Kapasite": "128 GB"}
    }
  ],
  "specifications": {
    "Boyutlar": "147.6 x 71.6 x 7.8 mm",
    "Ağırlık": "171 gram",
    "Ekran": "6.1\" Super Retina XDR, 60Hz, OLED",
    "İşlemci": "A16 Bionic"
  },
  "vatRate": 20,
  "scrapedAt": "2026-10-07T22:12:27Z"
}
```

Rows from a search also carry `position` (1 is the first product on page 1), `page`, `lowestPriceWithOffers` (the
lowest price Hepsiburada shows with its own coupons), `installmentText`, `colorVariantCount`, `isSponsored` and
`searchInput` (the term or URL that found the product).

### Hepsiburada scraper input

**By search term.** Type one or more terms, the way you would on the site:

```json
{
  "searchTerms": ["airpods", "robot vacuum"],
  "sortBy": "bestSellers",
  "maxItems": 100
}
```

**By URL.** Open Hepsiburada, set any filter you like (category, brand, color, seller, rating...), and paste the
address. Every filter in the URL is kept:

```json
{
  "startUrls": [
    "https://www.hepsiburada.com/cep-telefonlari-c-371965",
    "https://www.hepsiburada.com/ara?q=airpods"
  ],
  "maxItems": 200
}
```

**By product link.** Paste product URLs (they contain `-p-` and a code). Each comes back with the full product page:

```json
{
  "startUrls": ["https://www.hepsiburada.com/apple-iphone-15-128-gb-mavi-p-HBCV00004X9ZCK"]
}
```

**Brand and price filters** work with terms and URLs: `"brands": ["JBL", "Sony"]`, `"minPrice": 2000`,
`"maxPrice": 5000` (Turkish lira). They use Hepsiburada's own filters, so the limit counts only matching products.

### Hepsiburada reviews and questions

Turn on `includeReviews` and/or `includeQuestions`. Each review and each question is its own row (`type: "review"` or
`type: "question"`) next to its product, linked by `productSku`:

```json
{
  "startUrls": ["https://www.hepsiburada.com/apple-iphone-15-128-gb-mavi-p-HBCV00004X9ZCK"],
  "includeReviews": true,
  "reviewSort": "newest",
  "reviewsFrom": "2026-09-01",
  "maxReviewsPerProduct": 0,
  "includeQuestions": true
}
```

One review row from a test on 2026-10-08, text shortened:

```json
{
  "type": "review",
  "reviewId": "4954a016-9f97-4807-a6de-4f96c4594db5",
  "productSku": "HBCV00004X9ZCK",
  "reviewedSku": "HBCV00004X9ZCH",
  "reviewedVariantName": "iPhone 15 128 GB",
  "rating": 5,
  "text": "Ürün den çok memnunum, özellikle siyah rengi premium his veriyor...",
  "createdAt": "2023-09-25T15:12:02.9978426+00:00",
  "isPurchaseVerified": true,
  "reviewerName": "A*****************",
  "sellerName": "Hepsiburada",
  "likes": 1124,
  "dislikes": 802,
  "images": null,
  "featureRatings": {"Batarya": 5, "Ekran": 5, "Kamera": 5, "İşlemci": 5},
  "keywords": ["çok memnunum", "çok beğendim"]
}
```

- `reviewSort`: `newest` (default), `oldest`, `mostHelpful`, `highestRating`, `lowestRating` or `default`.
- `reviewStars`: only these ratings, for example `["1", "2"]` for complaints.
- `reviewsFrom` / `reviewsTo`: a date (`2026-09-01`) or a relative window (`"30 days"`).
- `onlyReviewsWithMedia`: only reviews with customer photos or video.
- `reviewsOnly`: reviews (and questions) without the product rows, which are then free.
- Reviewers appear only by the masked name Hepsiburada shows (`A*****`); nothing else about them is collected.
- Question rows carry the question, its date and every seller answer with its date.

### Hepsiburada price monitoring

Schedule the Actor with the same input every day and turn on:

- **`onlyNew`**: only products this search never returned before. The first run delivers up to `maxItems` and
  remembers everything it read; later runs deliver only what is new. Products already seen are not charged.
- **`trackPriceChanges`**: every row gets `previousPrice`, `priceChange`, `priceChangePct`, `isPriceDrop`,
  `isNewProduct`, `firstSeenAt` and `previousSeenAt`, compared with your earlier runs of the same search. With
  `onlyNew` on too, products whose price changed are delivered as well.
- **`onlyPriceDrops`**: with both of the above, of the products seen before, only the ones that got cheaper.

The memory lives in a key-value store in your own account (`hepsiburada-scraper-state`), one entry per search and
filters. Delete it to start over.

Video guides from Apify: [how to schedule an Actor](https://www.youtube.com/watch?v=1jI7WcVQmwM) and [how to connect it to other apps](https://www.youtube.com/watch?v=bNACk1_S_6w).

### Switching from another Hepsiburada scraper? Your existing input works

Paste the input you already use. These names and values are read as they are:

| You may already send | Read as |
|---|---|
| `queries`, `query`, `keyword`, `keywords` | search terms |
| `startUrls` (search, category or product links) | links |
| `limit`, `maxResults` | `maxItems` (per search) |
| `min_price`, `max_price` | `minPrice`, `maxPrice` |
| `min_rating` (`1` to `4`) | `minRating` |
| `sort_by`: `recommended`, `lowest_price`, `highest_price`, `best_sellers`, `most_reviewed`, `top_rated`, `highest_discount`, `newest_arrivals` | `sortBy` |
| `discounted`, `fast_delivery`, `official_distibutor` | `onlyDiscounted`, `onlyFastDelivery`, `onlyOfficialSellers` |
| `enrich_data` | `includeDetails` |
| `get_reviews`, `max_reviews`, `review_sort` (`default`, `newest`, `most_helpful`, `highest_rating`, `lowest_rating`) | `includeReviews`, `maxReviewsPerProduct`, `reviewSort` |
| `get_qna`, `max_qna` | `includeQuestions`, `maxQuestionsPerProduct` |
| `proxyConfiguration` with the `UNBLOCKER` group | the default residential connection |

`gender`, `women_entrepreneur_products` and `maximize_coverage` are not supported and are ignored with a note in the
log.

### Who uses Hepsiburada data

- **Brands and distributors** checking how resellers price their products, and who wins the buy box.
- **Sellers on Hepsiburada** tracking competitors' prices, discounts and ranking for their key searches.
- **Price comparison and deal sites** that need fresh prices and barcodes to match products across shops.
- **Market researchers** measuring assortment, average prices and review counts by category or brand in Turkey.

### Hepsiburada scraper limits

- Hepsiburada shows **36 products per page and at most 50 pages (1,800 products) per search**. For more, split the
  search by category, brand or price range.
- Prices are in **Turkish lira (TRY)**, as shown on the site, VAT included.
- Product names, categories and specifications come in Turkish, exactly as Hepsiburada publishes them.
- `specifications` comes from the "Teknik Detaylar" table that part of the product pages carry (phones and
  electronics usually do); it is empty when the page has none.
- `otherSellers` lists the sellers the product page shows; when `hasMoreSellers` is true, the product has more offers
  on the site than the page lists.
- Hepsiburada refuses most datacenter IPs. The default proxy is Apify's **RESIDENTIAL** group with Turkish IPs; a
  refused IP is dropped and another one is tried. If every attempt is refused, you get a free `BLOCKED` row that names
  the protection system, and nothing is charged.

### Hepsiburada scraper pricing

Pay per product: **US$ 4.00 per 1,000 products** on the Free plan (lower on paid Apify plans), plus **US$ 4.00 per
1,000** for products delivered with the full product page. Each review row and each question row costs **US$ 1.00 per
1,000**. No fee per run start. Error rows, duplicates, products skipped by `onlyNew`, `onlyPriceDrops`,
`onlyInStock` or the rating, discount, delivery and seller filters, and product rows left out by `reviewsOnly` are never
charged.

### Hepsiburada scraper error codes

| errorCode | Meaning |
|---|---|
| `INVALID_INPUT` | The URL is not a Hepsiburada search, category, store or product link, or a filter is wrong |
| `NO_RESULTS` | Hepsiburada found no product for this search and filters |
| `NOT_FOUND` | The page or product does not exist (removed or a wrong link) |
| `BLOCKED` | The site refused every attempt on fresh IPs; run again in a few minutes |
| `NOT_REACHED` | The run timeout came before this input |
| `UNEXPECTED` | Anything else; run again, and open an issue if it repeats |

### Hepsiburada scraper FAQ

**Do I need a Hepsiburada account?** No. The Actor reads public pages only.

**Is there an official Hepsiburada API?**
Hepsiburada's API is for registered sellers and covers their own listings and orders. It does not give public search
results, competitors' prices or other sellers' reviews. This Actor reads the public pages with no account and returns
prices, rankings, barcodes, other sellers and reviews for any product.

**Can I get reviews and questions?** Yes: turn on `includeReviews` and/or `includeQuestions`. Rating and review count
are on every product row anyway.

**Does it follow my filters?** Yes. Paste the URL after setting any filter on the site, and every filter is kept.

**How fresh is the data?** It is read live from Hepsiburada at run time.

### Related scrapers

- [Trendyol Scraper](https://apify.com/scrapewise/trendyol-scraper): Trendyol products, prices, sellers and ratings.
- [AliExpress Scraper](https://apify.com/scrapewise/aliexpress-scraper): AliExpress products, sold counts and 40 fields.
- [Shopee Scraper](https://apify.com/scrapewise/shopee-scraper): Shopee products, prices and shops in 8 countries.
- [Google Shopping Scraper](https://apify.com/scrapewise/google-shopping): Google Shopping prices, offers and EAN lookup.

# Actor input Schema

## `searchTerms` (type: `array`):

Words to search on Hepsiburada, one per line, as you would type them on the site (for example airpods, dyson, robot süpürge, iphone 16). Turkish or English both work; Turkish usually returns more products. Leave empty to use only the URLs below.

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

Search, category, brand or store URLs copied from your browser after setting the filters on Hepsiburada (for example https://www.hepsiburada.com/ara?q=airpods or https://www.hepsiburada.com/cep-telefonlari-c-371965), one per line. Every filter in the URL is kept. Product URLs (with -p-<code>) also work and come back with the full product page.

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

Keep only these brands, one per line (for example Apple, Samsung, JBL). Uses Hepsiburada's own brand filter, so the limit counts only matching products.

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

Only products at or above this price in Turkish lira. Uses Hepsiburada's own price filter.

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

Only products at or below this price in Turkish lira.

## `sortBy` (type: `string`):

Hepsiburada's own orders. With a product limit it also decides which products you get. Position in the results is saved on every row, so 'Recommended' doubles as a ranking tracker.

## `onlyInStock` (type: `boolean`):

Skip products that cannot be bought right now. Skipped products are not charged.

## `minRating` (type: `string`):

Keep only products rated at or above this many stars. Skipped products are not charged. Empty = any rating.

## `onlyDiscounted` (type: `boolean`):

Keep only products shown with a discount (price below the list price). Skipped products are not charged.

## `onlyFastDelivery` (type: `boolean`):

Keep only products marked for fast delivery (ships the same day). Skipped products are not charged.

## `onlyOfficialSellers` (type: `boolean`):

Keep only products whose winning seller is labelled official or authorized (Resmi / Yetkili Satıcı) on Hepsiburada. Needs the product page, so it turns on 'Full product pages'. Skipped products are not charged.

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

Stop each search (each term or URL) after this many products. Hepsiburada shows 36 per page and at most 50 pages (1,800 products) per search. 0 = up to 1,800.

## `includeDetails` (type: `boolean`):

Also open each product's own page: barcode (GTIN/EAN), category path, every variant (color, size, capacity) with its price, stock and barcode, the other sellers with price, seller rating and city, all images and the specifications table. Charged as a second event per product.

## `includeReviews` (type: `boolean`):

Also deliver the customer reviews of each product, one row per review (type 'review'): rating, text, date, verified purchase, seller, helpful votes, photos and per-feature ratings. Reviews of every variant (color, size) are included, as on the site. Each review costs US$ 1.00 per 1,000.

## `maxReviewsPerProduct` (type: `integer`):

Stop each product's reviews after this many. 0 = all of them (big products have tens of thousands).

## `reviewSort` (type: `string`):

Which reviews come first; with a review limit it also decides which reviews you get. Newest first is best for daily monitoring.

## `reviewStars` (type: `array`):

Keep only reviews with these ratings, for example 1 and 2 for complaints. Empty = all ratings. Uses Hepsiburada's own filter.

## `reviewsFrom` (type: `string`):

Only reviews written on or after this date (YYYY-MM-DD), or a relative window such as '30 days'. Reading stops at the first older review, so a daily run reads only the new ones.

## `reviewsTo` (type: `string`):

Only reviews written on or before this date (YYYY-MM-DD).

## `onlyReviewsWithMedia` (type: `boolean`):

Keep only reviews that carry customer photos or a video.

## `includeQuestions` (type: `boolean`):

Also deliver the published customer questions of each product with the sellers' answers, one row per question (type 'question'), newest first. Each question costs US$ 1.00 per 1,000.

## `maxQuestionsPerProduct` (type: `integer`):

Stop each product's questions after this many. 0 = all of them.

## `reviewsOnly` (type: `boolean`):

Deliver only the reviews (and questions, if on), without the product rows, which are then free. With product links the product page is not even opened. Good for review monitoring of a fixed product list.

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

For scheduled runs. Remembers which products each search (with its filters) already returned, in a named key-value store in your account ('hepsiburada-scraper-state'), and delivers only products not seen before. The first run delivers up to the limit and marks everything it read as seen. Seen products are not delivered and not charged. Forces the newest-first order. Delete the store to start over.

## `trackPriceChanges` (type: `boolean`):

Compares each product's price with the price seen in your previous runs of the same search (same key-value store) and adds previousPrice, priceChange, priceChangePct, isPriceDrop, isNewProduct, firstSeenAt and previousSeenAt. With 'Only new products' on too, products whose price changed are delivered as well.

## `onlyPriceDrops` (type: `boolean`):

With 'Only new products' and 'Track price changes' both on: of the products seen before, deliver only those whose price went down.

## `proxyConfiguration` (type: `object`):

Hepsiburada refuses datacenter IPs, so the default is the Apify RESIDENTIAL group with Turkish IPs. A refused IP is dropped and another one is tried; keep this default unless you have a reason to change it.

## Actor input object example

```json
{
  "searchTerms": [
    "airpods"
  ],
  "sortBy": "recommended",
  "onlyInStock": false,
  "onlyDiscounted": false,
  "onlyFastDelivery": false,
  "onlyOfficialSellers": false,
  "maxItems": 20,
  "includeDetails": false,
  "includeReviews": false,
  "maxReviewsPerProduct": 100,
  "reviewSort": "newest",
  "onlyReviewsWithMedia": false,
  "includeQuestions": false,
  "maxQuestionsPerProduct": 50,
  "reviewsOnly": false,
  "onlyNew": false,
  "trackPriceChanges": false,
  "onlyPriceDrops": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "TR"
  }
}
```

# Actor output Schema

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

No description

## `resultsCsv` (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 = {
    "searchTerms": [
        "airpods"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "TR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapewise/hepsiburada-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 = {
    "searchTerms": ["airpods"],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "TR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapewise/hepsiburada-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 '{
  "searchTerms": [
    "airpods"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "TR"
  }
}' |
apify call scrapewise/hepsiburada-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapewise/hepsiburada-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/JNx244faukrknieKD/builds/onvh31ftK0ACxihzV/openapi.json
