# Pinalli Product Search Scraper (`stealth_mode/pinalli-product-search-scraper`) Actor

Scrape Pinalli.it search result pages to collect structured beauty product data including prices, variants, inventory, images, and 50+ fields per product — perfect for price monitoring, catalog research, and competitive analysis.

- **URL**: https://apify.com/stealth\_mode/pinalli-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, NaN 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

## Pinalli.it Product Search Scraper: Extract Beauty Product Data at Scale

---

### What Is Pinalli.it?

Pinalli.it is one of Italy's leading online beauty and cosmetics retailers, offering an extensive catalog of skincare, makeup, fragrance, and haircare products from both international and niche brands. Its search functionality surfaces thousands of product listings organized by keyword, category, and filters — making it a valuable source of beauty market data.

Manually collecting product information from search pages is impractical at scale. The **Pinalli.it Product Search Scraper** automates this process, turning paginated search results into clean, structured datasets ready for analysis or integration.

---

### Overview

The **Pinalli Products Search Scraper** crawls Pinalli.it search result pages and extracts comprehensive product records for every item returned. It is well-suited for:

- **E-commerce analysts** monitoring pricing and promotions in the Italian beauty market
- **Brand managers** auditing how their products appear across retailer search results
- **Market researchers** building beauty product datasets for trend analysis
- **Developers** feeding product data into comparison engines or internal catalogs

The scraper supports multiple search URLs in a single run, configurable item limits, and graceful failure handling — making it reliable for both targeted lookups and large-scale collection tasks.

---

### Input Format

The scraper accepts a JSON configuration object with the following fields:

