# Cotodigital Product Search Scraper (`stealth_mode/cotodigital-product-search-scraper`) Actor

Scrape product listings from Coto Digital Argentina with precision. Collect 26+ fields per item including prices, SKUs, images, availability, and discounts — perfect for price monitoring, competitor analysis, and e-commerce intelligence.

- **URL**: https://apify.com/stealth_mode/cotodigital-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/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

## Coto Digital Product Search Scraper: Extract Retail Data at Scale

***

### What Is Coto Digital?

Coto Digital (cotodigital.com.ar) is Argentina's leading online supermarket and retail platform, offering groceries, beverages, personal care, and household products to thousands of customers. With dynamic pricing, frequent promotions, and rotating inventory, manually tracking product data is impractical. The **Coto Digital Product Search Scraper** automates extraction of product details from category and search pages, delivering structured data for pricing analysis, competitive monitoring, and market research.

***

### Overview

The **Coto Digital Product Search Scraper** extracts comprehensive product information from Coto Digital's search and category pages, transforming retail listings into machine-readable records. Ideal for:

- **E-commerce analysts** monitoring local retail pricing trends
- **Price comparison platforms** aggregating Argentine supermarket data
- **Market researchers** studying consumer product availability
- **Competitors** benchmarking product assortment and promotions
- **Retailers** conducting competitive intelligence

The scraper handles paginated results efficiently, supports discount extraction, and includes image URLs for downstream processing.

***

### Input Format

The Actor supports **two scraping modes** — use only **one at a time**:

1. **Scrape by URLs** — scrape data directly from a list of Coto product category or search result URLs.

```json
{
  "urls": [
    "https://www.cotodigital.com.ar/sitios/cdigi/productos/categorias/catalogo-bebidas-bebidas-sin-alcohol-aguas/catv00004086?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
```

2. **Scrape by search filters** — scrape data using a keyword and additional filters instead of providing URLs.

```json
{
  "keyword": "a",
  "sort_by": "name",
  "page": 1,
  "max_items_per_url": 200
}

```

There is also a **General settings** group that applies to both modes.

#### 1. Scrape by URLs

Use this mode when you already have specific Coto category or search URLs. When this mode is used, all options in the "Scrape by search filters" section will be disabled.

| Field | Type | Default | Description |
|---|---|---|---|
| `urls` | `array` | *(required)* | Direct links to Coto product category or search result pages. You can paste URLs one by one, or use the Bulk edit section to add a prepared list. Any Coto category or search URL with a `?page=X` parameter is supported. |
| `ignore_url_failures` | `boolean` | `true` | If `true`, the scraper continues running when a URL fails instead of stopping the entire run. Recommended for bulk jobs. |

**Pro tip:** Use the `?page=X` parameter in URLs to scrape multiple pages of the same category. For example, change `page=2` to `page=3` for subsequent pages.

#### 2. Scrape by search filters

Use this mode when you want to search using a keyword and additional filter attributes instead of scraping by URLs. If you use this mode, leave the `urls` field above empty.

| Field | Type | Default | Description |
|---|---|---|---|
| `keyword` | `string` | — | The keyword to search for. |
| `sort_by` | `string` (`""`, `name`, `price`) | — | Sort results by **Relevance** (empty), **Name** (`name`), or **Price** (`price`). |
| `page` | `integer` | — | The page number to start scraping from. |

#### 3. General settings

Applies to both scraping modes above.

| Field | Type | Default | Description |
|---|---|---|---|
| `max_items_per_url` | `integer` | `20` | Maximum number of products extracted per URL/search (1–200 recommended). |
---------------------------------------------------------------------------------------------------------------------

### Output Format

**Sample output**

