# PROFECO Buró Comercial Scraper (`fateful_zebec/profeco-buro-comercial`) Actor

Search Mexican companies in PROFECO Buró Comercial and export complaint breakdowns: yearly stats, conciliation rates, and claim motives. Great for due diligence and risk checks.

- **URL**: https://apify.com/fateful\_zebec/profeco-buro-comercial.md
- **Developed by:** [SANG](https://apify.com/fateful_zebec) (community)
- **Categories:** Other, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 company reports

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### PROFECO Buró Comercial Scraper

Search Mexican companies in **[PROFECO Buró Comercial](https://burocomercial.profeco.gob.mx/)** and export structured complaint reports: totals, yearly breakdown, conciliation rates, and main claim reasons.

Ideal for due diligence, journalists, lawyers, fintech risk checks, and “is this company reliable?” tools.

#### What you get

For each matching provider:

| Field | Description |
|--------|-------------|
| `razonSocial` / `nombreComercial` | Legal and commercial name |
| `giro` | Business category |
| `totalQuejasHistoricas` | Historical complaints shown in search |
| `aniosDisponibles` | Years with data |
| `desglosePorAnio` | Per-year national stats + claim motives |
| `resumen` | Latest-year conciliation rate summary |
| `fuente` | Official source URL |

**Example (WALMART, 2025):** ~7,135 complaints received nationally; motives like delivery refusal, returns, deposits, advertised prices, warranties.

#### Input

```json
{
  "queries": ["WALMART", "COPPEL"],
  "maxResultsPerQuery": 5,
  "includeBreakdown": true,
  "years": ["2024", "2025"],
  "includeRegionalBreakdown": false,
  "maxYearsPerProvider": 3,
  "requestDelayMs": 400
}
```

| Parameter | Default | Description |
|-----------|---------|-------------|
| `queries` | *required* | Company / brand names to search |
| `giro` | empty | Optional business-type filter |
| `maxResultsPerQuery` | `10` | Max providers per search term |
| `includeBreakdown` | `true` | Fetch years + motives + stats |
| `years` | `[]` | Specific years (empty = most recent) |
| `includeRegionalBreakdown` | `false` | Per PROFECO zone (slower) |
| `maxYearsPerProvider` | `5` | Cap years per company |
| `requestDelayMs` | `400` | Delay between requests (be polite) |

**Tip:** PROFECO recommends searches **without accents or punctuation** (e.g. `GRUPO RAIZ` instead of `GRUPO RAÍZ`).

#### Output example

```json
{
  "query": "WALMART",
  "razonSocial": "NUEVA WAL MART DE MEXICO, S DE RL DE CV",
  "nombreComercial": "WALMART",
  "giro": "TIENDAS DE AUTOSERVICIO",
  "totalQuejasHistoricas": 29456,
  "resumen": {
    "ultimoAnio": 2025,
    "quejasRecibidasUltimoAnio": 7135,
    "tasaConciliacionUltimoAnio": 0.3125,
    "principalesMotivosUltimoAnio": [
      "Negativa a la entrega del producto o servicio",
      "Negativa a cambio o devolución"
    ]
  },
  "desglosePorAnio": [
    {
      "anio": 2025,
      "motivosReclamacion": ["..."],
      "nacional": {
        "quejasRecibidas": 7135,
        "conciliadas": 2230,
        "noConciliadas": 532,
        "enTramite": 0
      }
    }
  ],
  "fuente": "https://burocomercial.profeco.gob.mx/"
}
```

#### Important limitations

1. Data comes from the **public** Buró Comercial website (not a private PROFECO partner API).
2. Site structure may change; the Actor may need updates.
3. Only complaints PROFECO is allowed to publish appear (in-progress cases may be hidden; individuals are aggregated).
4. Telecommunications providers may require email contact per PROFECO notice.
5. No results ≠ “no complaints forever”; names may differ from the brand you know.

#### How it works

1. Calls the same backend endpoints the Buró Comercial web UI uses.
2. Parses provider list (reason social, brand, industry, totals).
3. Optionally enriches each company with yearly complaint breakdown and motives.
4. Pushes clean JSON rows to the dataset.

#### Support

Issues or feature requests: open an issue on the Actor page in Apify Console / Store.

**Source:** <https://burocomercial.profeco.gob.mx/>

# Actor input Schema

## `queries` (type: `array`):

Nombres comerciales o razones sociales. Se normalizan solos (sin acentos, sin SA DE CV, etc.). Ej: WALMART, Grupo Raíz, COPPEL.

## `giro` (type: `string`):

Opcional. Filtra por giro (ej. TIENDAS DE AUTOSERVICIO).

## `exactMatch` (type: `boolean`):

Si está activo, solo devuelve coincidencias exactas (o casi exactas: mismo nombre normalizado / prefijo de marca).

## `bestMatch` (type: `boolean`):

Si está activo, devuelve solo el mejor resultado por cada query (mayor matchScore; empate por más quejas).

## `maxResultsPerQuery` (type: `integer`):

Solo aplica si Best match está desactivado. Máximo de proveedores por query.

## `includeBreakdown` (type: `boolean`):

IMPORTANTE: actívalo para ver quejas por año, conciliadas/no conciliadas y motivos. Si está apagado solo verás el total histórico del listado.

## `yearFrom` (type: `string`):

Primer año del desglose (incluido). Lista 2000–2026.

## `yearTo` (type: `string`):

Último año del desglose (incluido). Lista 2000–2026. Debe ser ≥ Año desde.

## `allYears` (type: `boolean`):

Si está activo, ignora Año desde/hasta y desglosa todos los años que PROFECO tenga para esa empresa (hasta el tope de Máx. años).

## `maxYearsPerProvider` (type: `integer`):

Tope de seguridad al desglosar (años más recientes primero).

## `includeRegionalBreakdown` (type: `boolean`):

Además del nacional, obtiene quejas por cada unidad administrativa PROFECO. Mucho más lento.

## `requestDelayMs` (type: `integer`):

Pausa entre llamadas a PROFECO.

## Actor input object example

```json
{
  "queries": [
    "WALMART",
    "COPPEL"
  ],
  "giro": "",
  "exactMatch": true,
  "bestMatch": true,
  "maxResultsPerQuery": 10,
  "includeBreakdown": true,
  "yearFrom": "2023",
  "yearTo": "2026",
  "allYears": false,
  "maxYearsPerProvider": 20,
  "includeRegionalBreakdown": false,
  "requestDelayMs": 400
}
```

# Actor output Schema

## `companyReports` (type: `string`):

Default dataset items: one row per matched company with complaint totals, yearly breakdown, motives and summary.

## `companyReportsJson` (type: `string`):

Same results as a downloadable JSON array.

## `companyReportsCsv` (type: `string`):

Same results as a downloadable CSV file.

## `consoleRun` (type: `string`):

Link to this Actor run in Apify Console.

# 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 = {
    "queries": [
        "WALMART",
        "COPPEL"
    ],
    "yearFrom": "2023",
    "yearTo": "2026"
};

// Run the Actor and wait for it to finish
const run = await client.actor("fateful_zebec/profeco-buro-comercial").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 = {
    "queries": [
        "WALMART",
        "COPPEL",
    ],
    "yearFrom": "2023",
    "yearTo": "2026",
}

# Run the Actor and wait for it to finish
run = client.actor("fateful_zebec/profeco-buro-comercial").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 '{
  "queries": [
    "WALMART",
    "COPPEL"
  ],
  "yearFrom": "2023",
  "yearTo": "2026"
}' |
apify call fateful_zebec/profeco-buro-comercial --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fateful_zebec/profeco-buro-comercial",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "PROFECO Buró Comercial Scraper",
        "description": "Search Mexican companies in PROFECO Buró Comercial and export complaint breakdowns: yearly stats, conciliation rates, and claim motives. Great for due diligence and risk checks.",
        "version": "0.1",
        "x-build-id": "WsZEU8AaG5iaLVBWU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fateful_zebec~profeco-buro-comercial/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fateful_zebec-profeco-buro-comercial",
                "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/fateful_zebec~profeco-buro-comercial/runs": {
            "post": {
                "operationId": "runs-sync-fateful_zebec-profeco-buro-comercial",
                "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/fateful_zebec~profeco-buro-comercial/run-sync": {
            "post": {
                "operationId": "run-sync-fateful_zebec-profeco-buro-comercial",
                "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",
                "required": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Empresas a buscar",
                        "type": "array",
                        "description": "Nombres comerciales o razones sociales. Se normalizan solos (sin acentos, sin SA DE CV, etc.). Ej: WALMART, Grupo Raíz, COPPEL.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "giro": {
                        "title": "Filtro por giro comercial",
                        "type": "string",
                        "description": "Opcional. Filtra por giro (ej. TIENDAS DE AUTOSERVICIO).",
                        "default": ""
                    },
                    "exactMatch": {
                        "title": "Exact match",
                        "type": "boolean",
                        "description": "Si está activo, solo devuelve coincidencias exactas (o casi exactas: mismo nombre normalizado / prefijo de marca).",
                        "default": true
                    },
                    "bestMatch": {
                        "title": "Best match",
                        "type": "boolean",
                        "description": "Si está activo, devuelve solo el mejor resultado por cada query (mayor matchScore; empate por más quejas).",
                        "default": true
                    },
                    "maxResultsPerQuery": {
                        "title": "Máx. resultados por búsqueda",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Solo aplica si Best match está desactivado. Máximo de proveedores por query.",
                        "default": 10
                    },
                    "includeBreakdown": {
                        "title": "Desglosar quejas por año",
                        "type": "boolean",
                        "description": "IMPORTANTE: actívalo para ver quejas por año, conciliadas/no conciliadas y motivos. Si está apagado solo verás el total histórico del listado.",
                        "default": true
                    },
                    "yearFrom": {
                        "title": "Año desde",
                        "enum": [
                            "2000",
                            "2001",
                            "2002",
                            "2003",
                            "2004",
                            "2005",
                            "2006",
                            "2007",
                            "2008",
                            "2009",
                            "2010",
                            "2011",
                            "2012",
                            "2013",
                            "2014",
                            "2015",
                            "2016",
                            "2017",
                            "2018",
                            "2019",
                            "2020",
                            "2021",
                            "2022",
                            "2023",
                            "2024",
                            "2025",
                            "2026"
                        ],
                        "type": "string",
                        "description": "Primer año del desglose (incluido). Lista 2000–2026.",
                        "default": "2019"
                    },
                    "yearTo": {
                        "title": "Año hasta",
                        "enum": [
                            "2000",
                            "2001",
                            "2002",
                            "2003",
                            "2004",
                            "2005",
                            "2006",
                            "2007",
                            "2008",
                            "2009",
                            "2010",
                            "2011",
                            "2012",
                            "2013",
                            "2014",
                            "2015",
                            "2016",
                            "2017",
                            "2018",
                            "2019",
                            "2020",
                            "2021",
                            "2022",
                            "2023",
                            "2024",
                            "2025",
                            "2026"
                        ],
                        "type": "string",
                        "description": "Último año del desglose (incluido). Lista 2000–2026. Debe ser ≥ Año desde.",
                        "default": "2026"
                    },
                    "allYears": {
                        "title": "Ignorar rango (todos los años del proveedor)",
                        "type": "boolean",
                        "description": "Si está activo, ignora Año desde/hasta y desglosa todos los años que PROFECO tenga para esa empresa (hasta el tope de Máx. años).",
                        "default": false
                    },
                    "maxYearsPerProvider": {
                        "title": "Máx. años por proveedor",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Tope de seguridad al desglosar (años más recientes primero).",
                        "default": 20
                    },
                    "includeRegionalBreakdown": {
                        "title": "Desglose por zona/oficina",
                        "type": "boolean",
                        "description": "Además del nacional, obtiene quejas por cada unidad administrativa PROFECO. Mucho más lento.",
                        "default": false
                    },
                    "requestDelayMs": {
                        "title": "Delay entre requests (ms)",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Pausa entre llamadas a PROFECO.",
                        "default": 400
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
