# RUES Colombia Company Registry & NIT Scraper (`scrapers_lat/rues-scraper`) Actor

RUES Colombia scraper and NIT lookup API. Search the unified business registry by name, NIT or matricula: get razon social, estado, camara de comercio, CIIU, dates and NIT check digit. Companies and ESAL non-profits. Export JSON, CSV, Excel. No login.

- **URL**: https://apify.com/scrapers\_lat/rues-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 6 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.54 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

[![RUES Colombia Company Registry & NIT Scraper](https://scrapers.lat/banners/rues-scraper.png)](https://console.apify.com/actors/3mBjrS0LTgiZh17UP/input)

## RUES Colombia Company Registry & NIT Scraper

Search Colombia's unified business registry (RUES) by legal name, NIT tax ID or matrícula number and get clean, structured company data: the most complete RUES scraper and NIT lookup API on Apify. No login, no API key, no captcha.

Here is one real result, with every field the actor returns:

```json
{
  "razonSocial": "BANCA DE INVERSION BANCOLOMBIA S.A. CORPORACION FINANCIERA",
  "nit": "800235426",
  "numeroIdentificacion": "00000800235426",
  "digitoVerificacion": "5",
  "digitoVerificacionCalculado": "5",
  "digitoVerificacionValido": true,
  "estado": "ACTIVA",
  "categoria": "SOCIEDAD ó PERSONA JURIDICA PRINCIPAL ó ESAL",
  "tipoEntidad": "SOCIEDAD ANONIMA",
  "organizacionJuridica": "SOCIEDAD ANONIMA",
  "tipoSociedad": "SOCIEDAD COMERCIAL",
  "codigoTipoSociedad": "01",
  "camara": "MEDELLIN PARA ANTIOQUIA",
  "codigoCamara": "01",
  "matricula": "0021-2345",
  "fechaMatricula": "1992-05-14",
  "municipio": "MEDELLIN",
  "departamento": "ANTIOQUIA",
  "ciiu": "6491",
  "ciiuSecundario": "6619",
  "ciiu3": null,
  "ciiu4": null,
  "inscripcionProponente": "000000032815",
  "registradoComoProponente": true,
  "registroNacionalTurismo": null,
  "vendedorJuegosSuerteAzar": false,
  "id": "40021234500",
  "url": "https://www.rues.org.co/RM/40021234500",
  "sigla": null,
  "claseIdentificacion": "NIT",
  "ciiuDescripcion": "Otros tipos de intermediación monetaria",
  "ciiuSecundarioDescripcion": "Otras actividades de servicio financiero",
  "ciiu3Descripcion": null,
  "ciiu4Descripcion": null,
  "fechaRenovacion": "2024-03-28",
  "ultimoAnoRenovado": "2024",
  "fechaVigencia": null,
  "fechaCancelacion": null,
  "motivoCancelacion": null,
  "fechaActualizacion": "2024-04-02",
  "emprendimientoSocial": false,
  "empresaBIC": null,
  "leyEmprendimientoJoven": null,
  "empresaTransporte": null,
  "inactivacionSipref": null,
  "extincionDominio": null,
  "urlVentaCertificados": "https://www.ccb.org.co/Tramites-y-Consultas/Mas-informacion/Certificados-electronicos/",
  "observedAt": "2026-09-05T23:56:54.404Z",
  "error": null
}
```

**📥 [Input](https://apify.com/scrapers_lat/rues-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/rues-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/rues-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/rues-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify\&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-Colombia-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)
![Billing](https://img.shields.io/badge/Billing-Pay%20per%20result-brightgreen)

### Table of contents

- [What it does](#what-it-does)
- [Why this scraper](#why-this-scraper)
- [How we compare](#how-we-compare)
- [Use cases](#use-cases)
- [Quickstart](#quickstart)
- [Input reference](#input-reference)
- [Output reference](#output-reference)
- [Run via API and CLI](#run-via-api-and-cli)
- [Fetch results](#fetch-results)
- [Billing and limits](#billing-and-limits)
- [FAQ and troubleshooting](#faq-and-troubleshooting)

### What it does

RUES (Registro Único Empresarial y Social), run by Confecámaras, is Colombia's unified business and social registry across every chamber of commerce. This actor searches RUES for each term you pass, treats numeric terms as NIT or matrícula lookups and text terms as legal-name searches, filters by registration status, and writes one normalized company record to the run's dataset.

With `withDetails` on (default), it also fetches each company's full registry record and adds the society type, up to four CIIU activity codes with descriptions, renewal, validity, update and cancellation dates, and status flags. It also recomputes the NIT verification digit and tells you whether it matches. Choose between the Registro Mercantil (companies and merchants) and ESAL (non-profits, foundations, NGOs) registries.

Data covers companies, merchants and non-profits registered in Colombia through RUES. No login or API key is required.

### Why this scraper

- **Live RUES data.** Reads the live registry, not a stale open-data snapshot, so status, renewals and dates are current.
- **Three ways to look up.** By legal name, by NIT tax ID, or by matrícula (registration) number, in one input.
- **Full field coverage.** NIT and verification digit, razón social, category, entity and society type, chamber of commerce and its code, matrícula, up to four CIIU activity codes with descriptions, municipality and department, registration, renewal, validity, update and cancellation dates.
- **KYB signals competitors skip.** RUP bidder registration (state-contractor flag), National Tourism Registry, gambling-seller flag, BIC (Beneficio e Interés Colectivo) company flag, Ley 1780 young-entrepreneur benefit, social-enterprise and asset-forfeiture flags.
- **Built-in NIT check-digit validation** using the official DIAN algorithm.
- **Companies and non-profits (RM and ESAL).**
- **Honest nulls.** Every field is mapped; a field is `null` when the registry does not expose it. No fake data.

### How we compare

| Feature | This actor | latinamericadata/nit-colombia | regdata/colombia-rues-company-scraper | foxlabs/colombia-company-data |
|---|---|---|---|---|
| Search by name | Yes | Yes | Yes | Yes |
| Search by NIT | Yes | Yes | Yes | Yes |
| Search by matrícula | Yes | Yes | Yes | No |
| Live RUES source | Yes | Open-data snapshot | Yes | Yes |
| Companies (RM) + non-profits (ESAL) | Yes | Partial | Yes | Partial |
| NIT verification digit | Yes | Yes | Partial | No |
| NIT check-digit validation | Yes | Yes | No | No |
| Category, chamber code, society type | Yes | Partial | Partial | Partial |
| Up to 4 CIIU codes + descriptions | Yes | Primary only | Primary only | Primary only |
| Renewal / validity / update / cancellation dates | Yes | Renewal only | Renewal year only | No |
| RUP bidder flag (state contractor) | Yes | No | No | No |
| Tourism registry / gambling / BIC / Ley 1780 flags | Yes | No | No | No |
| Export JSON / CSV / Excel | Yes | Yes | Yes | Yes |
| No login or API key | Yes | Yes | Yes | Yes |

We accept every input the alternatives accept and return a strict superset of their fields.

### Use cases

- **KYB and onboarding.** Verify a Colombian company by NIT before you contract or invoice, and confirm status, chamber and activity.
- **Supplier and vendor due diligence.** Check registration status, renewal year and whether the entity is a registered state bidder (RUP).
- **CRM and data cleaning.** Normalize NIT, verification digit and razón social; validate the check digit.
- **Sales and lead enrichment.** Turn a company name into NIT, legal form, CIIU activity, chamber of commerce, municipality and department.
- **Compliance and screening (SARLAFT / UIAF).** Confirm a NIT on a contract or invoice belongs to the named entity.
- **Market and business intelligence.** Pull companies by name or activity for analysis and dashboards.

### Quickstart

Open the actor, paste this into the input, and press Run. It searches active companies matching "exito" with full details.

```json
{
  "searchTerms": ["exito"],
  "maxCompanies": 10,
  "withDetails": true,
  "register": "RM",
  "status": ["ACTIVA"]
}
```

Pass a NIT such as `830133224` to look up one company by tax ID, a matrícula number to look up by registration number, or a legal name to search by name. Set `register` to `ESAL` for non-profits, and adjust `status` to include cancelled or inactive records.

### Input reference

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `searchTerms` | string\[] | yes\* | `["exito"]` | Company names, NIT tax-IDs or matrícula numbers. Numeric terms are treated as NIT/matrícula lookups; text terms search by legal name. |
| `searchType` | enum | no | `auto` | How to interpret terms: `auto`, `nit`, `name`, or `matricula`. |
| `nits` | string\[] | no | | Optional NIT tax-IDs (any format). Merged with `searchTerms`. |
| `companyNames` | string\[] | no | | Optional legal names. Merged with `searchTerms`. |
| `matriculas` | string\[] | no | | Optional matrícula (registration) numbers. Merged with `searchTerms`. |
| `maxCompanies` | integer | no | `10` | Maximum companies to collect across all search terms. Range 1 to 1000000. |
| `withDetails` | boolean | no | `true` | Also fetch each company's full registry record (society type, four CIIU codes, dates, flags). Available on paid Apify plans. |
| `validateCheckDigit` | boolean | no | `true` | Recompute the NIT verification digit and report whether it matches. |
| `register` | enum | no | `RM` | `RM` (Registro Mercantil, companies) or `ESAL` (non-profits, foundations, NGOs). |
| `status` | string\[] | no | `["ACTIVA"]` | Filter by status: `ACTIVA`, `CANCELADA`, `NO ACTIVA`. |
| `includeRaw` | boolean | no | `false` | Attach the raw registry detail record under `raw` (when details are fetched). |
| `proxyConfiguration` | object | no | Residential CO | Proxy used to reach RUES, which geo-restricts by IP. Defaults to Apify Residential in Colombia. |

\* Provide at least one of `searchTerms`, `nits`, `companyNames` or `matriculas`.

### Output reference

One dataset item per company. Types: `string`, `boolean`, or `null` when the source value is absent. Fields marked (details) are only populated when `withDetails` is on.

| Field | Type | Description |
|---|---|---|
| `razonSocial` | string | Legal company name. |
| `nit` | string | NIT tax identification number. |
| `numeroIdentificacion` | string | Zero-padded identification number. |
| `digitoVerificacion` | string | NIT verification digit as published by the registry. |
| `digitoVerificacionCalculado` | string | Verification digit recomputed with the DIAN algorithm. |
| `digitoVerificacionValido` | boolean | Whether published and computed digits match. |
| `estado` | string | Registration status, for example `ACTIVA`. |
| `categoria` | string | Registry category (for example sociedad or persona jurídica principal). |
| `tipoEntidad` | string | Entity type, for example `SOCIEDAD ANONIMA`. |
| `organizacionJuridica` | string | Legal organization form. |
| `tipoSociedad` | string | Society type, for example `SOCIEDAD COMERCIAL`. |
| `codigoTipoSociedad` | string | Society type code. |
| `camara` | string | Chamber of commerce. |
| `codigoCamara` | string | Chamber of commerce code. |
| `matricula` | string | Mercantile registration (matrícula) number. |
| `fechaMatricula` | string | Registration date (`YYYY-MM-DD`). |
| `municipio` | string | Municipality. |
| `departamento` | string | Department. |
| `ciiu` | string | Primary CIIU activity code. |
| `ciiuSecundario` | string | Secondary CIIU activity code. |
| `ciiu3` | string | Third CIIU activity code. |
| `ciiu4` | string | Fourth CIIU activity code. |
| `inscripcionProponente` | string | RUP bidder registration number, or `null` if not a registered state bidder. |
| `registradoComoProponente` | boolean | Whether registered in the RUP (state-contractor registry). |
| `registroNacionalTurismo` | string | National Tourism Registry (RNT) id, or `null`. |
| `vendedorJuegosSuerteAzar` | boolean | Flagged as a gambling / games-of-chance seller. |
| `id` | string | RUES internal record ID. |
| `url` | string | RUES record URL. |
| `sigla` | string | Short name / acronym (details), or `null`. |
| `claseIdentificacion` | string | Identification class, for example `NIT` (details). |
| `ciiuDescripcion` | string | Description of the primary CIIU code (details). |
| `ciiuSecundarioDescripcion` | string | Description of the secondary CIIU code (details). |
| `ciiu3Descripcion` | string | Description of the third CIIU code (details). |
| `ciiu4Descripcion` | string | Description of the fourth CIIU code (details). |
| `fechaRenovacion` | string | Last renewal date (details). |
| `ultimoAnoRenovado` | string | Last renewed year (details). |
| `fechaVigencia` | string | Validity date (details). |
| `fechaCancelacion` | string | Cancellation date (details). |
| `motivoCancelacion` | string | Cancellation reason (details). |
| `fechaActualizacion` | string | Last update date (details). |
| `emprendimientoSocial` | boolean | Social-enterprise flag (details). |
| `empresaBIC` | boolean | BIC (Beneficio e Interés Colectivo) company flag (details). |
| `leyEmprendimientoJoven` | boolean | Ley 1780 young-entrepreneur benefit flag (details). |
| `empresaTransporte` | boolean | Transport-company flag (details). |
| `inactivacionSipref` | boolean | SIPREF inactivation control flag (details). |
| `extincionDominio` | boolean | Asset-forfeiture flag (details). |
| `urlVentaCertificados` | string | URL to buy official certificates (details). |
| `observedAt` | string | ISO 8601 timestamp of when the record was collected. |
| `error` | string | `null` on success. A populated message on a failed item. |

### Run via API and CLI

Start a run and read the dataset. Replace `<TOKEN>` with your Apify API token.

Run synchronously and get dataset items in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~rues-scraper/run-sync-get-dataset-items?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms":["830133224"],"withDetails":true}'
```

Start a run asynchronously:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~rues-scraper/runs?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms":["fundacion"],"register":"ESAL","maxCompanies":100}'
```

Apify CLI:

```bash
apify call scrapers_lat/rues-scraper \
  --input '{"searchTerms":["exito"]}'
```

### Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing `format`:

```bash
## JSON
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=json"

## CSV
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=csv"

## Paginate large datasets
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&offset=1000&limit=1000"
```

`<DATASET_ID>` is returned as `defaultDatasetId` in the run object. Use `offset` and `limit` to page through large result sets.

### Billing and limits

- **Pay per result.** You are charged per company returned (`result` event). See the [pricing tab](https://apify.com/scrapers_lat/rues-scraper/pricing).
- **Details add-on.** With `withDetails` on, a small add-on is charged per company only when its detail record is fetched successfully, on top of the base result.
- **No charge on failure.** Searches that match no company push no billable records, so empty runs cost nothing.
- **Spend cap respected.** Set `maxTotalChargeUsd` on the run; once reached, the actor stops emitting and charging further results.
- **Free Apify plans** are capped at 10 companies per run and receive base records only. Upgrade for higher `maxCompanies` and full details.

### FAQ and troubleshooting

**How do I look up a company by tax ID (NIT)?**
Put the NIT (numeric) in `searchTerms` or `nits`. Numeric terms are treated as NIT/matrícula lookups automatically, or set `searchType` to `nit`.

**Can I search by matrícula (registration number)?**
Yes. Pass the matrícula number as a term, or use the `matriculas` field, or set `searchType` to `matricula`.

**A search returned 0 records. Why?**
The name, NIT or matrícula matched nothing under the chosen `register` and `status`. Try a broader name, confirm the number, add `CANCELADA` or `NO ACTIVA` to `status`, or switch `register`. Zero-result runs are not charged.

**What is the difference between RM and ESAL?**
`RM` is the Registro Mercantil for companies and merchants. `ESAL` is the register of non-profits, foundations and NGOs. Set `register` to the one you need.

**What do the CIIU fields mean?**
`ciiu` is the primary economic activity code, with `ciiuDescripcion` describing it. `ciiuSecundario`, `ciiu3` and `ciiu4` are additional activities with matching description fields, populated when the company registers more than one activity.

**Does it return legal representatives, shareholders or addresses?**
No. RUES masks contact PII (address, phone, email) and does not publish legal representatives, shareholders or owners in the public search. Those appear only on paid official certificates from each chamber of commerce (see `urlVentaCertificados`).

**What is the RUP flag?**
`registradoComoProponente` and `inscripcionProponente` indicate whether the entity is registered in the Registro Único de Proponentes, meaning it can bid for public contracts.

**Is this an official RUES tool?**
No. This actor is independent and has no affiliation with RUES, Confecámaras or the chambers of commerce. It reads only publicly available registry data. Use it in accordance with the source's terms.

### Related scrapers

- [Colombia Company Financials Scraper](https://apify.com/scrapers_lat/colombia-company-financials-scraper): financial statements for Colombian companies.
- [Colombia SECOP Scraper](https://apify.com/scrapers_lat/colombia-secop-scraper): Colombian public procurement contracts.
- [Colombia Rama Judicial Scraper](https://apify.com/scrapers_lat/colombia-rama-judicial-scraper): Colombian court case records.
- [Ecuador SRI RUC Scraper](https://apify.com/scrapers_lat/sri-ruc-scraper): Ecuadorian taxpayer registry by RUC.
- [Peru SUNAT RUC Scraper](https://apify.com/scrapers_lat/sunat-scraper): Peruvian taxpayer registry by RUC.
- [Panama Emprende Scraper](https://apify.com/scrapers_lat/panama-emprende-scraper): Panamanian company registry data.

### More scrapers at scrapers.lat

Built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at [scrapers.lat](https://scrapers.lat).

***

## Scraper de RUES Colombia: Registro Mercantil y Consulta NIT

Consulta el Registro Único Empresarial y Social (RUES) de Colombia por razón social, NIT o número de matrícula y obtén datos de empresas limpios y estructurados: el scraper de RUES y la API de consulta de NIT más completa en Apify. Sin inicio de sesión, sin API key, sin captcha.

Este es un resultado real, con todos los campos que devuelve el actor:

```json
{
  "razonSocial": "BANCA DE INVERSION BANCOLOMBIA S.A. CORPORACION FINANCIERA",
  "nit": "800235426",
  "numeroIdentificacion": "00000800235426",
  "digitoVerificacion": "5",
  "digitoVerificacionCalculado": "5",
  "digitoVerificacionValido": true,
  "estado": "ACTIVA",
  "categoria": "SOCIEDAD ó PERSONA JURIDICA PRINCIPAL ó ESAL",
  "tipoEntidad": "SOCIEDAD ANONIMA",
  "organizacionJuridica": "SOCIEDAD ANONIMA",
  "tipoSociedad": "SOCIEDAD COMERCIAL",
  "codigoTipoSociedad": "01",
  "camara": "MEDELLIN PARA ANTIOQUIA",
  "codigoCamara": "01",
  "matricula": "0021-2345",
  "fechaMatricula": "1992-05-14",
  "municipio": "MEDELLIN",
  "departamento": "ANTIOQUIA",
  "ciiu": "6491",
  "ciiuSecundario": "6619",
  "ciiu3": null,
  "ciiu4": null,
  "inscripcionProponente": "000000032815",
  "registradoComoProponente": true,
  "registroNacionalTurismo": null,
  "vendedorJuegosSuerteAzar": false,
  "id": "40021234500",
  "url": "https://www.rues.org.co/RM/40021234500",
  "sigla": null,
  "claseIdentificacion": "NIT",
  "ciiuDescripcion": "Otros tipos de intermediación monetaria",
  "ciiuSecundarioDescripcion": "Otras actividades de servicio financiero",
  "ciiu3Descripcion": null,
  "ciiu4Descripcion": null,
  "fechaRenovacion": "2024-03-28",
  "ultimoAnoRenovado": "2024",
  "fechaVigencia": null,
  "fechaCancelacion": null,
  "motivoCancelacion": null,
  "fechaActualizacion": "2024-04-02",
  "emprendimientoSocial": false,
  "empresaBIC": null,
  "leyEmprendimientoJoven": null,
  "empresaTransporte": null,
  "inactivacionSipref": null,
  "extincionDominio": null,
  "urlVentaCertificados": "https://www.ccb.org.co/Tramites-y-Consultas/Mas-informacion/Certificados-electronicos/",
  "observedAt": "2026-09-05T23:56:54.404Z",
  "error": null
}
```

**📥 [Entrada](https://apify.com/scrapers_lat/rues-scraper/input-schema) · 📤 [Salida](https://apify.com/scrapers_lat/rues-scraper/output-schema) · 💰 [Precios](https://apify.com/scrapers_lat/rues-scraper/pricing) · ▶️ [Ejemplos](https://apify.com/scrapers_lat/rues-scraper/examples)**

### Tabla de contenido

- [Qué hace](#que-hace)
- [Por qué este scraper](#por-que-este-scraper)
- [Comparativa](#comparativa)
- [Casos de uso](#casos-de-uso)
- [Inicio rápido](#inicio-rapido)
- [Referencia de entrada](#referencia-de-entrada)
- [Referencia de salida](#referencia-de-salida)
- [Ejecución vía API y CLI](#ejecucion-via-api-y-cli)
- [Obtener resultados](#obtener-resultados)
- [Facturación y límites](#facturacion-y-limites)
- [Preguntas frecuentes](#preguntas-frecuentes)

### Qué hace

RUES (Registro Único Empresarial y Social), operado por Confecámaras, es el registro empresarial y social unificado de Colombia en todas las cámaras de comercio. Este actor busca en RUES cada término que envíes, trata los términos numéricos como consultas de NIT o matrícula y los de texto como búsquedas por razón social, filtra por estado de la matrícula y escribe un registro de empresa normalizado en el dataset de la ejecución.

Con `withDetails` activado (por defecto), también obtiene el registro completo de cada empresa y agrega el tipo de sociedad, hasta cuatro códigos de actividad CIIU con descripciones, fechas de renovación, vigencia, actualización y cancelación, y los indicadores de estado. Además recalcula el dígito de verificación del NIT e indica si coincide. Elige entre el Registro Mercantil (empresas y comerciantes) y ESAL (entidades sin ánimo de lucro, fundaciones y ONG).

Los datos cubren empresas, comerciantes y entidades sin ánimo de lucro registradas en Colombia a través de RUES. No se requiere inicio de sesión ni API key.

### Por qué este scraper

- **Datos en vivo de RUES.** Lee el registro en vivo, no una copia de datos abiertos desactualizada, para que el estado, las renovaciones y las fechas estén al día.
- **Tres formas de consulta.** Por razón social, por NIT o por número de matrícula, en una sola entrada.
- **Cobertura total de campos.** NIT y dígito de verificación, razón social, categoría, tipo de entidad y de sociedad, cámara de comercio y su código, matrícula, hasta cuatro códigos CIIU con descripciones, municipio y departamento, fechas de matrícula, renovación, vigencia, actualización y cancelación.
- **Señales KYB que otros omiten.** Inscripción en el RUP (proponente del Estado), Registro Nacional de Turismo, indicador de vendedor de juegos de suerte y azar, empresa BIC (Beneficio e Interés Colectivo), beneficio Ley 1780 de joven emprendedor, e indicadores de emprendimiento social y extinción de dominio.
- **Validación del dígito de verificación del NIT** con el algoritmo oficial de la DIAN.
- **Empresas y sin ánimo de lucro (RM y ESAL).**
- **Nulos honestos.** Cada campo está mapeado; un campo es `null` cuando el registro no lo expone. Sin datos falsos.

### Comparativa

| Característica | Este actor | latinamericadata/nit-colombia | regdata/colombia-rues-company-scraper | foxlabs/colombia-company-data |
|---|---|---|---|---|
| Búsqueda por nombre | Sí | Sí | Sí | Sí |
| Búsqueda por NIT | Sí | Sí | Sí | Sí |
| Búsqueda por matrícula | Sí | Sí | Sí | No |
| Fuente RUES en vivo | Sí | Copia de datos abiertos | Sí | Sí |
| Empresas (RM) y sin ánimo de lucro (ESAL) | Sí | Parcial | Sí | Parcial |
| Dígito de verificación del NIT | Sí | Sí | Parcial | No |
| Validación del dígito de verificación | Sí | Sí | No | No |
| Categoría, código de cámara, tipo de sociedad | Sí | Parcial | Parcial | Parcial |
| Hasta 4 códigos CIIU con descripción | Sí | Solo principal | Solo principal | Solo principal |
| Fechas de renovación / vigencia / actualización / cancelación | Sí | Solo renovación | Solo año de renovación | No |
| Indicador RUP (proponente del Estado) | Sí | No | No | No |
| Indicadores de turismo / juegos / BIC / Ley 1780 | Sí | No | No | No |
| Exportar JSON / CSV / Excel | Sí | Sí | Sí | Sí |
| Sin inicio de sesión ni API key | Sí | Sí | Sí | Sí |

Aceptamos todas las entradas de las alternativas y devolvemos un superconjunto estricto de sus campos.

### Casos de uso

- **KYB y onboarding.** Verifica una empresa colombiana por NIT antes de contratar o facturar, y confirma estado, cámara y actividad.
- **Debida diligencia de proveedores.** Revisa el estado de la matrícula, el año de renovación y si la entidad es proponente del Estado (RUP).
- **CRM y limpieza de datos.** Normaliza NIT, dígito de verificación y razón social; valida el dígito de verificación.
- **Ventas y enriquecimiento de leads.** Convierte un nombre de empresa en NIT, forma jurídica, actividad CIIU, cámara de comercio, municipio y departamento.
- **Cumplimiento y screening (SARLAFT / UIAF).** Confirma que un NIT en un contrato o factura pertenece a la entidad indicada.
- **Inteligencia de mercado y de negocio.** Extrae empresas por nombre o actividad para análisis y tableros.

### Inicio rápido

Abre el actor, pega esto en la entrada y presiona Ejecutar. Busca empresas activas que coincidan con "exito" con detalles completos.

```json
{
  "searchTerms": ["exito"],
  "maxCompanies": 10,
  "withDetails": true,
  "register": "RM",
  "status": ["ACTIVA"]
}
```

Pasa un NIT como `830133224` para consultar una empresa por identificación tributaria, un número de matrícula para consultar por número de registro, o una razón social para buscar por nombre. Cambia `register` a `ESAL` para entidades sin ánimo de lucro, y ajusta `status` para incluir registros cancelados o inactivos.

### Referencia de entrada

| Campo | Tipo | Requerido | Por defecto | Descripción |
|---|---|---|---|---|
| `searchTerms` | string\[] | sí\* | `["exito"]` | Nombres de empresa, NIT o números de matrícula. Los términos numéricos se tratan como consultas de NIT/matrícula; los de texto buscan por razón social. |
| `searchType` | enum | no | `auto` | Cómo interpretar los términos: `auto`, `nit`, `name`, o `matricula`. |
| `nits` | string\[] | no | | NIT opcionales (cualquier formato). Se combinan con `searchTerms`. |
| `companyNames` | string\[] | no | | Razones sociales opcionales. Se combinan con `searchTerms`. |
| `matriculas` | string\[] | no | | Números de matrícula opcionales. Se combinan con `searchTerms`. |
| `maxCompanies` | integer | no | `10` | Máximo de empresas a recolectar entre todos los términos. Rango 1 a 1000000. |
| `withDetails` | boolean | no | `true` | También obtiene el registro completo de cada empresa (tipo de sociedad, cuatro códigos CIIU, fechas, indicadores). Disponible en planes de pago de Apify. |
| `validateCheckDigit` | boolean | no | `true` | Recalcula el dígito de verificación del NIT e informa si coincide. |
| `register` | enum | no | `RM` | `RM` (Registro Mercantil, empresas) o `ESAL` (sin ánimo de lucro, fundaciones, ONG). |
| `status` | string\[] | no | `["ACTIVA"]` | Filtra por estado: `ACTIVA`, `CANCELADA`, `NO ACTIVA`. |
| `includeRaw` | boolean | no | `false` | Adjunta el registro de detalle sin procesar en `raw` (cuando se obtienen detalles). |
| `proxyConfiguration` | object | no | Residencial CO | Proxy para llegar a RUES, que restringe por IP y país. Por defecto proxy Residencial de Apify en Colombia. |

\* Proporciona al menos uno de `searchTerms`, `nits`, `companyNames` o `matriculas`.

### Referencia de salida

Un elemento del dataset por empresa. Tipos: `string`, `boolean`, o `null` cuando el valor de origen no existe. Los campos marcados (detalles) solo se completan con `withDetails` activado.

| Campo | Tipo | Descripción |
|---|---|---|
| `razonSocial` | string | Razón social. |
| `nit` | string | Número de identificación tributaria (NIT). |
| `numeroIdentificacion` | string | Número de identificación con ceros a la izquierda. |
| `digitoVerificacion` | string | Dígito de verificación del NIT publicado por el registro. |
| `digitoVerificacionCalculado` | string | Dígito de verificación recalculado con el algoritmo de la DIAN. |
| `digitoVerificacionValido` | boolean | Si el dígito publicado y el calculado coinciden. |
| `estado` | string | Estado de la matrícula, por ejemplo `ACTIVA`. |
| `categoria` | string | Categoría del registro (por ejemplo sociedad o persona jurídica principal). |
| `tipoEntidad` | string | Tipo de entidad, por ejemplo `SOCIEDAD ANONIMA`. |
| `organizacionJuridica` | string | Forma de organización jurídica. |
| `tipoSociedad` | string | Tipo de sociedad, por ejemplo `SOCIEDAD COMERCIAL`. |
| `codigoTipoSociedad` | string | Código del tipo de sociedad. |
| `camara` | string | Cámara de comercio. |
| `codigoCamara` | string | Código de la cámara de comercio. |
| `matricula` | string | Número de matrícula mercantil. |
| `fechaMatricula` | string | Fecha de matrícula (`YYYY-MM-DD`). |
| `municipio` | string | Municipio. |
| `departamento` | string | Departamento. |
| `ciiu` | string | Código CIIU de actividad principal. |
| `ciiuSecundario` | string | Código CIIU de actividad secundaria. |
| `ciiu3` | string | Tercer código CIIU. |
| `ciiu4` | string | Cuarto código CIIU. |
| `inscripcionProponente` | string | Número de inscripción en el RUP, o `null` si no es proponente del Estado. |
| `registradoComoProponente` | boolean | Si está inscrito en el RUP (registro de proponentes). |
| `registroNacionalTurismo` | string | Identificador del Registro Nacional de Turismo (RNT), o `null`. |
| `vendedorJuegosSuerteAzar` | boolean | Marcado como vendedor de juegos de suerte y azar. |
| `id` | string | ID interno del registro en RUES. |
| `url` | string | URL del registro en RUES. |
| `sigla` | string | Sigla o nombre corto (detalles), o `null`. |
| `claseIdentificacion` | string | Clase de identificación, por ejemplo `NIT` (detalles). |
| `ciiuDescripcion` | string | Descripción del CIIU principal (detalles). |
| `ciiuSecundarioDescripcion` | string | Descripción del CIIU secundario (detalles). |
| `ciiu3Descripcion` | string | Descripción del tercer CIIU (detalles). |
| `ciiu4Descripcion` | string | Descripción del cuarto CIIU (detalles). |
| `fechaRenovacion` | string | Fecha de última renovación (detalles). |
| `ultimoAnoRenovado` | string | Último año renovado (detalles). |
| `fechaVigencia` | string | Fecha de vigencia (detalles). |
| `fechaCancelacion` | string | Fecha de cancelación (detalles). |
| `motivoCancelacion` | string | Motivo de cancelación (detalles). |
| `fechaActualizacion` | string | Fecha de última actualización (detalles). |
| `emprendimientoSocial` | boolean | Indicador de emprendimiento social (detalles). |
| `empresaBIC` | boolean | Indicador de empresa BIC (Beneficio e Interés Colectivo) (detalles). |
| `leyEmprendimientoJoven` | boolean | Indicador de beneficio Ley 1780 de joven emprendedor (detalles). |
| `empresaTransporte` | boolean | Indicador de empresa de transporte (detalles). |
| `inactivacionSipref` | boolean | Indicador de control de inactivación SIPREF (detalles). |
| `extincionDominio` | boolean | Indicador de extinción de dominio (detalles). |
| `urlVentaCertificados` | string | URL para comprar certificados oficiales (detalles). |
| `observedAt` | string | Marca de tiempo ISO 8601 de cuándo se recolectó el registro. |
| `error` | string | `null` si tuvo éxito. Un mensaje si el elemento falló. |

### Ejecución vía API y CLI

Inicia una ejecución y lee el dataset. Reemplaza `<TOKEN>` con tu token de API de Apify.

Ejecuta de forma síncrona y obtén los elementos del dataset en una sola llamada:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~rues-scraper/run-sync-get-dataset-items?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms":["830133224"],"withDetails":true}'
```

Inicia una ejecución de forma asíncrona:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~rues-scraper/runs?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms":["fundacion"],"register":"ESAL","maxCompanies":100}'
```

CLI de Apify:

```bash
apify call scrapers_lat/rues-scraper \
  --input '{"searchTerms":["exito"]}'
```

### Obtener resultados

Cada ejecución escribe en un dataset. Obtén los elementos en JSON, CSV o Excel cambiando `format`:

```bash
## JSON
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=json"

## CSV
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=csv"

## Paginar datasets grandes
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&offset=1000&limit=1000"
```

`<DATASET_ID>` se devuelve como `defaultDatasetId` en el objeto de la ejecución. Usa `offset` y `limit` para paginar conjuntos grandes.

### Facturación y límites

- **Pago por resultado.** Se cobra por empresa devuelta (evento `result`). Consulta la [pestaña de precios](https://apify.com/scrapers_lat/rues-scraper/pricing).
- **Complemento de detalles.** Con `withDetails` activado, se cobra un pequeño complemento por empresa solo cuando su registro de detalle se obtiene con éxito, además del resultado base.
- **Sin cobro por fallo.** Las búsquedas que no encuentran ninguna empresa no generan registros facturables, así que las ejecuciones vacías no cuestan nada.
- **Límite de gasto respetado.** Configura `maxTotalChargeUsd` en la ejecución; al alcanzarlo, el actor deja de emitir y cobrar más resultados.
- **Los planes gratuitos de Apify** están limitados a 10 empresas por ejecución y reciben solo registros base. Mejora tu plan para más `maxCompanies` y detalles completos.

### Preguntas frecuentes

**¿Cómo consulto una empresa por NIT?**
Pon el NIT (numérico) en `searchTerms` o en `nits`. Los términos numéricos se tratan como consultas de NIT/matrícula automáticamente, o pon `searchType` en `nit`.

**¿Puedo buscar por matrícula (número de registro)?**
Sí. Pasa el número de matrícula como término, usa el campo `matriculas`, o pon `searchType` en `matricula`.

**Una búsqueda devolvió 0 registros. ¿Por qué?**
El nombre, NIT o matrícula no coincidió con nada bajo el `register` y `status` elegidos. Prueba un nombre más amplio, confirma el número, agrega `CANCELADA` o `NO ACTIVA` a `status`, o cambia `register`. Las ejecuciones sin resultados no se cobran.

**¿Cuál es la diferencia entre RM y ESAL?**
`RM` es el Registro Mercantil para empresas y comerciantes. `ESAL` es el registro de entidades sin ánimo de lucro, fundaciones y ONG. Configura `register` según lo que necesites.

**¿Qué significan los campos CIIU?**
`ciiu` es el código de actividad económica principal, con `ciiuDescripcion` describiéndolo. `ciiuSecundario`, `ciiu3` y `ciiu4` son actividades adicionales con sus descripciones, presentes cuando la empresa registra más de una actividad.

**¿Devuelve representantes legales, socios o direcciones?**
No. RUES enmascara los datos de contacto (dirección, teléfono, correo) y no publica representantes legales, socios ni propietarios en la búsqueda pública. Esos aparecen solo en los certificados oficiales de pago de cada cámara de comercio (ver `urlVentaCertificados`).

**¿Qué es el indicador RUP?**
`registradoComoProponente` e `inscripcionProponente` indican si la entidad está inscrita en el Registro Único de Proponentes, es decir, si puede contratar con el Estado.

**¿Es una herramienta oficial de RUES?**
No. Este actor es independiente y no tiene afiliación con RUES, Confecámaras ni las cámaras de comercio. Lee solo datos de registro disponibles públicamente. Úsalo conforme a los términos de la fuente.

### Scrapers relacionados

- [Colombia Company Financials Scraper](https://apify.com/scrapers_lat/colombia-company-financials-scraper): estados financieros de empresas colombianas.
- [Colombia SECOP Scraper](https://apify.com/scrapers_lat/colombia-secop-scraper): contratación pública colombiana.
- [Colombia Rama Judicial Scraper](https://apify.com/scrapers_lat/colombia-rama-judicial-scraper): registros de procesos judiciales en Colombia.
- [Ecuador SRI RUC Scraper](https://apify.com/scrapers_lat/sri-ruc-scraper): registro de contribuyentes de Ecuador por RUC.
- [Peru SUNAT RUC Scraper](https://apify.com/scrapers_lat/sunat-scraper): registro de contribuyentes de Perú por RUC.
- [Panama Emprende Scraper](https://apify.com/scrapers_lat/panama-emprende-scraper): datos del registro de empresas de Panamá.

### Más scrapers en scrapers.lat

Creado y mantenido por [scrapers.lat](https://scrapers.lat), donde publicamos scrapers para plataformas públicas de Estados Unidos y América Latina: registros de empresas, datos de gobierno, finanzas, comercio electrónico y más. Explora el catálogo o solicita un scraper a medida en [scrapers.lat](https://scrapers.lat).

> Herramienta independiente, sin afiliación con RUES, Confecámaras ni las cámaras de comercio de Colombia. Accede solo a datos de registro disponibles públicamente. Úsala conforme a los términos de servicio de la fuente.

# Actor input Schema

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

Company names, NIT tax-IDs or matrícula (registration) numbers to search in RUES. Numeric terms are treated as NIT/matrícula lookups; text terms search by legal name. Add one or more.

## `searchType` (type: `string`):

How to interpret each search term. Auto detects numeric terms as NIT/matrícula and text as legal name.

## `nits` (type: `array`):

Optional. NIT tax-IDs to look up (any format, e.g. 890.903.938-8 or 890903938). Merged with Search Terms.

## `companyNames` (type: `array`):

Optional. Legal names to search by. Merged with Search Terms.

## `matriculas` (type: `array`):

Optional. Matrícula (mercantile registration) numbers to look up. Merged with Search Terms.

## `maxCompanies` (type: `integer`):

Maximum number of companies to collect across all search terms. Optional.

## `withDetails` (type: `boolean`):

When enabled, also fetch each company's full registry record (society type, up to four CIIU activity codes with descriptions, renewal, validity, update and cancellation dates, and status flags). Slower but richer. Available to paid Apify plans.

## `validateCheckDigit` (type: `boolean`):

When enabled, recompute the NIT verification digit (DIAN algorithm) and return whether it matches the registry value.

## `register` (type: `string`):

Which RUES registry to search: RM = Registro Mercantil (companies/merchants, default) or ESAL = Entidades Sin Ánimo de Lucro (non-profits, foundations, NGOs).

## `status` (type: `array`):

Filter by merchant registration status. Defaults to active companies only.

## `includeRaw` (type: `boolean`):

When enabled and details are fetched, attach the raw registry detail record under `raw` for debugging or custom mapping.

## `proxyConfiguration` (type: `object`):

Proxy used to reach the RUES service, which geo-restricts by IP. Defaults to Apify Residential proxy in Colombia; leave as-is unless you know what you are doing.

## Actor input object example

```json
{
  "searchTerms": [
    "exito"
  ],
  "searchType": "auto",
  "maxCompanies": 10,
  "withDetails": true,
  "validateCheckDigit": true,
  "register": "RM",
  "status": [
    "ACTIVA"
  ],
  "includeRaw": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CO"
  }
}
```

# Actor output Schema

## `results` (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 = {
    "searchTerms": [
        "exito"
    ],
    "maxCompanies": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "CO"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/rues-scraper").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 = {
    "searchTerms": ["exito"],
    "maxCompanies": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "CO",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/rues-scraper").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 '{
  "searchTerms": [
    "exito"
  ],
  "maxCompanies": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CO"
  }
}' |
apify call scrapers_lat/rues-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/rues-scraper"
        }
    }
}

```

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/3mBjrS0LTgiZh17UP/builds/3HFG4EwKRjfS7qWhA/openapi.json