```json
{
  "id": "prod00561220",
  "url": "_/R-00561220-00561220-200",
  "price": [
    {
      "id": "pl129_00561220",
      "store": "129",
      "list_price": 1600,
      "price_list": "priceList129",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl220_00561220",
      "store": "220",
      "list_price": 1600,
      "price_list": "priceList220",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl075_00561220",
      "store": "075",
      "list_price": 1600,
      "price_list": "priceList075",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl109_00561220",
      "store": "109",
      "list_price": 1600,
      "price_list": "priceList109",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl188_00561220",
      "store": "188",
      "list_price": 1600,
      "price_list": "priceList188",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl189_00561220",
      "store": "189",
      "list_price": 1600,
      "price_list": "priceList189",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl219_00561220",
      "store": "219",
      "list_price": 1600,
      "price_list": "priceList219",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl238_00561220",
      "store": "238",
      "list_price": 1600,
      "price_list": "priceList238",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl078_00561220",
      "store": "078",
      "list_price": 1600,
      "price_list": "priceList078",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl107_00561220",
      "store": "107",
      "list_price": 1600,
      "price_list": "priceList107",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl061_00561220",
      "store": "061",
      "list_price": 1500,
      "price_list": "priceList061",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 666.66,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl181_00561220",
      "store": "181",
      "list_price": 1600,
      "price_list": "priceList181",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl090_00561220",
      "store": "090",
      "list_price": 1600,
      "price_list": "priceList090",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl182_00561220",
      "store": "182",
      "list_price": 1600,
      "price_list": "priceList182",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl185_00561220",
      "store": "185",
      "list_price": 1600,
      "price_list": "priceList185",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl204_00561220",
      "store": "204",
      "list_price": 1600,
      "price_list": "priceList204",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl085_00561220",
      "store": "085",
      "list_price": 1600,
      "price_list": "priceList085",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl209_00561220",
      "store": "209",
      "list_price": 1600,
      "price_list": "priceList209",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl178_00561220",
      "store": "178",
      "list_price": 1600,
      "price_list": "priceList178",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl064_00561220",
      "store": "064",
      "list_price": 1600,
      "price_list": "priceList064",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl056_00561220",
      "store": "056",
      "list_price": 1600,
      "price_list": "priceList056",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl184_00561220",
      "store": "184",
      "list_price": 1600,
      "price_list": "priceList184",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl165_00561220",
      "store": "165",
      "list_price": 1600,
      "price_list": "priceList165",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl215_00561220",
      "store": "215",
      "list_price": 1600,
      "price_list": "priceList215",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl160_00561220",
      "store": "160",
      "list_price": 1600,
      "price_list": "priceList160",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl092_00561220",
      "store": "092",
      "list_price": 1600,
      "price_list": "priceList092",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl091_00561220",
      "store": "091",
      "list_price": 1600,
      "price_list": "priceList091",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl063_00561220",
      "store": "063",
      "list_price": 1600,
      "price_list": "priceList063",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl131_00561220",
      "store": "131",
      "list_price": 1600,
      "price_list": "priceList131",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl065_00561220",
      "store": "065",
      "list_price": 1600,
      "price_list": "priceList065",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl200_00561220",
      "store": "200",
      "list_price": 1600,
      "price_list": "priceList200",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl197_00561220",
      "store": "197",
      "list_price": 1600,
      "price_list": "priceList197",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 711.11,
      "price_without_tax": 1322.31
    },
    {
      "id": "pl060_00561220",
      "store": "060",
      "list_price": 1350,
      "price_list": "priceList060",
      "sale_image1": null,
      "sale_image2": null,
      "sale_image3": null,
      "format_price": 600,
      "price_without_tax": 1115.7
    }
  ],
  "sku_id": "sku00561220",
  "sku_plu": 561220,
  "discounts": [],
  "sale_type": [],
  "image_url": "https://static.cotodigital3.com.ar/sitios/fotos/large/00561200/00561220.jpg",
  "product_brand": "SALDAN",
  "product_format": "Litro",
  "product_is_noa": 0,
  "sku_description": "Soda Saldan 2.25l",
  "sku_display_name": "Soda Saldan 2.25l",
  "product_main_ean": 7791913000814,
  "product_weighable": 0,
  "store_availability": [
    "056",
    "063",
    "064",
    "065",
    "075",
    "078",
    "085",
    "090",
    "091",
    "092",
    "107",
    "109",
    "129",
    "131",
    "160",
    "165",
    "178",
    "181",
    "182",
    "184",
    "185",
    "188",
    "189",
    "197",
    "200",
    "204",
    "209",
    "215",
    "219",
    "220",
    "238"
  ],
  "product_list_price": 1600,
  "product_quantity_step": 0,
  "product_large_image_url": "https://static.cotodigital3.com.ar/sitios/fotos/large/00561200/00561220.jpg",
  "product_format_quantity": 1,
  "product_unit_of_measure": "UNI",
  "product_minimum_quantity": 0,
  "product_medium_image_url": "https://static.cotodigital3.com.ar/sitios/fotos/medium/00561200/00561220.jpg",
  "discounts_payment_methods": [],
  "groups": [
    {
      "group_id": "catv00001256",
      "display_name": "Bebidas",
      "path": "/categoria",
      "path_list": [
        {
          "id": "categoria",
          "display_name": "Categorias"
        }
      ]
    },
    {
      "group_id": "catv00005381",
      "display_name": "Sodas",
      "path": "/categoria/catv00001256/catv00001301/catv00004086/catv00001535",
      "path_list": [
        {
          "id": "categoria",
          "display_name": "Categorias"
        },
        {
          "id": "catv00001256",
          "display_name": "Bebidas"
        },
        {
          "id": "catv00001301",
          "display_name": "Bebidas Sin Alcohol"
        },
        {
          "id": "catv00004086",
          "display_name": "Aguas"
        },
        {
          "id": "catv00001535",
          "display_name": "Aguas Y Sodas"
        }
      ]
    },
    {
      "group_id": "catv00001301",
      "display_name": "Bebidas Sin Alcohol",
      "path": "/categoria/catv00001256",
      "path_list": [
        {
          "id": "categoria",
          "display_name": "Categorias"
        },
        {
          "id": "catv00001256",
          "display_name": "Bebidas"
        }
      ]
    },
    {
      "group_id": "catv00001535",
      "display_name": "Aguas Y Sodas",
      "path": "/categoria/catv00001256/catv00001301/catv00004086",
      "path_list": [
        {
          "id": "categoria",
          "display_name": "Categorias"
        },
        {
          "id": "catv00001256",
          "display_name": "Bebidas"
        },
        {
          "id": "catv00001301",
          "display_name": "Bebidas Sin Alcohol"
        },
        {
          "id": "catv00004086",
          "display_name": "Aguas"
        }
      ]
    },
    {
      "group_id": "catv00004086",
      "display_name": "Aguas",
      "path": "/categoria/catv00001256/catv00001301",
      "path_list": [
        {
          "id": "categoria",
          "display_name": "Categorias"
        },
        {
          "id": "catv00001256",
          "display_name": "Bebidas"
        },
        {
          "id": "catv00001301",
          "display_name": "Bebidas Sin Alcohol"
        }
      ]
    }
  ],
  "from_url": "https://www.cotodigital.com.ar/sitios/cdigi/productos/categorias/catalogo-bebidas-bebidas-sin-alcohol-aguas/catv00004086?page=2"
}
```

