Mexico Business Directory Scraper (DENUE)
DENUE Mexico Business Directory Scraper
Scrapes establishment data from DENUE, Mexico's national economic unit registry maintained by INEGI. Returns geo coordinates, SCIAN industry codes, employee ranges, contact details, and full addresses for 5.5M+ active businesses — filtered by state, keyword, or sector.
DENUE Scraper Features
- Extracts up to 5.5M Mexican business listings from the official INEGI DENUE database
- Filters by state (entidad federativa) — all 32 states plus national
- Filters by activity keyword (e.g., "restaurante", "farmacia", "construccion") or pulls all establishments
- Returns geo coordinates (latitude/longitude) for every record — map-ready out of the box
- Includes SCIAN industry class descriptions and employee range (estrato) for sector classification
- Collects contact info where available: phone number, email, website
- Outputs full structured addresses: street, exterior number, interior number, neighborhood, postal code
- Handles DENUE's offset-based pagination automatically — just set
maxItemsand walk away - Uses the official INEGI REST API — no browser, no proxy required
Who Uses DENUE Data?
- Sales teams — Build targeted prospect lists filtered by industry and state, then load into a CRM
- Market researchers — Map business density by sector across Mexico's 32 states
- Real estate analysts — Identify commercial activity patterns by neighborhood and postal code
- Logistics teams — Geocode delivery destinations and classify customers by industry
- Competitive intelligence — Count competitors in a city by SCIAN code before entering a market
- Academic researchers — Study employment distribution and formality rates across Mexican states
How DENUE Scraper Works
- Provide a free INEGI API token. Register at inegi.org.mx — enter your email and the token arrives automatically.
- Set your filters. Choose a state code (
09for CDMX,00for all states) and an activity keyword, or leave the keyword blank to pull all businesses in the state. - The scraper paginates through DENUE. It fetches records in batches, stopping at your
maxItemslimit or when the dataset is exhausted. - Output lands in your Apify dataset. Clean JSON with 20 fields per establishment, ready for export or downstream processing.
Input
{
"apiToken": "your-denue-api-token-here",
"entidad": "09",
"keyword": "restaurante",
"pageSize": 200,
"maxItems": 1000
}
| Field | Type | Default | Description |
|---|---|---|---|
apiToken |
string | — | Required. Your free INEGI DENUE API token. Register at inegi.org.mx. |
entidad |
string | "09" |
Two-digit state code. "09" = CDMX, "00" = all states. See full list of codes in the input form. |
keyword |
string | "restaurante" |
Activity keyword filter. Use "0" or leave empty for all establishments in the selected state. |
pageSize |
integer | 200 |
Records per API request (1–1000). Larger values are faster for bulk runs. |
maxItems |
integer | 15 |
Maximum establishments to scrape. Set high for bulk downloads; keep low for test runs. |
DENUE Scraper Output Fields
{
"id": "11647314",
"nombre": "BARBACOA MALENO",
"razon_social": "BARBACOA MALENO SA DE CV",
"clase_actividad": "Restaurantes con servicio de preparación de antojitos",
"estrato": "0 a 5 personas",
"tipo_vialidad": "CALLE",
"calle": "CENICIENTA FRANCISCO I MADERO",
"num_exterior": "12",
"num_interior": "",
"colonia": "SAN MIGUEL AMANTLA",
"cp": "02700",
"ubicacion": "Ciudad de México, Azcapotzalco",
"entidad": "09",
"municipio": "",
"telefono": "5553567890",
"correo_e": "",
"sitio_internet": "",
"tipo": "Privado",
"latitud": 19.4634,
"longitud": -99.1987,
"source_url": "https://www.inegi.org.mx/app/api/denue/v1/consulta/BuscarEntidad/restaurante/09/*/<token>"
}
| Field | Type | Description |
|---|---|---|
id |
string | Internal DENUE establishment ID |
nombre |
string | Trade name of the establishment |
razon_social |
string | Legal name / razón social |
clase_actividad |
string | SCIAN economic activity class description |
estrato |
string | Employee range (e.g., "0 a 5 personas", "6 a 10 personas") |
tipo_vialidad |
string | Street type (CALLE, AVENIDA, BOULEVARD, etc.) |
calle |
string | Street name |
num_exterior |
string | Exterior street number |
num_interior |
string | Interior number, suite, or floor |
colonia |
string | Neighborhood (colonia) |
cp |
string | Postal code (5 digits) |
ubicacion |
string | Combined state + municipality string |
entidad |
string | State code (01–32) |
municipio |
string | Municipality code (3 digits, where available) |
telefono |
string | Phone number |
correo_e |
string | Email address |
sitio_internet |
string | Website URL |
tipo |
string | Establishment type (Privado, Público, No especificado) |
latitud |
number | Latitude coordinate (WGS84) |
longitud |
number | Longitude coordinate (WGS84) |
source_url |
string | DENUE API URL used to retrieve this record |
🔍 FAQ
How do I get a DENUE API token?
DENUE Scraper requires a free INEGI API token. Go to inegi.org.mx/app/api/denue/v1/tokenVerify.aspx, enter your email address, and the token arrives in your inbox within a minute. No account signup, no payment — INEGI provides this as a public data service.
How much does DENUE Scraper cost to run?
DENUE Scraper charges $0.10 per run plus $0.001 per record — about $1.10 for 1,000 establishments. Scraping all 5.5M records would cost roughly $5,600 in data charges plus platform costs, which is why the maxItems default is conservative. Start small.
Can I scrape all of Mexico at once?
Set entidad to "00" and keyword to "0" to pull all establishments in all states. The dataset contains 5.5M+ records, so set maxItems to a realistic target and plan for a long run. DENUE is a government API with no formal rate limits — the scraper adds a 500ms delay between pages to stay polite.
Does DENUE Scraper need proxies?
No. It calls the official INEGI DENUE REST API directly. No browser, no headless rendering, no proxy required.
What does the employee range (estrato) field mean?
The estrato field uses DENUE's standard personnel strata: "0 a 5 personas", "6 a 10 personas", "11 a 30 personas", "31 a 50 personas", "51 a 100 personas", "101 a 250 personas", "251 y más personas". It's a proxy for company size, not an exact headcount.
Need More Features?
Need additional filters, municipality-level breakdowns, or custom field mapping? File an issue or get in touch.
Why Use DENUE Scraper?
- Official source — Pulls directly from INEGI's DENUE API, the same database used by the Mexican government for economic census and planning.
- Geo-ready output — Every record includes latitude and longitude coordinates, so you can map results immediately without a geocoding step.
- Free token, no scraping friction — The INEGI token takes 60 seconds to obtain and is genuinely free, which puts this dataset in a different category from most paid business directories.