DealTunnel Docs

Technical documentation for the DealTunnel data API. 47.7M active business entities from public registries across 12 Latin American countries.

Contents
01   Overview 02   The Pipeline 03   Coverage by Country 04   Schema 05   API Reference 06   Getting Started
01Overview

What is DealTunnel

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.

02How it works

The Pipeline

Four steps.

1. Download

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.

2. Ingest + Normalize

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.

3. Enrich

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.

4. Serve

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.

03Data

Coverage by Country

The table below shows exactly what each source provides.

CountrySourceRecordsActivePhoneEmailUpdates
BrazilCNPJ / Receita Federal56.8M21.5M96.9%93.5%Monthly
MexicoDENUE / INEGI6.1M6.1M39.2%15.2%Biannual
ColombiaRUES / Confecamaras9.3M3.3M0%*0%*Monthly
ChileSII994K994K0%0%Annual
PeruSUNAT846K846K0%0%Daily
ArgentinaARCA533K533K0%0%Daily
EcuadorSRI1.87M1.87M0%0%Monthly
ParaguayDNIT94.7K94.7K0%0%Variable
Dom. Rep.DGII383K383K0%0%Variable
UruguayDEI / RUPE5.5K5.5K91%91%2023

*Colombia: the national RUES registry does not include contact data. Individual chambers (Ibague, Pereira) publish email/phone for their jurisdictions.

What the zeros mean

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 Colombia mosaic

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.

The Brazil concentration

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.

A note on freshness

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.

04Data model

Schema

Company Object

Fields from the public source. Present for every record.

FieldTypeDescription
dt_idstringDealTunnel unique ID. SHA-256 hash of the normalized tax ID. Deterministic.
countrystringCountry code: CO, MX, CL, BR, PE, AR, EC, PY, RD, UY.
nitstringTax ID in the source format. NIT (CO), RFC (MX), RUT (CL), CNPJ (BR).
razon_socialstringLegal company name as registered.
camara_comerciostring?Chamber of commerce or city. Geographic proxy.
ciiu_principalstring?Primary economic activity code. CIIU (CO), SCIAN (MX).
ciiu_secundariostring?Secondary activity code.
tipo_sociedadstring?Company type as classified by the source.
organizacion_juridicastring?Legal structure: SAS, LTDA, SA, etc.
estado_matriculastring?Registration status: ACTIVA, RENOVADA, CANCELADA.
representante_legalstring?Legal representative name.
fecha_matriculastring?Registration date.

Enrichment fields

Null until the company goes through the enrichment pipeline.

FieldTypeDescription
phonestring?Phone. May come from the source (Brazil, Mexico) or from enrichment.
emailstring?Primary email. Same provenance logic as phone.
websitestring?Company website.
enrichment_statusstringraw | pending | done | failed

Person Object

Exists only after enrichment. Linked to a company via company_id.

FieldTypeDescription
idstringUnique person ID.
company_idstringReferences company.dt_id.
full_namestring?Decision maker's name.
role_titlestring?Job title or role.
emailstring?Direct email.
phonestring?Direct phone.
linkedin_urlstring?LinkedIn profile URL.
sourcestring?clay | manual | registry
05API

API Reference

Base URL: https://api.dealtunnel.io

Auth: X-API-Key header on every request. Keys are scoped to specific CIIU codes, cities, and countries.

GET/api/v1/companies

Search companies with filters. Paginated.

ParamDescription
ciiuCIIU codes, comma-separated. Ex: 6810,6820
cityCities, comma-separated. Ex: BOGOTA,CALI
qFull-text search on company name
has_contactOnly companies with phone or email
pagePage number (default 1)
per_pageResults per page, max 500 (default 50)
GET/api/v1/companies/{dt_id}

Get a single company by DealTunnel ID.

GET/api/v1/companies/{dt_id}/persons

Decision makers linked to a company. Empty array if not enriched.

GET/api/v1/export

Download filtered companies as CSV. Same filters as /companies.

POST/api/v1/enrichment/queue

Queue companies for enrichment. Max 1,000 per request.

{"dt_ids": ["DT-CO-abc...", "DT-CO-def..."], "enrichment_type": "clay_full"}
GET/api/v1/enrichment/status/{batch_id}

Check enrichment batch progress: total, pending, done, failed.

GET/api/v1/meta/ciiu

All CIIU codes with company counts.

GET/api/v1/meta/cities

All cities with company counts.

GET/health

API status, database size, company count, last ingest timestamp.

Example

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"
    }
  ]
}
06Quick start

Getting Started

1. Get your API key

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.

2. Verify the connection

curl -H "X-API-Key: your_key_here" \
  https://api.dealtunnel.io/health

3. Search your market

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.