Each product record contains 26 fields spanning pricing, identification, inventory, and media:

#### Product Identification

| Field | Description |
|---|---|
| `ID` | Unique Coto product identifier |
| `URL` | Direct link to the product page on Coto Digital |
| `SKU ID` | Internal SKU number in Coto's system |
| `SKU PLU` | PLU (Price Look-Up) code for barcode scanning |
| `SKU Description` | Full product name and specifications |
| `SKU Display Name` | Short display name shown in search results |
| `Product Main EAN` | European Article Number (barcode) |

#### Pricing & Discounts

| Field | Description |
|---|---|
| `Price` | Current selling price in Argentine Pesos (ARS) |
| `Product List Price` | Original/list price before discounts |
| `Discounts` | Active promotion amounts or percentages |
| `Discounts Payment Methods` | Payment methods qualifying for discounts (e.g., debit card, credit card) |
| `Sale Type` | Promotion type (e.g., "on sale", "regular") |

#### Product Details

| Field | Description |
|---|---|
| `Product Brand` | Manufacturer or brand name |
| `Product Format` | Package type (e.g., bottle, can, box) |
| `Product Format Quantity` | Volume or unit size (e.g., 500ml, 2kg) |
| `Product Unit Of Measure` | Measurement unit (e.g., liters, kilograms) |
| `Product Is NOA` | Indicator for non-alcoholic designation (relevant for beverages) |
| `Product Weighable` | Whether the product is sold by weight |
| `Product Minimum Quantity` | Minimum purchase quantity required |
| `Product Quantity Step` | Increment for quantity selection (e.g., by units, by cases) |

