# Cyberpuerta Mexico Scraper: Hardware Prices & Stock (`latinamericadata/cyberpuerta-mexico`) Actor

Extract Cyberpuerta Mexico products, prices in MXN, brands, availability and product links. Search multiple terms, monitor prices and export JSON, CSV or Excel.

- **URL**: https://apify.com/latinamericadata/cyberpuerta-mexico.md
- **Developed by:** [Latin America Data](https://apify.com/latinamericadata) (community)
- **Categories:** E-commerce
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 product delivereds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Cyberpuerta Mexico Scraper: Product Prices, Stock & API

Extract Cyberpuerta Mexico product search results with MXN prices, brands, availability and product links. Designed for retail price monitoring, catalog research and repeated competitor comparisons. Export the dataset as JSON, CSV or Excel, or run through the Apify API.

This is an independent tool by Latin America Data, not an official Cyberpuerta API and not affiliated with or endorsed by Cyberpuerta.

### Quick start

```json
{"term":"monitor","maxItems":3,"maxRuntimeSecs":90}
```

Run several searches:

```json
{"searchTerms":["monitor samsung","monitor lg"],"maxRuntimeSecs":240}
```

### Input

| Field | Behavior |
| --- | --- |
| term | Search phrase, brand or model. |
| searchTerms | Optional list replacing term. Duplicate products across terms are removed. |
| maxItems | Optional maximum unique products for the whole run. No default result cap. |
| maxPages | Optional maximum pages per term. No default page cap. |
| startPage | One-based starting page, default 1. |
| maxRuntimeSecs | Safety budget, default 240 seconds, maximum 7200. Earlier results are retained. |
| requestTimeoutSecs | Request timeout, default 30 seconds. |

No proxy configuration or account credentials are required from the user. Connection routes are handled automatically. The short example is intentionally cheap; remove maxItems to continue until the source ends, the runtime budget expires or the Apify spending limit is reached.

### Output

Successful product rows contain status, country, source, product_id, sku, ean, title, brand, price, list_price, currency, available, reported_quantity, image_url, source_url, search_term, page, rank and scraped_at. Additional fields include source-specific specifications, ratings and shipping information. Fields not supplied by the source remain null; no values are invented.

Products are saved progressively after each page, with deterministic page order and duplicate removal. RUN_SUMMARY records search progress, completion, stop reason, requests, retries, response bytes and time to the first delivered result. Proxy byte figures measure response bodies, not Apify's billable traffic.

### Status and errors

- success: real validated products.
- no_results: source confirms an empty search, with no product charge.
- blocked: source denies access or returns a verification page.
- failed: invalid input, unavailable source or changed data format.
- partial: earlier products were saved, but a later page or budget prevented completion.

Operational diagnostic rows are not charged as products. A blocked page is never treated as a valid empty search. A run with no usable products and an access/error condition fails visibly; inspect RUN_SUMMARY for detail.

### Pricing

USD 0.003 per unique validated product delivered (USD 3 per 1,000 products), plus Apify platform consumption paid by the user, including compute, storage and proxies where used. Configure an Apify spending limit for a hard cost boundary. Empty results and diagnostic rows do not incur the per-product event.

### Source and limitations

Country: Mexico. Source contract: Cyberpuerta's Nuxt server-rendered catalog data, including prices, stock, identifiers and specifications. Pagination follows the storefront's next-page links.

The source can rate-limit or block requests. Automatic Mexican proxy fallback is built in, but successful access cannot be guaranteed. Listed stock and shipping prices are source-reported and can change with destination or checkout. Some returned page sizes vary; the actor does not stop merely because a page has fewer products.

Use the data lawfully and respect source terms and applicable restrictions. Search-result coverage does not imply access to private accounts, checkout-only prices or the entire retailer inventory.

### API and automation

Use the Actor's API tab for the current run endpoint and generated Python/JavaScript examples. Schedule repeated runs and compare product_id or sku over time to monitor changes. Dataset output fields remain consistent between scheduled and manual runs.

# Actor input Schema

## `term` (type: `string`):

Producto, marca o categoria.

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

Opcional. Sustituye term. Se eliminan productos duplicados entre busquedas.

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

Opcional. Sin este limite, continua hasta agotar resultados, tiempo o presupuesto.

## `maxPages` (type: `integer`):

Opcional. No hay un limite de paginas predeterminado.

## `startPage` (type: `integer`):

Primera pagina que se consulta.

## `maxRuntimeSecs` (type: `integer`):

Preserva resultados anteriores cuando se alcanza este presupuesto de tiempo.

## `requestTimeoutSecs` (type: `integer`):

Espera maxima por respuesta del sitio.

## Actor input object example

```json
{
  "term": "monitor",
  "startPage": 1,
  "maxRuntimeSecs": 240,
  "requestTimeoutSecs": 30
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("latinamericadata/cyberpuerta-mexico").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("latinamericadata/cyberpuerta-mexico").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call latinamericadata/cyberpuerta-mexico --silent --output-dataset

```

## MCP server setup

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

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/Ip1mHe3oD3LsDGxWG/builds/EHQdVnKSeGIen6oYD/openapi.json
