# Central Product Search Scraper (`stealth_mode/central-product-search-scraper`) Actor

Scrape product listings from Central.co.th with 100+ data fields. Capture SKUs, prices, inventory, images, shipping methods, promotions, and more — perfect for price intelligence, product research, and marketplace analytics.

- **URL**: https://apify.com/stealth\_mode/central-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Central.co.th Product Search Scraper: Extract E-Commerce Catalog Data

---

### What Is Central.co.th?

Central.co.th is Thailand's premier omnichannel retailer offering beauty, fashion, electronics, home goods, and lifestyle products both online and in-store. The platform hosts tens of thousands of SKUs across diverse categories. Extracting this product data manually is impractical — the **Central.co.th Product Search Scraper** automates collection from search result pages, delivering richly structured product records in seconds.

---

### Overview

The **Central Product Search Scraper** extracts complete product information from Central.co.th category and search pages, converting dynamic e-commerce listings into clean, downloadable datasets. It is designed for:

- **Price intelligence specialists** tracking competitor pricing and discounts
- **E-commerce analysts** benchmarking product portfolios and trends
- **Marketers** monitoring promotions, new arrivals, and bestseller status
- **Data engineers** building product feeds for price comparison platforms
- **Retailers** analyzing market positioning and inventory availability

Key strengths include support for pagination, flexible item limits, granular bilingual product data (Thai and English), and comprehensive promotion tracking across 100+ output fields.

---

### Input Format

The scraper accepts a JSON configuration with three main parameters:

```json
{
  "urls": [
    "https://www.central.co.th/en/beauty/skincare?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | array | Direct links to Central search or category pages. Include the full URL with category path and pagination (`?page=N`). You can add multiple URLs for bulk collection. |
| `ignore_url_failures` | boolean | If `true`, the scraper skips failed URLs and continues. If `false`, the run halts on first failure. Recommended: `true` for production runs. |
| `max_items_per_url` | integer | Maximum products scraped per URL (e.g., `200`). Useful for limiting data volume or testing. Set higher for complete category exports. |

**Example use cases:**

- Single product page: `https://www.central.co.th/en/beauty/skincare`
- Paginated results: `https://www.central.co.th/en/beauty/skincare?page=1` through `?page=10`
- Filtered search: `https://www.central.co.th/en/beauty/skincare?brand=SK-II`

***

### Output Format

**Sample output**