#### Inventory & Availability

| Field | Description |
|---|---|
| `Store Availability` | Stock status across Coto stores (available, out of stock, limited) |
| `Groups` | Product category/group classification |

#### Media & Imagery

| Field | Description |
|---|---|
| `Image URL` | Primary product image thumbnail |
| `Product Large Image URL` | High-resolution product image |
| `Product Medium Image URL` | Medium-sized product image for listings |

***

### How to Use

1. **Select a category** — Navigate to Coto Digital, browse categories (e.g., beverages, dairy, fresh produce), and copy the category URL.
2. **Paginate if needed** — To scrape multiple pages, adjust the `?page=` parameter or add separate URLs for each page.
3. **Configure input** — Paste URLs into the `urls` array. Set `max_items_per_url` based on expected product count (max 200).
4. **Set error handling** — Keep `ignore_url_failures: true` to skip problematic URLs without stopping the run.
5. **Execute & export** — Run the scraper and download results as JSON, CSV, or Excel.

**Best practices:**

- Start with `max_items_per_url: 50` to test before scaling to higher limits.
- Use category URLs rather than full-site search to keep results focused.
- Check the output for null values in discount fields — not all products have active promotions.

***

### Use Cases & Business Value

- **Price intelligence:** Track competitor pricing on key product categories in real-time
- **Market basket analysis:** Identify popular product combinations and trends in Argentine retail
- **Supply chain insights:** Monitor inventory levels and availability across categories
- **Promotional tracking:** Extract discount data to analyze competitor promotion strategies
- **Product research:** Build datasets of product attributes, brands, and formats for analysis

The **Coto Digital Product Search Scraper** enables retailers, aggregators, and researchers to maintain competitive awareness in Argentina's growing e-commerce market without manual data entry.

***

### Conclusion

Whether you're benchmarking prices, building a price comparison engine, or studying Argentine retail trends, the **Coto Digital Product Search Scraper** delivers accurate, structured product data at scale. Extract 26+ fields per product in minutes — data that would take hours to collect manually.

# 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.

## `keyword` (type: `string`):

Enter the keyword to search for items

## `sort_by` (type: `string`):

Sort items by options

## `page` (type: `integer`):

Specify the page number to start scraping from

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.cotodigital.com.ar/sitios/cdigi/productos/categorias/catalogo-bebidas-bebidas-sin-alcohol-aguas/catv00004086?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# Actor output Schema

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

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "urls": [
        "https://www.cotodigital.com.ar/sitios/cdigi/productos/categorias/catalogo-bebidas-bebidas-sin-alcohol-aguas/catv00004086?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/cotodigital-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.cotodigital.com.ar/sitios/cdigi/productos/categorias/catalogo-bebidas-bebidas-sin-alcohol-aguas/catv00004086?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/cotodigital-product-search-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 '{
  "urls": [
    "https://www.cotodigital.com.ar/sitios/cdigi/productos/categorias/catalogo-bebidas-bebidas-sin-alcohol-aguas/catv00004086?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/cotodigital-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,stealth_mode/cotodigital-product-search-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/r8pX8AvFYMRkjM4qD/builds/ED5MfckMjGuvqLcl5/openapi.json