```json
{
  "urls": [
    "https://www.pinalli.it/search?page=2&query=lips"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

#### Field Reference

| Field | Type | Default | Description |
|---|---|---|---|
| `urls` | `array` | — | One or more Pinalli.it search result page URLs to scrape. Each URL should be a paginated search query (e.g., `?query=lips&page=2`). You can add URLs one by one or use bulk edit mode. |
| `max_items_per_url` | `integer` | `20` | Maximum number of products to collect per URL. Increase to `200` for full-page coverage or adjust per query volume. |
| `ignore_url_failures` | `boolean` | `true` | When `true`, the scraper skips failed URLs and continues processing the remaining ones instead of stopping the entire run. |

> **Tip:** To paginate through all results for a keyword, add multiple URLs incrementing the `page` parameter — e.g., `?query=lips&page=1`, `?query=lips&page=2`, and so on.

***

### Output Format

**Sample output**

```json
{
  "title": "Plump My Lips",
  "updated_at": "2026-06-01T12:48:08.000Z",
  "handle": "make-up-plump-my-lips-1dp0000000055",
  "vendor": "Diego Dalla Palma",
  "product_type": "QIPBJWJJASJN8JJC",
  "template_suffix": null,
  "sku": "1DP0000000055",
  "barcode": "8017834885712",
  "position": 1,
  "requires_shipping": true,
  "taxable": true,
  "inventory_quantity": 67,
  "option1": "10ml",
  "option2": null,
  "option3": null,
  "id": 7392895762497,
  "tags": [
    "#algolia-catalog-price-allPriceList-1774821653024",
    "#algolia-catalog-product-variants-1777427616843",
    "#algolia-catalog-product-variants-1778202891032",
    "#algolia-catalog-product-variants-1778203601961",
    "#algolia-catalog-product-variants-1779154560722",
    "#algolia-catalog-product-variants-1779586843246",
    "#algolia-promo-productTag-collection-1779303103834",
    "#father-QIPBJWJJASJN8JJC",
    "#pub20220525",
    "#unpub20991131",
    "#webcategory-1",
    "#webcategory-1-1",
    "#webcategory-1-1-6",
    "#webcategory-1-1-6-0",
    "#webcategory-2",
    "#webcategory-2-7",
    "#webcategory-2-7-2",
    "#webcategory-2-7-2-0"
  ],
  "option_names": [
    "grammature"
  ],
  "variants_count": 1,
  "variants_min_price": 25.5,
  "variants_max_price": 25.5,
  "variants_compare_at_price_min": null,
  "variants_compare_at_price_max": null,
  "variants_inventory_count": 67,
  "product_image": "https://cdn.shopify.com/s/files/1/0609/6964/8193/files/1DP0000000055-8017834885712_01.jpg?v=1779586813",
  "published_at": "2024-08-27T16:13:36.000Z",
  "body_html_safe": " Balsamo labbra volumizzante.      Balsamo labbra a lunga tenuta, ad effetto volumizzante istantaneo. Le labbra appaiono immediatamente piene, turgide e levigate.   Una texture avvolgente e trasparente, non \"collosa\", lascia le labbra morbide ed enfatizza un colore naturale e sano.   Grazie al suo applicatore soft-touch permette una stesura facile ed estremamente confortevole.   Finish ultra-shiny. ",
  "variant_title": "10ml",
  "inventory_policy": "deny",
  "inventory_available": true,
  "options": {
    "grammature": "10ml"
  },
  "price": 25.5,
  "compare_at_price": 0,
  "price_ratio": 1,
  "price_range": "25:50",
  "grams": 0,
  "weight": "0.0kg",
  "image": "https://cdn.shopify.com/s/files/1/0609/6964/8193/files/1DP0000000055-8017834885712_01.jpg?v=1779586813",
  "named_tags": {},
  "named_tags_names": [],
  "created_at": "2024-08-05T17:14:34.000Z",
  "meta": {
    "catalog": {
      "category_liv1": "[\"MAKE UP\",\"VISO\"]",
      "category_liv2": "[\"Labbra\",\"Labbra e Occhi\"]",
      "category_liv3": "[\"Volumizzante Labbra\"]",
      "category_liv4": "[\"Volumizzante Labbra\",\"Volumizzante Labbra\"]",
      "child_order": 0,
      "details_end": "1900-01-01T00:00:00",
      "details_start": "1900-01-01T00:00:00",
      "family": "AVL0",
      "father": "QIPBJWJJASJN8JJC",
      "gwp": "false",
      "hierarchical_menu": {
        "lvl1": [
          "Make up",
          "Trattamenti viso"
        ],
        "lvl2": [
          "Make up > Make up labbra",
          "Trattamenti viso > Trattamenti labbra e occhi"
        ],
        "lvl3": [
          "Make up > Make up labbra > Volumizzante labbra",
          "Trattamenti viso > Trattamenti labbra e occhi > Trattamento volumizzante labbra"
        ],
        "lvl4": []
      },
      "inci": "INGREDIENTS/COCTAB: POLYBUTENE, DIISOSTEARYL MALATE, PENTAERYTHRITYL TETRAISOSTEARATE, OCTYLDODECANOL, HYDROGENATED POLYISOBUTENE, VANILLYL BUTYL ETHER, METHYL NICOTINATE, ZINGIBER OFFICINALE ROOT OIL (ZINGIBER OFFICINALE (GINGER) ROOT OIL), CAPSICUM FRUTESCENS FRUIT EXTRACT, AROMA (FLAVOR), CANOLA OIL.\n",
      "linea": "My Lips",
      "lineas": [
        "My Lips"
      ],
      "new": "false",
      "new_end_numeric": 1656150660,
      "new_start_numeric": 1653472260,
      "new_end": "2022-06-25T09:51:00",
      "new_start": "2022-05-25T09:51:00",
      "no_line": "NO",
      "published": "true",
      "published_from": "2022-05-25T09:51:00",
      "published_to": "2099-12-31T09:51:00",
      "season": "51",
      "skin_type": "Tutti i tipi di pelle",
      "status": "0",
      "supplier": "D.D.PALMA",
      "use_notes": "<p>Gel ad effetto volumizzante ad azione rapida (dopo circa 30 minuti). Applicare su labbra sane e che non presentano piccole ferite. Utilizzare da solo o da anteporre a qualsiasi altro prodotto di make-up</p>    <p>Un prodotto che svolge 2 funzioni in 1: l'effetto volume abbinato ad un finish ultra luminoso. Ideale per labbra sottili e segnate dal tempo.</p>\n",
      "variants": "[]",
      "web_cat1_names": "[\"Make up\",\"Trattamenti viso\"]",
      "web_cat2_names": "[\"Make up labbra\",\"Trattamenti labbra e occhi\"]",
      "web_cat3_names": "[\"Volumizzante labbra\",\"Trattamento volumizzante labbra\"]",
      "web_cat4_names": "[]"
    },
    "global": {
      "collection": "[\"LPC202410S1007\",\"LPC202409S1002\",\"MATTEO40\",\"LPC202506S1025\",\"LPC202411S1010\",\"LPC202512S1036\",\"LPC202409S1003\",\"GWP-DDP-260520\",\"LPC202409S1000\",\"LPC202409S1001\",\"LPC202410S1005\",\"LPC202410S1006\",\"LPC202506S1024\"]",
      "fidelity": "[]",
      "has_fidelity_active": "false",
      "has_promo": "false",
      "price_list": [
        {
          "destination_code": "ALL",
          "displayed_discount": 0.25,
          "displayed_price": 25.5,
          "price_value": 19.13,
          "pricelist_name": "PROMO 000332 ONLINE-ALL",
          "pricelistcode": "000332",
          "unit_price": "€ 191.30 / 100 ml",
          "validity_from": "2026-02-23T00:01:00.000+01:00",
          "validity_to": "2026-03-29T23:59:00.000+02:00"
        },
        {
          "destination_code": "ALL",
          "displayed_discount": 0,
          "displayed_price": 25.5,
          "price_value": 25.5,
          "pricelist_name": "PERMANENT ALL-ALL",
          "pricelistcode": null,
          "unit_price": "€ 255.00 / 100 ml",
          "validity_from": "2026-01-07T01:00:00.000+01:00",
          "validity_to": "2026-02-23T00:01:00.000+01:00"
        },
        {
          "destination_code": "ALL",
          "displayed_discount": 0,
          "displayed_price": 25.5,
          "price_value": 25.5,
          "pricelist_name": "PERMANENT ALL-ALL",
          "pricelistcode": null,
          "unit_price": "€ 255.00 / 100 ml",
          "validity_from": "2026-03-29T23:59:00.000+02:00",
          "validity_to": "2099-12-31T01:00:00.000+01:00"
        }
      ],
      "price_list_fidelity": [],
      "promo_price": 25.5,
      "selling_price": 25.5
    }
  },
  "collections": [
    "trattamenti-viso",
    "make-up",
    "make-up-labbra",
    "trattamenti-labbra-e-occhi",
    "volumizzante-labbra",
    "trattamento-volumizzante-labbra",
    "all_product_collection",
    "matteo40",
    "lpc202409s1000",
    "lpc202409s1001",
    "lpc202409s1002",
    "lpc202409s1003",
    "lpc202410s1005",
    "lpc202410s1007",
    "lpc202410s1006",
    "best-seller-homepage",
    "lpc202411s1010",
    "test-promo",
    "all_catalog_no_gwp",
    "promozione-make-up-mania",
    "promozione-trattamenti-viso-e-corpo",
    "festa-della-mamma-promozioni",
    "lpc202506s1025",
    "lpc202506s1024",
    "lpc202512s1036",
    "omaggio-diego-dalla-palma-gwp-ddp-260520"
  ],
  "collection_ids": [
    281033867329,
    281033998401,
    281034326081,
    281034588225,
    281037602881,
    281038913601,
    281331695681,
    281947013185,
    281947045953,
    282321715265,
    282384990273,
    652034179459,
    652153258371,
    652153323907,
    652153356675,
    652503089539,
    665296699779,
    666331775363,
    667424620931,
    667748008323,
    670360404355,
    671538282883,
    675934404995,
    675934437763,
    693304721795,
    704501875075
  ],
  "recently_ordered_count": 94,
  "object_id": null,
  "from_url": "https://www.pinalli.it/search?page=2&query=lips"
}
```

Each scraped product returns a detailed record spanning identification, pricing, inventory, variants, and metadata.

#### Product Identity

| Field | Meaning |
|---|---|
| `ID` | Unique Shopify-style product identifier on Pinalli.it |
| `Object ID` | Internal object reference used by the search engine |
| `Handle` | URL-friendly slug for the product (e.g., `lipstick-brand-red`) |
| `Title` | Full product name as displayed in search results |
| `Vendor` | Brand or manufacturer name |
| `Product Type` | Category classification (e.g., Lipstick, Foundation) |
| `Template Suffix` | Shopify template variant used to render the product page |
| `Tags` | Comma-separated list of tags assigned to the product |
| `Named Tags` | Structured tag object with key-value pairs (e.g., `skin_type: oily`) |
| `Named Tags Names` | List of named tag keys present on the product |
| `Collections` | Collection names the product belongs to |
| `Collection IDs` | Corresponding collection IDs |

#### Dates & Lifecycle

| Field | Meaning |
|---|---|
| `Created At` | Timestamp when the product was first added to the catalog |
| `Updated At` | Timestamp of the most recent product update |
| `Published At` | Date and time the product became publicly visible on the site |

#### Pricing

| Field | Meaning |
|---|---|
| `Price` | Current selling price of the default variant |
| `Compare At Price` | Original or crossed-out price (used to show discounts) |
| `Price Ratio` | Ratio between current price and compare-at price (useful for discount filtering) |
| `Price Range` | Display-formatted price range (e.g., `€12.90 – €24.90`) |
| `Variants Min Price` | Lowest price across all variants |
| `Variants Max Price` | Highest price across all variants |
| `Variants Compare At Price Min` | Lowest compare-at price across variants |
| `Variants Compare At Price Max` | Highest compare-at price across variants |

#### Variants & Options

| Field | Meaning |
|---|---|
| `Variants Count` | Total number of product variants (e.g., shades, sizes) |
| `Variant Title` | Name of the specific variant (e.g., `Rose 01 / 5ml`) |
| `Option 1 / 2 / 3` | Values for variant axes (e.g., Shade, Size, Finish) |
| `Option Names` | Labels for each option axis (e.g., `["Shade", "Size"]`) |
| `Options` | Full structured options array with all possible values |

#### Inventory & Logistics

| Field | Meaning |
|---|---|
| `SKU` | Stock Keeping Unit — internal product/variant code |
| `Barcode` | EAN or UPC barcode for the variant |
| `Inventory Quantity` | Total stock count across locations |
| `Variants Inventory Count` | Combined inventory across all variants |
| `Inventory Policy` | Behavior when stock runs out (`deny` or `continue`) |
| `Inventory Available` | Boolean indicating whether the item is currently in stock |
| `Requires Shipping` | Whether the product requires physical shipping |
| `Taxable` | Whether VAT/tax is applied to this product |
| `Grams` | Product weight in grams |
| `Weight` | Product weight in the unit defined by the store |
| `Position` | Display order position within search results |

#### Media & Content

| Field | Meaning |
|---|---|
| `Product Image` | URL of the main product image |
| `Image` | URL of the variant-specific image (if applicable) |
| `Body HTML Safe` | Sanitized HTML product description |

#### Search & Enrichment

| Field | Meaning |
|---|---|
| `Snippet Result` | Short text snippet returned by the search engine for this product |
| `Highlight Result` | Search term highlight markup (useful for relevance analysis) |
| `Recently Ordered Count` | Approximate popularity signal based on recent order activity |
| `Meta` | Additional metadata object (may include SEO fields, custom attributes) |

***

### How to Use

1. **Build your search URLs** — Go to Pinalli.it, run a search for your keyword (e.g., `lips`, `vitamin c serum`), and copy the URL from each results page.
2. **Configure the input** — Paste the URLs into the `urls` array. Set `max_items_per_url` based on how many results you expect per page (typically up to 24–48; set higher to ensure full capture).
3. **Handle pagination** — Pinalli.it uses `?page=N` parameters. Add each page as a separate URL entry for complete coverage.
4. **Run the scraper** — Start the run and monitor progress in the log.
5. **Export your data** — Download results as JSON, CSV, or Excel for use in spreadsheets, databases, or BI tools.

**Best practices:**

- Set `ignore_url_failures: true` for multi-URL runs to avoid a single broken page halting the entire job.
- Use consistent `query` parameters across paginated URLs to ensure coherent datasets.
- For price monitoring, schedule recurring runs and compare `Price` vs `Compare At Price` over time.

***

### Use Cases & Business Value

- **Price tracking:** Monitor promotions and discount depth across beauty categories on Pinalli.it
- **Catalog auditing:** Verify product listings, images, and descriptions for brand compliance
- **Competitive intelligence:** Benchmark Pinalli's assortment against other Italian beauty retailers
- **Inventory signals:** Use `Inventory Available` and `Inventory Quantity` to detect stock trends
- **SEO & content research:** Analyze `Tags`, `Named Tags`, and `Body HTML Safe` to understand how products are categorized and described

***

### Conclusion

The **Pinalli.it Product Search Scraper** gives analysts, brand teams, and developers reliable access to structured beauty product data from one of Italy's most prominent cosmetics retailers. With 50+ output fields covering pricing, inventory, variants, and metadata, it provides the depth needed for serious market research and competitive monitoring. Configure your search URLs, set your item limit, and start extracting actionable data in minutes.

# 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.pinalli.it/search?page=2&query=lips"
  ],
  "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.pinalli.it/search?page=2&query=lips"
    ],
    "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/pinalli-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.pinalli.it/search?page=2&query=lips"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/pinalli-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.pinalli.it/search?page=2&query=lips"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/pinalli-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Pinalli Product Search Scraper",
        "description": "Scrape Pinalli.it search result pages to collect structured beauty product data including prices, variants, inventory, images, and 50+ fields per product — perfect for price monitoring, catalog research, and competitive analysis.",
        "version": "0.0",
        "x-build-id": "jMqf5GVNeKtRisMIq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~pinalli-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-pinalli-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~pinalli-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-pinalli-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~pinalli-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-pinalli-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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