```json
{
  "name_th": "ครีมกันแดด Better Screen UV Serum SPF50 PA++++ 50 มล.",
  "name_en": "Better Screen UV Serum SPF50 PA++++ 50 mL",
  "sku": "CDS28590392",
  "parent_sku": null,
  "category_tokenized": [
    "ความงาม",
    "Beauty",
    "สกินแคร์",
    "Skincare",
    "ครีมกันแดด",
    "Sunscreen"
  ],
  "brand_name": "KIEHL'S",
  "brand_slug": "kiehls",
  "name_tokenized": [
    "ครีมกันแดด Better Screen UV Serum SPF 50 PA ++++ 50 มล .",
    "Better Screen UV Serum SPF 50 PA ++++ 50 mL"
  ],
  "brand_name_tokenized": [
    "KIEHL 'S",
    "KIEHL 'S"
  ],
  "is_new_arrivals": 0,
  "new": 0,
  "bestseller_count": 10,
  "nmv": 320,
  "category_en": {
    "level0": [
      "Beauty"
    ],
    "level1": [
      "Beauty /// Skincare"
    ],
    "level2": [
      "Beauty /// Skincare /// Sunscreen"
    ]
  },
  "category_th": {
    "level0": [
      "ความงาม"
    ],
    "level1": [
      "ความงาม /// สกินแคร์"
    ],
    "level2": [
      "ความงาม /// สกินแคร์ /// ครีมกันแดด"
    ]
  },
  "categories_without_path": [
    "ความงาม",
    "สกินแคร์",
    "ครีมกันแดด",
    "Beauty",
    "Skincare",
    "Sunscreen"
  ],
  "categories_en": [
    "Beauty",
    "Skincare",
    "Sunscreen"
  ],
  "category_uids": [
    "0001",
    "00010008",
    "000100080008"
  ],
  "url_key": "kiehls-better-screen-uv-serum-spf50-pa-50-ml-cds28590392",
  "visibility_catalog": 1,
  "visibility_search": 1,
  "min_sale_qty": 1,
  "max_sale_qty": 5,
  "thumbnail_url": "file-assets/CDSPIM/web/Image/CDS2859/KIEHLS-BTRSCRNUVSRMSPF5050MLROW-CDS28590392-1.webp",
  "image_url": "file-assets/CDSPIM/web/Image/CDS2859/KIEHLS-BTRSCRNUVSRMSPF5050MLROW-CDS28590392-1.webp",
  "bu": "CDS",
  "seller": "Central Department Store",
  "marketplace_seller": "Central Department Store",
  "shipping_methods_code": [
    "cds_standard",
    "pickupatstore_pickupatstore"
  ],
  "shipping_methods_en": [
    "Standard Delivery",
    "Click and Collect"
  ],
  "shipping_methods_th": [
    "จัดส่งปกติ",
    "รับเวลาปกติ"
  ],
  "payment_methods_code": [
    "storedCard",
    "creditCard",
    "bankTransfer",
    "cashOnPickup"
  ],
  "allow_gift_wrapping": 1,
  "is_pre_order": 0,
  "configurable_attributes": null,
  "franchise": null,
  "size": null,
  "color_en": null,
  "color_th": null,
  "color_group_en": null,
  "color_group_th": null,
  "gender_th": "ยูนิเซ็กส์",
  "gender_en": "Unisex",
  "created_at": "2026-02-16 17:52:00",
  "created_at_unixtime": 1771239120000,
  "algolia_last_update_at_cet": null,
  "algolia_last_update": 1779826543360,
  "color_group_tokenized": [],
  "triggered_off": false,
  "final_price": 1600,
  "price": 1600,
  "discount_amount": 0,
  "discount_percentage": 0,
  "e_price_last_update_at_cet": null,
  "e_price_last_update": 1775019600686,
  "promotion_image": [
    {
      "image_url": "file-assets/CDSPIM/web/Image/CDS2859/KIEHLS-BETTERSCREENUVSERUMSPF50PA50ML-CDS28590392-PROMO.webp",
      "status": true,
      "start_date": "2026-03-25 00:00:00",
      "end_date": "2026-03-31 23:59:00",
      "start_date_unixtime": 1774396800,
      "end_date_unixtime": 1775001540,
      "algolia_last_update_at_c_e_t": "2026-04-08 18:25:02",
      "algolia_last_update": 1775647504060
    }
  ],
  "image_last_update_at_cet": null,
  "thumbnail": "file-assets/CDSPIM/web/Image/CDS2859/KIEHLS-BTRSCRNUVSRMSPF5050MLROW-CDS28590392-1.webp",
  "image": "file-assets/CDSPIM/web/Image/CDS2859/KIEHLS-BTRSCRNUVSRMSPF5050MLROW-CDS28590392-1.webp",
  "image_last_update": 1775647504060,
  "only_central": 0,
  "online_exclusive_tag": 0,
  "promo_name_tag": null,
  "promotion_tags": [],
  "promotion_tags_last_update_at_cet": null,
  "promotion_tags_last_update": 1775646678446,
  "stock": {
    "is_in_stock": true
  },
  "overlay": [],
  "overlay_last_update_at_cet": null,
  "overlay_last_update": 1781543701460,
  "search_attributes_v4_3": "ครีมกันแดด ปกป้อง ผิว จาก แสงแดด spf 50 ครีมกันแดด ผิวหน้า ปกป้อง แสงแดด สกินแคร์ ยูวี เซรั่ม เซรั่ม กันแดด เซรั่ม บำรุงผิวหน้า pa sunscreen, uv protection, spf 50, face sunscreen, sun protection, skin care, pa++++",
  "cpn_ref": [
    "605",
    "607",
    "644",
    "756",
    "1040",
    "1049",
    "1468",
    "1726",
    "1727",
    "4468",
    "4469",
    "4476",
    "4491",
    "4518",
    "4913",
    "4914",
    "5620",
    "5901",
    "5902",
    "6568",
    "7149",
    "7151",
    "7152",
    "7364",
    "7437",
    "7438",
    "7471",
    "8109",
    "8110",
    "8111",
    "8112",
    "8562",
    "8563",
    "8672",
    "9222",
    "9223",
    "9224",
    "9225",
    "9233",
    "9302",
    "9303",
    "9304",
    "9305",
    "9313",
    "9364",
    "9365",
    "9366",
    "9367",
    "9384",
    "9389",
    "9640",
    "9646",
    "9647",
    "9648",
    "9649",
    "9765",
    "9766",
    "9767",
    "9768",
    "9797",
    "9798",
    "9799",
    "9800",
    "9801",
    "9802",
    "9803",
    "9804",
    "9832",
    "9833",
    "9867",
    "9931",
    "9932",
    "9933",
    "9934",
    "9935",
    "9936",
    "9938",
    "9939",
    "9940",
    "9950",
    "9952",
    "9956",
    "9964",
    "9965",
    "10023",
    "10024",
    "10025",
    "10026",
    "10027",
    "10028",
    "10029",
    "10030",
    "10031",
    "10032",
    "10033",
    "10034",
    "10035",
    "10036",
    "10037",
    "10193",
    "10194",
    "10259",
    "10262",
    "10404",
    "10405",
    "10428",
    "10430",
    "10484",
    "10504",
    "10545"
  ],
  "coupon_last_update_at_cet": null,
  "coupon_last_update": 1781628331687,
  "gender_standardize_en": [
    "Men",
    "Women",
    "Unisex"
  ],
  "gender_standardize_th": [
    "ผู้ชาย",
    "ผู้หญิง",
    "ยูนิเซ็กส์"
  ],
  "gender_standardize_tokenized": [
    "Men",
    "Women",
    "Unisex",
    "ผู้ชาย",
    "ผู้หญิง",
    "ยูนิเซ็กส์"
  ],
  "category_ids": [
    "0001",
    "00010008",
    "000100080008"
  ],
  "color_shade": null,
  "brand_ita": "KIEHLS",
  "nmv_and_best_seller_last_update_at_cet": null,
  "nmv_and_best_seller_last_update": 1781631602461,
  "object_id": null,
  "highlight_result": null,
  "color_group": null,
  "watch_accessory_dial_size": null,
  "watch_band_color_group": null,
  "watch_band_material": null,
  "watch_dial_color_group": null,
  "watch_display_type": null,
  "watch_feature": null,
  "watch_movement_type": null,
  "categories": "$5c:props:initialData:hits:0:categories_en",
  "name": "Better Screen UV Serum SPF50 PA++++ 50 mL",
  "shipping_methods": "$5c:props:initialData:hits:0:shipping_methods_en",
  "from_url": "https://www.central.co.th/en/beauty/skincare?page=2"
}
```

