Technical documentation for the DealTunnel data API. 47.7M active business entities from public registries across 12 Latin American countries.
DealTunnel ingests official business registries from 12 Latin American countries, normalizes them to a common schema, enriches them with decision-maker contact data, and serves them via REST API.
The dataset: 132,013,983 official records from public sources. 47.7M active business entities. 29.6M with phone declared at the source (92% from Brazil).
Sources by name: DENUE/INEGI (Mexico), RUES/Confecamaras (Colombia), CNPJ/Receita Federal (Brazil), SII (Chile), SUNAT (Peru), ARCA (Argentina), SRI (Ecuador), DNIT (Paraguay), DGII (Dominican Republic), DEI/RUPE (Uruguay).
If a field is missing for a country, this documentation says so. If contact data comes from enrichment rather than the original source, the record says so.
The numbers on this page were measured on July 12, 2026, by counting every row of every complete registry download. Each file has a provenance hash (SHA-256) linking it to the original public source.
Four steps.
Bulk download from public registries. CSV, ZIP, or API, depending on the country. Every source is free and publicly accessible. Every download produces a provenance hash: SHA-256 of the file, paired with the source URL and download date.
Raw records map to a common schema. Tax IDs (NIT, RFC, RUT, CNPJ) map to dt_id. Activity codes (CIIU, SCIAN) normalize to a unified classification. Company type, legal structure, registration status, and representative name come straight from the source. Fields that exist in one country but not another are null, not fabricated.
Decision-maker contact data (email, phone, LinkedIn) via Clay. This step is manual, costs money, and runs on demand. A human operator exports a batch, runs it through Clay, and reimports the results. Every enriched field carries a source tag: clay, manual, or registry.
REST API with filters by CIIU code, city, country, and registration status. Full-text search on company name. CSV export with the same filters. Paginated responses, GZip compression, scoped API keys.
The table below shows exactly what each source provides.
| Country | Source | Records | Active | Phone | Updates | |
|---|---|---|---|---|---|---|
| Brazil | CNPJ / Receita Federal | 56.8M | 21.5M | 96.9% | 93.5% | Monthly |
| Mexico | DENUE / INEGI | 6.1M | 6.1M | 39.2% | 15.2% | Biannual |
| Colombia | RUES / Confecamaras | 9.3M | 3.3M | 0%* | 0%* | Monthly |
| Chile | SII | 994K | 994K | 0% | 0% | Annual |
| Peru | SUNAT | 846K | 846K | 0% | 0% | Daily |
| Argentina | ARCA | 533K | 533K | 0% | 0% | Daily |
| Ecuador | SRI | 1.87M | 1.87M | 0% | 0% | Monthly |
| Paraguay | DNIT | 94.7K | 94.7K | 0% | 0% | Variable |
| Dom. Rep. | DGII | 383K | 383K | 0% | 0% | Variable |
| Uruguay | DEI / RUPE | 5.5K | 5.5K | 91% | 91% | 2023 |
*Colombia: the national RUES registry does not include contact data. Individual chambers (Ibague, Pereira) publish email/phone for their jurisdictions.
Chile, Peru, Argentina, Ecuador, Paraguay, and the Dominican Republic publish business registries without contact data. No phone. No email. The registries contain firmographic data only: legal name, tax ID, activity code, registration status, location.
Phone and email for these countries come exclusively from enrichment (Clay, directed search, voice verification). If the source does not carry the field, the table says 0%.
The national RUES registry from Confecamaras is a spine: company name, NIT, CIIU code, location, registration date. No phone, no email. But individual chambers of commerce publish their own data with full contact fields. Ibague and Pereira include email and phone for 100% of their records (113,630 combined). Contact coverage in Colombia varies chamber by chamber.
27.2M of the 29.6M phone records across all 12 countries come from Brazil's CNPJ. Brazil's Receita Federal requires businesses to declare phone and email to the tax authority. Most Latin American registries do not.
The DGII of the Dominican Republic deleted phone numbers from its public registry. Fields that existed in a previous download no longer exist. Sources change. DealTunnel timestamps every download and preserves historical snapshots. The data reflects what the source published at the time of download, not necessarily what it publishes today.
Fields from the public source. Present for every record.
| Field | Type | Description |
|---|---|---|
dt_id | string | DealTunnel unique ID. SHA-256 hash of the normalized tax ID. Deterministic. |
country | string | Country code: CO, MX, CL, BR, PE, AR, EC, PY, RD, UY. |
nit | string | Tax ID in the source format. NIT (CO), RFC (MX), RUT (CL), CNPJ (BR). |
razon_social | string | Legal company name as registered. |
camara_comercio | string? | Chamber of commerce or city. Geographic proxy. |
ciiu_principal | string? | Primary economic activity code. CIIU (CO), SCIAN (MX). |
ciiu_secundario | string? | Secondary activity code. |
tipo_sociedad | string? | Company type as classified by the source. |
organizacion_juridica | string? | Legal structure: SAS, LTDA, SA, etc. |
estado_matricula | string? | Registration status: ACTIVA, RENOVADA, CANCELADA. |
representante_legal | string? | Legal representative name. |
fecha_matricula | string? | Registration date. |
Null until the company goes through the enrichment pipeline.
| Field | Type | Description |
|---|---|---|
phone | string? | Phone. May come from the source (Brazil, Mexico) or from enrichment. |
email | string? | Primary email. Same provenance logic as phone. |
website | string? | Company website. |
enrichment_status | string | raw | pending | done | failed |
Exists only after enrichment. Linked to a company via company_id.
| Field | Type | Description |
|---|---|---|
id | string | Unique person ID. |
company_id | string | References company.dt_id. |
full_name | string? | Decision maker's name. |
role_title | string? | Job title or role. |
email | string? | Direct email. |
phone | string? | Direct phone. |
linkedin_url | string? | LinkedIn profile URL. |
source | string? | clay | manual | registry |
Base URL: https://api.dealtunnel.io
Auth: X-API-Key header on every request. Keys are scoped to specific CIIU codes, cities, and countries.
Search companies with filters. Paginated.
| Param | Description |
|---|---|
ciiu | CIIU codes, comma-separated. Ex: 6810,6820 |
city | Cities, comma-separated. Ex: BOGOTA,CALI |
q | Full-text search on company name |
has_contact | Only companies with phone or email |
page | Page number (default 1) |
per_page | Results per page, max 500 (default 50) |
Get a single company by DealTunnel ID.
Decision makers linked to a company. Empty array if not enriched.
Download filtered companies as CSV. Same filters as /companies.
Queue companies for enrichment. Max 1,000 per request.
{"dt_ids": ["DT-CO-abc...", "DT-CO-def..."], "enrichment_type": "clay_full"}
Check enrichment batch progress: total, pending, done, failed.
All CIIU codes with company counts.
All cities with company counts.
API status, database size, company count, last ingest timestamp.
curl -H "X-API-Key: your_key_here" \ "https://api.dealtunnel.io/api/v1/companies?ciiu=6810&city=BOGOTA&per_page=5"
{
"total": 32175,
"page": 1,
"per_page": 5,
"data": [
{
"dt_id": "DT-CO-808b77994d40",
"country": "CO",
"nit": "901954197",
"razon_social": "INVERSIONES EJEMPLO SAS",
"camara_comercio": "BOGOTA",
"ciiu_principal": "6810",
"estado_matricula": "ACTIVA",
"enrichment_status": "raw"
}
]
}
Email nicolas@dealtunnel.io with your company name, the countries you sell into, and the CIIU/SCIAN codes for your target sectors. You will receive a scoped API key within 24 hours.
curl -H "X-API-Key: your_key_here" \ https://api.dealtunnel.io/health
curl -H "X-API-Key: your_key_here" \ "https://api.dealtunnel.io/api/v1/companies?ciiu=6810&city=BOGOTA&has_contact=true&per_page=5"
Want the full list as a spreadsheet?
curl -H "X-API-Key: your_key_here" \ -o prospects.csv \ "https://api.dealtunnel.io/api/v1/export?ciiu=6810&city=BOGOTA&has_contact=true"
Open in Google Sheets or Excel. Every row is a company from a public registry with a traceable source.