# Office Depot Mexico Scraper & API: Prices, Products & Stock (`latinamericadata/office-depot-mexico`) Actor

Extract Office Depot Mexico products, prices in MXN, SKU codes, brands, discounts and catalog availability. Search electronics and office supplies; export JSON, CSV or Excel.

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

## Pricing

from $4.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

## Office Depot Mexico Scraper & API

Extract **Office Depot Mexico product prices, SKU codes, brands, discounts and catalog availability** for laptops, monitors, printers, office furniture, stationery and other office supplies. Export real products to JSON, CSV or Excel and use the Actor through the Apify API for recurring price comparisons and assortment monitoring.

This independent tool is not affiliated with Office Depot. It collects the public Mexican storefront, with prices in **MXN**. No account, postal code, proxy settings or session configuration is required.

### Price

**USD 0.004 per unique product delivered**, plus Apify platform usage paid by the user. Duplicate products, empty searches, error messages and run summaries are not charged as products. Set Apify's maximum charge for a spending ceiling; optionally set a product or page limit.

### Input

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

| Input | Meaning |
| --- | --- |
| `term` | Product, brand or category keywords; default `laptop`. |
| `searchTerms` | Optional 1-100 search terms replacing `term`. Products are deduplicated across terms. |
| `maxItems` | Optional total product limit. No hidden default product limit. |
| `maxPages` | Optional page limit per search. No hidden default page limit. |
| `startPage` | First page to collect; default 1. Native links are followed to reach later pages. |
| `includeDetails` | Default false. Fetch public descriptions and aggregate ratings; adds requests and usage. |
| `maxRuntimeSecs` | Safety time budget; default 240 seconds, up to 7200. |
| `requestTimeoutSecs` | Per-request timeout; default 30 seconds, up to 90. |

Without a product or page limit, the Actor follows available source pages until the retailer finishes the search, the runtime budget expires or Apify's spending ceiling is reached. Search terms may redirect to the retailer's chosen category: the Actor follows that category's own pagination, not unrelated header links.

### Output

Each product includes `product_id`, `sku`, `title`, `brand`, `price`, `list_price`, `currency`, `available`, `availability_scope`, `image_url`, `source_url`, `listing_url`, `search_url`, `search_term`, `page`, `rank`, `status`, `country`, `source` and `scraped_at`.

`price` is the advertised listing price, including the sale price when shown. The retailer's structured-data regular price is not substituted for a lower sale price. `list_price` is populated only when the listing shows a higher previous price. Some listings publish structured brand and availability for only a subset of items; the others remain null. Enable `includeDetails` to enrich matching products with their public brand, availability, description and aggregate ratings. Fields not supplied by the source remain null or empty; personal reviews are not collected.

**Availability is the public catalog's structured availability, not delivery or branch inventory.** Office Depot can show location-dependent stock after a postal code is selected. Hidden "Agotado" placeholders are not treated as proof that an item is out of stock. Quantities, delivery promises and branch stock are not invented.

### Run Summary and Reliability

Page batches are delivered progressively in deterministic order, with unique SKU codes across searches. Public HTML and structured product contracts are fetched through reusable Scrapling HTTP sessions. A blocked or stalled direct route automatically switches to a fresh Mexican residential proxy session when available; direct requests wait at most eight seconds before fallback, subject to the requested timeout and remaining budget. No browser is launched. Proxy and platform usage may add cost.

The key-value store contains `RUN_SUMMARY` and `DIAGNOSTICS`, separate from product rows. Statuses distinguish `success`, verified `no_results`, `blocked`, `failed` and `partial`. A later failure preserves products already delivered. Verification pages, changed prices or broken pagination are never reported as empty searches. Runtime, requests, delivered and charged rows, duplicate removal and proxy traffic are recorded for auditing.

### Uses

Office Depot Mexico API and scraper data support competitor price monitoring, promotion tracking, B2B procurement comparisons and office-supply catalog research. Spanish searches include **precios Office Depot Mexico, productos, ofertas, laptops, impresoras, papeleria y muebles de oficina**. Source products and prices can change between runs; this Actor does not guarantee every SKU, personalized offers or location-specific stock.

# Actor input Schema

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

Product, brand or category keywords.

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

Optional 1-100 searches, replacing Search term. Products are deduplicated across terms.

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

Optional total product limit. Leave blank for all source results within the time and spending budget.

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

Optional page limit. Leave blank to follow all available pages.

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

First source page to collect.

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

Safety time budget, independent of the result count.

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

Maximum time per source request.

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

Fetch public product descriptions and aggregate ratings. Adds requests and usage; no personal reviews are collected.

## Actor input object example

```json
{
  "term": "laptop",
  "startPage": 1,
  "maxRuntimeSecs": 240,
  "requestTimeoutSecs": 30,
  "includeDetails": false
}
```

# Actor output Schema

## `products` (type: `string`):

No description

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

No description

## `diagnostics` (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/office-depot-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/office-depot-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/office-depot-mexico --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,latinamericadata/office-depot-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/5Ipu45NIYnACRvT3t/builds/mfcq1SREXA4Nfcmrp/openapi.json