Each product returns a rich record with 100+ structured fields, organized below:

#### Core Product Identity

| Field | Meaning |
|---|---|
| `Name TH` | Product name in Thai language |
| `Name EN` | Product name in English |
| `SKU` | Unique product identifier (Stock Keeping Unit) |
| `Parent SKU` | Parent product SKU for variants (if applicable) |
| `URL Key` | SEO-friendly URL slug for the product |
| `Object ID` | Internal system identifier used by Algolia search engine |

#### Brand & Categorization

| Field | Meaning |
|---|---|
| `Brand Name` | Brand or manufacturer name |
| `Brand Slug` | URL-friendly brand identifier |
| `Brand ITA` | Brand ITA code (internal classification) |
| `Category TH` | Primary category in Thai |
| `Category EN` | Primary category in English |
| `Categories` | All applicable category paths |
| `Categories EN` | Full category hierarchy in English |
| `Categories Without Path` | Flat list of category tags |
| `Category UIDs` | Unique internal category identifiers |
| `Category IDs` | Numeric category IDs |

#### Product Attributes & Properties

| Field | Meaning |
|---|---|
| `Name Tokenized` | Product name split into searchable tokens |
| `Brand Name Tokenized` | Brand name tokenized for search |
| `Color Group EN` | Color family in English (e.g., Red, Blue, Neutral) |
| `Color Group TH` | Color family in Thai |
| `Color Group Tokenized` | Color group split into tokens for search |
| `Color EN` | Specific color name (English) |
| `Color TH` | Specific color name (Thai) |
| `Color Shade` | Color shade descriptor (e.g., Light, Dark, Pastel) |
| `Color Group` | Standardized color grouping |
| `Size` | Product size (e.g., S, M, L, 30ml, 50ml) |
| `Gender EN` | Target gender in English (Men, Women, Unisex) |
| `Gender TH` | Target gender in Thai |
| `Gender Standardize EN` | Standardized gender field (English) |
| `Gender Standardize TH` | Standardized gender field (Thai) |
| `Gender Standardize Tokenized` | Tokenized gender for search |
| `Configurable Attributes` | Variant options (color, size, etc.) |
| `BU` | Business Unit or product line |
| `Franchise` | Franchise/sub-brand classification |

