# Chile Company RUT Lookup — SII Company Data (`fabrikit/chile-company-rut-lookup`) Actor

Look up Chilean companies by RUT or search by name, activity, comuna and size: legal name, start/end dates, SII activity codes, addresses, size bracket, employees and registry capital. Legal entities only, official SII open data. Pay per result, no subscription.

- **URL**: https://apify.com/fabrikit/chile-company-rut-lookup.md
- **Developed by:** [Fabrikit](https://apify.com/fabrikit) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 company results

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Chile Company RUT Lookup — SII Company Data

Look up **Chilean companies by RUT** or **search them by name, economic activity, comuna, region, size and start date**. Every record comes from Chile's official open data: the public legal-entity lists of the **Servicio de Impuestos Internos (SII)** and the **Registro de Empresas y Sociedades** published on datos.gob.cl.

For each company you get:

- **Normalized RUT** (`90749000-9` and `90.749.000-9`) and check-digit (DV) validation
- **Legal name** (razón social), entity type and legal form (SpA, Ltda., EIRL, S.A., foundation, public body...)
- **Start of activities** (inicio de actividades) and **termination date** (término de giro), plus an `isActive` flag
- **All registered economic activities**: SII code (CIIU4.CL), description, since-date, VAT applicability, tax category
- **Head-office address** with comuna and region, and the list of **current branches** (sucursales)
- **Company size** from the SII: sales bracket (micro / small / medium / large), **number of employees**, economic sector and tax regime
- For companies created since 2013 under the "empresa en un día" registry: **constitution date and initial capital (CLP)**

**Legal entities only.** RUTs in the natural-person range are rejected without lookup, and SII taxpayers without legal personality (estates, de-facto partnerships named after people, marital communities) are not in the data at all. No representative, partner or owner fields exist in the output.

### Why this actor

- **Fast and cheap**: the whole SII company list (≈3.2 million legal entities) is pre-indexed inside the actor. A 2,000-RUT lookup finishes in about 5 seconds; a filtered search for 5,000 companies in about 7 seconds.
- **Official, not scraped from a third-party site**: data comes straight from sii.cl and datos.gob.cl open-data files.
- **Always correct for lookups**: the actor checks whether the SII has published newer lists than its snapshot and, if so, streams the live SII files for your lookup automatically.
- **Any RUT format** in, clean structured JSON/CSV/Excel out. Not-found and invalid RUTs still return a record, so your input and output lists line up.

### Input

#### Lookup mode (default)

```json
{
  "mode": "lookup",
  "ruts": ["90.749.000-9", "93834000-5", "61.704.000-K", "968069802", "76086428"]
}
```

Accepted formats: `76.123.456-7`, `76123456-7`, `761234567` (last digit = DV), `61704000K`, or the number alone (`76123456`, DV computed for you). Several RUTs on one line separated by spaces, commas or semicolons also work. Up to 100,000 RUTs per run; duplicates are returned once.

Every input RUT produces one record with a `status`:

| status | meaning |
| --- | --- |
| `found` | company found (`found: true`) |
| `not_found` | valid company-range RUT that is not in the SII legal-entity list or the company registry |
| `invalid_dv` | the check digit does not match the number (the correct DV is shown in `dv`) |
| `invalid_format` | not a RUT |
| `natural_person_range` | RUT below 45,000,000 — natural persons are never looked up |

#### Search mode

```json
{
  "mode": "search",
  "activities": ["software"],
  "comunas": ["Las Condes", "Providencia"],
  "companySizes": ["small", "medium"],
  "startDateFrom": "2020-01-01",
  "sortBy": "newest",
  "maxItems": 500
}
```

| Filter | Notes |
| --- | --- |
| `nameContains` | all words must appear in the legal name; accents and case ignored |
| `activities` | SII code (`620100`), code prefix (`62`, `4923`), Spanish words from the SII description (`transporte carga`) or plain keywords: `software`, `restaurant`, `construction`, `real estate`, `mining`, `logistics`, `accounting`, `law firm`, `marketing`, `health`, `education`, `ecommerce`, `wine`, `hotel`... The log shows which codes each term matched |
| `comunas` / `regions` | head-office location; turn on `matchBranchComunas` to also match branch locations |
| `entityTypes` | `spa`, `ltda`, `eirl`, `sa`, `other_commercial`, `financial`, `foreign`, `public`, `international`, `nonprofit` |
| `companySizes`, `minEmployees`, `maxEmployees` | SII size data for the latest published commercial year (2024) |
| `startDateFrom` / `startDateTo` | start-of-activities date range (YYYY-MM-DD) |
| `status` | `active` (default), `closed` or `any` |
| `sortBy` | `rut` (fastest), `newest`, `oldest`, `employees` |
| `maxItems` | maximum number of companies (default 50) |

Other options: `includeBranches` (default on), `dataSource` (`auto` / `snapshot` / `live`), `proxyConfiguration` (not needed; used only for live SII downloads).

### Output example

```json
{
  "input": "90.749.000-9",
  "rut": "90749000-9",
  "rutFormatted": "90.749.000-9",
  "rutNumber": 90749000,
  "dv": "9",
  "dvValid": true,
  "found": true,
  "status": "found",
  "legalName": "FALABELLA S.A.",
  "entityType": "PERSONA JURIDICA COMERCIAL",
  "entitySubtype": "SOCIEDADES ANONIMAS ABIERTAS",
  "entitySubtypeCode": 214,
  "entityGroup": "sa",
  "startDate": "1993-01-01",
  "endDate": null,
  "isActive": true,
  "activities": [
    { "code": "643000", "description": "FONDOS Y SOCIEDADES DE INVERSION Y ENTIDADES FINANCIERAS SIMILARES", "since": "2010-11-12", "vatApplicable": true, "taxCategory": 1 },
    { "code": "702000", "description": "ACTIVIDADES DE CONSULTORIA DE GESTION", "since": "2010-11-12", "vatApplicable": true, "taxCategory": 1 }
  ],
  "activityCodes": ["643000", "702000", "749001", "803000", "783000"],
  "address": "PDTE RIESCO 5685 OF 401 PISO 4 AL 7",
  "city": null,
  "comuna": "LAS CONDES",
  "region": "Metropolitana de Santiago",
  "regionCode": 13,
  "addressSince": "2024-05-24",
  "branchCount": 8,
  "branches": [
    { "address": "HUERFANOS 1011, OF 115, ROL 131/253", "city": "STGO", "comuna": "SANTIAGO", "region": "Metropolitana de Santiago", "since": "2005-09-06" }
  ],
  "companySize": "large",
  "salesBracket": 13,
  "salesBracketLabel": "Large 4 (over 1,000,000 UF)",
  "employees": 441,
  "economicSector": "COMERCIO AL POR MAYOR Y AL POR MENOR; REPARACION DE VEHICULOS AUTOMOTORES Y MOTOCICLETAS",
  "economicSubsector": "VENTA AL POR MENOR EN COMERCIOS NO ESPECIALIZADOS",
  "primaryActivity": "VENTA AL POR MENOR EN COMERCIOS DE VESTUARIO Y PRODUCTOS PARA EL HOGAR (GRANDES TIENDAS)",
  "taxRegime": "REGIMEN GENERAL SEMI INTEGRADO (14A)",
  "sizeDataYear": 2024,
  "constitutionDate": null,
  "initialCapitalClp": null,
  "registryLegalForm": null,
  "sources": ["SII", "SII_SIZE_2024"],
  "dataAsOf": "2026-08-05",
  "retrievedAt": "2026-10-12T16:13:46.120Z"
}
```

A company created through the online company registry also carries `constitutionDate`, `initialCapitalClp` and `registryLegalForm` (e.g. `"2026-08-02"`, `5000000`, `"SpA"`). Companies constituted after the latest SII list was published are returned from the registry alone (`sources: ["COMPANY_REGISTRY"]`).

The run also stores a `SUMMARY` record in the key-value store with counts per status, the filters used, the activity codes each keyword matched and the dates of the data snapshot.

### Pricing

Pay per event — you only pay for companies actually returned:

| Event | When |
| --- | --- |
| `company-result` | each company record with `found: true` (lookup or search) |
| Actor start | once per run (Apify's standard start event, a fraction of a cent) |

From 30 October 2026, 1,000 companies found cost US$8 on the Apify Free plan; paid Apify plans pay less per company — see the **Pricing** tab for your plan's rate. Not-found, invalid and person-range RUTs are **free**. Platform compute is included. Set a maximum charge per run in Apify and the actor stops cleanly when it is reached.

### Use cases

- **KYB / supplier onboarding**: validate a supplier's RUT and DV, legal name, activity and whether it has a término de giro before paying invoices.
- **CRM and invoice data cleaning**: normalize RUT formats, fix DVs and fill legal names, comunas and activity codes in bulk.
- **B2B lead generation**: list active software, construction or logistics companies in a comuna, filtered by size and number of employees.
- **New-company monitoring**: companies that started activities this month in your sector (`startDateFrom` + `sortBy: newest`).
- **Market sizing and research**: counts by activity, region and size bracket from the official SII classification.

### FAQ

**Where does the data come from?** From the SII's public "Nóminas de personas jurídicas" (legal name, activities, addresses, company size) and the "Registro de Empresas y Sociedades" open dataset on datos.gob.cl. Both are published by the Chilean government for reuse.

**How fresh is it?** The SII updates its legal-entity lists about twice a year (latest: August 2026; size data is per commercial year, latest 2024). Each record shows `dataAsOf`. In the default `auto` mode, if the SII publishes newer lists than the actor's snapshot, lookups stream the live SII files (about 2 minutes instead of seconds).

**Do you return data about people?** No. Only legal entities are indexed, natural-person RUTs are rejected, and there are no fields about representatives, partners or owners. A company's legal name is returned exactly as registered; some company names (for example many EIRLs) include their founder's name. To leave out single-owner EIRLs in search mode, select the other entity types.

**Can I check if a company is active?** `isActive` is `false` when the SII has registered a término de giro (`endDate`). It reflects the SII list at `dataAsOf`.

**What does `employees` mean?** The number of dependent workers the company reported to the SII for the commercial year in `sizeDataYear`, counted at the head office (SII methodology). Companies without size data have `null`.

**Why is a valid RUT `not_found`?** It belongs to a natural person, to a taxpayer without legal personality, or to a company created after the latest published lists that is not in the online registry.

**Is there an API?** Yes — like every Apify actor you can call it via the Apify API, the JavaScript/Python clients, Make, Zapier or n8n, and export results to JSON, CSV or Excel. See *Integrations* below.

### Is it legal to look up Chilean companies by RUT?

The actor only uses official open data that the SII and the Registro de Empresas y Sociedades publish for reuse on sii.cl and datos.gob.cl; it does not log in to any SII service. It covers legal entities only, rejects natural-person RUTs and has no fields about representatives, partners or owners. Some legal names (for example many EIRLs) contain a founder's name, so Chile's Ley 19.628 and the new Ley 21.719 on personal data, and the EU GDPR if you work with EU data, can still apply to how you use the results; you are responsible for a lawful purpose such as KYB, invoicing or B2B research. Respect the terms of the original data sources. This is general information, not legal advice.

### Integrations

Call the Chile Company RUT Lookup from the Apify API or the JavaScript and Python clients (it works well as a validation step inside an ERP, CRM or invoicing flow), trigger follow-ups with webhooks, or schedule a monthly "new companies" search in Apify Console. It works with n8n, Make and Zapier, and with LangChain and LlamaIndex through their Apify integrations. AI agents in Claude, ChatGPT, Cursor and other MCP clients can find and run it through Apify's MCP server. Export as JSON, CSV or Excel, or read from the dataset API.

### Use with AI agents

Use this actor to validate Chilean RUTs and get official SII data for companies (legal name, entity type, activities, address, size, start and termination dates), or to search companies by name, activity, comuna, region, size and start date.

```json
{ "mode": "lookup", "ruts": ["76.086.428-5", "96806980-2"] }
```

Main output fields: `rutFormatted`, `found`, `status`, `legalName`, `entityType`, `isActive`, `startDate`, `endDate`, `primaryActivity`, `activities`, `address`, `comuna`, `region`, `companySize`, `employees`, `dataAsOf`. It is pay-per-event: an agent pays a small start fee plus a fixed price per company found; not-found and invalid RUTs are free.

### Related actors

- [Trabajando.cl Jobs Scraper](https://apify.com/fabrikit/trabajando-cl-jobs-scraper) — which Chilean companies are hiring, by comuna and area.
- [GetOnBrd Jobs Scraper](https://apify.com/fabrikit/getonbrd-jobs-scraper) — tech companies hiring in Chile and Latin America.
- [Portal Inmobiliario Scraper](https://apify.com/fabrikit/portal-inmobiliario-scraper) — Chilean property listings, including real-estate company sellers.
- [Google Maps Scraper](https://apify.com/fabrikit/google-maps-places-scraper) — phone numbers, websites and ratings for the businesses you find.
- [Mercado Libre Autos Scraper](https://apify.com/fabrikit/mercadolibre-autos-scraper) — car dealers and their stock in Chile.

#### Ready-made examples

- [Consulta masiva de RUT de empresas](https://apify.com/fabrikit/chile-company-rut-lookup/examples/consulta-rut-empresas-masiva)
- [Empresas nuevas creadas en Chile](https://apify.com/fabrikit/chile-company-rut-lookup/examples/empresas-nuevas-chile)
- [Empresas constructoras en Santiago](https://apify.com/fabrikit/chile-company-rut-lookup/examples/constructoras-region-metropolitana)

### Changelog

- **2026-10-16** — README: legal notes, integrations, AI-agent usage, related actors and example tasks added; pricing text updated. The rebuild also refreshed the company index from the SII lists and company registry available that day (see `dataAsOf` on each record).
- **2026-10-15** — Tiered pricing announced, effective 2026-10-30 (lower per-company price on paid Apify plans).
- **2026-10-12** — Builds 0.1.1–0.1.2: initial release with lookup and search modes, using the SII legal-entity lists of August 2026 and the Registro de Empresas y Sociedades; published on the Apify Store.

*En español: primera versión publicada el 12-10-2026; cada nueva compilación actualiza el índice con las nóminas vigentes del SII.*

### En español

**Consulta de empresas chilenas por RUT** con datos oficiales del SII: razón social, tipo de sociedad, fecha de inicio de actividades y de término de giro, actividades económicas con código SII, domicilio y sucursales (comuna y región), tramo de ventas, número de trabajadores y, para sociedades del Registro de Empresas y Sociedades, fecha de constitución y capital inicial. Acepta RUT en cualquier formato y valida el dígito verificador. El modo búsqueda filtra por nombre, actividad (código o palabra), comuna, región, tamaño, tipo de entidad y fecha de inicio. Solo personas jurídicas: los RUT de personas naturales se rechazan sin consultar y no se entrega ningún dato de representantes o socios. Se cobra por empresa encontrada (el precio vigente para tu plan está en la pestaña Pricing); los RUT no encontrados o inválidos no se cobran.

# Actor input Schema

## `mode` (type: `string`):

`lookup` = enrich a list of company RUTs (one record per RUT, including not-found ones). `search` = find companies by name, activity, comuna/region, size, entity type and start date.

## `ruts` (type: `array`):

One RUT per line, in any format: `76.123.456-7`, `76123456-7`, `761234567`, `61704000K`, or the number alone (`76123456`). Several RUTs on one line separated by spaces or semicolons also work. The check digit (DV) is validated; RUTs in the natural-person range (below 45,000,000) are rejected without lookup. Up to 100,000 RUTs per run.

## `nameContains` (type: `string`):

Words that must all appear in the legal name (razón social), in any order; accents and case are ignored. Example: `constructora sur`.

## `activities` (type: `array`):

A company matches if ANY of its registered SII activities matches ANY entry. Each entry can be a 6-digit SII code (`620100`), a code prefix (`62` = all IT services, `4923` = road freight), Spanish words from the SII description (`transporte carga`), or a plain-language keyword such as `software`, `restaurant`, `construction`, `real estate`, `mining`, `logistics`, `accounting`, `law firm`, `marketing`, `health`, `education`, `ecommerce`. The run log shows which codes each entry matched.

## `comunas` (type: `array`):

Comuna of the head office (e.g. `Las Condes`, `Providencia`, `Viña del Mar`, `Ñuñoa`). Accents and case are ignored. A company matches if it is in ANY of the listed comunas.

## `regions` (type: `array`):

Region of the head office. A company matches if it is in ANY selected region.

## `matchBranchComunas` (type: `boolean`):

When on, the comuna/region filters also match companies that have a current branch (sucursal) there, not only the head office.

## `entityTypes` (type: `array`):

Legal form groups (from the SII subtype). Leave empty for all legal entities.

## `companySizes` (type: `array`):

SII size category from annual sales (latest commercial year published, currently 2024). `unknown` = the company is not in the SII size list (e.g. created after that year or not classified as a company).

## `minEmployees` (type: `integer`):

Minimum number of dependent workers reported to the SII (latest commercial year). Companies without size data are excluded when this is set.

## `maxEmployees` (type: `integer`):

Maximum number of dependent workers reported to the SII (latest commercial year).

## `startDateFrom` (type: `string`):

Earliest start-of-activities date (inicio de actividades), YYYY-MM-DD. Use with `Newest first` to get recently created companies.

## `startDateTo` (type: `string`):

Latest start-of-activities date, YYYY-MM-DD.

## `status` (type: `string`):

`active` = no termination of business (término de giro) registered. `closed` = término de giro registered.

## `sortBy` (type: `string`):

`rut` is fastest (stops as soon as Max results is reached). The other orders scan all ~3.2 million companies first (about a minute).

## `maxItems` (type: `integer`):

Stop after this many companies in search mode. Lookup mode always returns one record per unique input RUT.

## `includeBranches` (type: `boolean`):

Add the list of current branches (sucursales) registered with the SII to each record (up to 200 per company; `branchCount` always has the total).

## `dataSource` (type: `string`):

`auto` answers from the snapshot bundled with the actor and, for lookups, switches to the live SII files automatically if the SII has published a newer version. `snapshot` never downloads anything (fastest). `live` always streams the current SII files for lookups (~190 MB download, 1–2 minutes); search mode always uses the snapshot.

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

Only used when the actor downloads the live SII files. The SII serves these files to any client, so no proxy is needed by default.

## Actor input object example

```json
{
  "mode": "lookup",
  "ruts": [
    "90.749.000-9",
    "93834000-5",
    "61.704.000-K",
    "96806980-2",
    "76086428-5"
  ],
  "matchBranchComunas": false,
  "status": "active",
  "sortBy": "rut",
  "maxItems": 50,
  "includeBranches": true,
  "dataSource": "auto",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `companies` (type: `string`):

Company records produced by the run

## `summary` (type: `string`):

Counts, filters and data-snapshot dates for the run

# 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 = {
    "mode": "lookup",
    "ruts": [
        "90.749.000-9",
        "93834000-5",
        "61.704.000-K",
        "96806980-2",
        "76086428-5"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("fabrikit/chile-company-rut-lookup").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 = {
    "mode": "lookup",
    "ruts": [
        "90.749.000-9",
        "93834000-5",
        "61.704.000-K",
        "96806980-2",
        "76086428-5",
    ],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("fabrikit/chile-company-rut-lookup").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 '{
  "mode": "lookup",
  "ruts": [
    "90.749.000-9",
    "93834000-5",
    "61.704.000-K",
    "96806980-2",
    "76086428-5"
  ],
  "maxItems": 50
}' |
apify call fabrikit/chile-company-rut-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fabrikit/chile-company-rut-lookup"
        }
    }
}
```

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/PszNTWcyESDyHrry9/builds/LhnUbstV8WIU8V3px/openapi.json