#### Watch-Specific Attributes (if applicable)

| Field | Meaning |
|---|---|
| `Watch Accessory Dial Size` | Dial size for watch accessories |
| `Watch Band Color Group` | Watch band color category |
| `Watch Band Material` | Watch band material (leather, metal, rubber, etc.) |
| `Watch Dial Color Group` | Watch dial color family |
| `Watch Display Type` | Display type (analog, digital, hybrid) |
| `Watch Feature` | Special features (chronograph, water-resistant, etc.) |
| `Watch Movement Type` | Movement type (quartz, automatic, etc.) |

#### Pricing & Discounts

| Field | Meaning |
|---|---|
| `Price` | Original or base product price (THB) |
| `Final Price` | Current selling price after discounts (THB) |
| `Discount Amount` | Absolute discount in currency |
| `Discount Percentage` | Discount as a percentage (e.g., 20 for 20% off) |
| `E Price Last Update` | Last price update timestamp |
| `E Price Last Update At CET` | Price update time in Central European Time |

#### Inventory & Availability

| Field | Meaning |
|---|---|
| `Stock` | Current inventory level |
| `Min Sale Qty` | Minimum quantity allowed per transaction |
| `Max Sale Qty` | Maximum quantity allowed per transaction |
| `Is Pre Order` | Whether the product is available for pre-order |
| `Visibility Catalog` | Whether visible in catalog browsing |
| `Visibility Search` | Whether visible in search results |

#### Product Media

| Field | Meaning |
|---|---|
| `Thumbnail URL` | URL to product thumbnail image |
| `Thumbnail` | Thumbnail image file |
| `Image URL` | URL to primary product image |
| `Image` | Primary product image file |
| `Image Last Update` | Last image update timestamp |
| `Image Last Update At CET` | Image update time in CET |
| `Promotion Image` | Promotional banner image URL |

#### Promotions & Tags

| Field | Meaning |
|---|---|
| `Is New Arrivals` | Whether product is in new arrivals collection |
| `New` | New product flag |
| `Bestseller Count` | Ranking in bestseller list (lower = more popular) |
| `Promo Name Tag` | Name of active promotion |
| `Promotion Tags` | All applicable promotion labels |
| `Promotion Tags Last Update` | Promotion metadata last changed |
| `Promotion Tags Last Update At CET` | Promotion update time in CET |
| `Online Exclusive Tag` | Whether product is online-exclusive |
| `Only Central` | Whether available only at Central (not other retailers) |
| `Overlay` | Overlay badge or icon (e.g., Sale, New, Limited) |
| `Overlay Last Update` | Overlay status last changed |
| `Overlay Last Update At CET` | Overlay update time in CET |

#### Shipping & Payment

| Field | Meaning |
|---|---|
| `Seller` | Merchant/seller name |
| `Marketplace Seller` | Whether item is from a marketplace vendor |
| `Shipping Methods Code` | Internal codes for available shipping options |
| `Shipping Methods EN` | Shipping methods in English (e.g., Standard, Express) |
| `Shipping Methods TH` | Shipping methods in Thai |
| `Shipping Methods` | List of all available shipping options |
| `Payment Methods Code` | Supported payment method codes |
| `Allow Gift Wrapping` | Whether gift wrapping is available |

#### Search & Merchandising

| Field | Meaning |
|---|---|
| `Search Attributes V4 3` | Advanced search attribute set (internal) |
| `CPN Ref` | Coupon reference code |
| `Coupon Last Update` | Coupon data last updated |
| `Coupon Last Update At CET` | Coupon update time in CET |
| `NMV` | Net Merchandise Value (pricing metric) |
| `NMV And Best Seller Last Update` | Last update for NMV/bestseller data |
| `NMV And Best Seller Last Update At CET` | NMV update time in CET |
| `Algolia Last Update` | Last search index update |
| `Algolia Last Update At CET` | Search index update time in CET |

#### Timestamps & Metadata

| Field | Meaning |
|---|---|
| `Created At` | Product created date in system |
| `Created At Unixtime` | Creation timestamp in Unix format |
| `Triggered Off` | Whether product is temporarily deactivated |
| `Highlight Result` | Search result highlighting metadata |

***

### How to Use

1. **Identify target pages** — Navigate to Central.co.th, find a category or search results page, and copy the URL. Include pagination parameters if scraping multiple pages.

   Example:

   - Category: `https://www.central.co.th/en/beauty/skincare`
   - Paginated: `https://www.central.co.th/en/beauty/skincare?page=2`
   - Filtered: `https://www.central.co.th/en/beauty/skincare?brand=Innisfree`

2. **Configure input** — Paste URLs into the `urls` array. Set `max_items_per_url` to control volume per page (recommended: 100–200 for complete data).

3. **Enable error tolerance** — Set `ignore_url_failures: true` to skip broken links and continue scraping remaining URLs.

4. **Run the scraper** — Start the actor and monitor the live run log for progress and errors.

5. **Export results** — Download data in JSON, CSV, or Excel format for analysis.

**Tips & best practices:**

- Central uses pagination (`?page=N`). Add multiple URLs with different page numbers for large dataset collection.
- The scraper captures bilingual data (Thai + English) — ideal for regional analysis.
- Timestamps are provided in both local time and CET for international correlation.
- Filter results in Excel by `Final Price`, `Discount Percentage`, `Stock`, or `Overlay` to focus analysis.

**Handling common issues:**

- If no results return, verify the URL points to a product listing page (not a product detail page).
- Some products may have `null` values for optional fields (e.g., watch specs for non-watch items) — this is normal.
- Retry failed runs with `ignore_url_failures: true` to collect maximum coverage.

***

### Use Cases & Business Value

- **Price monitoring:** Track competitor pricing, discounts, and promotional strategies in real-time.
- **Inventory intelligence:** Monitor stock levels and pre-order availability across product lines.
- **Product research:** Analyze new arrivals, bestseller trends, and market demand by category and brand.
- **Promotion analysis:** Extract promotion rules, discounts, and campaign effectiveness.
- **Data feeds:** Bulk-export product catalogs to power price comparison sites, recommendation engines, or internal dashboards.
- **Market research:** Benchmark product positioning, pricing strategies, and seasonal trends in Thai e-commerce.

The **Central Product Search Scraper** transforms hours of manual data collection into minutes, unlocking actionable intelligence for competitive analysis, merchandising decisions, and market strategy.

***

### Conclusion

The **Central.co.th Product Search Scraper** is your gateway to comprehensive, bilingual Thai e-commerce data. With 100+ structured output fields covering pricing, inventory, promotions, media, and shipping, it enables price intelligence, market research, and competitive analysis at scale. Start scraping today and unlock the insights hidden in Thailand's largest online retail platform.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.central.co.th/en/beauty/skincare?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.central.co.th/en/beauty/skincare?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/central-product-search-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 = {
    "urls": ["https://www.central.co.th/en/beauty/skincare?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/central-product-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.central.co.th/en/beauty/skincare?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/central-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/central-product-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Central Product Search Scraper",
        "description": "Scrape product listings from Central.co.th with 100+ data fields. Capture SKUs, prices, inventory, images, shipping methods, promotions, and more — perfect for price intelligence, product research, and marketplace analytics.",
        "version": "0.0",
        "x-build-id": "1p3Vb8KgtFZffrK7B"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~central-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-central-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/stealth_mode~central-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-central-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/stealth_mode~central-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-central-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the product search list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
