# Ecuador Company Registry - Owners, Directors & Contacts (`scrapers_lat/ecuador-supercias-companies-scraper`) Actor

Search Ecuador's company register: RUC, legal status, full address, email, phone and website, subscribed and authorised capital, CIIU activity, every director and legal representative with national ID, the shareholder list with capital and foreign-investment flags, legal acts and debts.

- **URL**: https://apify.com/scrapers\_lat/ecuador-supercias-companies-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 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

## Ecuador Company Registry — Owners, Directors & Contacts

Structured company data for **Ecuador**, straight from the official public register of companies.
Look up one company by tax ID, search by name, or pull whole slices of the register — and get back
the things that actually matter for KYB, lead generation and credit work: **who owns it, who runs
it, how much capital it has, how to contact it, and what it owes.**

Results come back as JSON, CSV, Excel or via API.

***

### What you get for every company

**Identity**

- Registered company name and trade name
- **RUC** (13-digit Ecuadorian tax ID) and the register's own file number
- Legal status (active, dissolved, in liquidation, cancelled) and an `isActive` flag
- Company type — S.A., Cía. Ltda., S.A.S., foreign branch
- Incorporation date, statutory term expiry, nationality, supervising regulator office

**Contact details** — the part most datasets are missing

- Up to two contact **email addresses**
- Landline, second landline, **mobile**, fax
- Website
- Full registered address broken into province, canton, city, parish, street, number, cross
  street, building, floor, block, neighbourhood, PO box — plus a ready-to-use single-line address
  and the landmark reference the company filed

**Money**

- Subscribed capital, authorised capital and nominal share value in USD
- **Outstanding amounts owed to the regulator**, itemised by year and type, with a total — a
  direct compliance and credit-risk signal

**People — with national ID numbers**

- Every current director and officer: national ID, full name, nationality, role, appointment
  date, term length, registration date and number
- A `isLegalRepresentative` flag marking the people who can legally **bind the company**
- The full roster of **former** directors and officers, same fields — useful for building history
  and spotting churn

**Ownership**

- The **shareholder register**: each holder's national ID or tax ID, name, nationality, capital
  held in USD, and any restriction flag
- Whether each holding is national, **direct foreign** or **resident foreign** investment
- Derived roll-ups: shareholder count, total shareholder capital, foreign shareholder count and
  the **percentage of capital held from abroad**
- Subsidiary companies, where the company is a holding

**History**

- Registered legal acts — capital increases, name changes, mergers, dissolutions — with
  resolution numbers and registration dates
- Optional annual filing history: which accounts and declarations were filed for which year, and
  when. A quick way to spot companies that stopped filing.

***

### Four ways to find companies

| Mode | Use it for |
|---|---|
| **Company name** | Find companies by name or any fragment of one |
| **Tax ID / national ID** | Straight lookup by RUC (13 digits) or cédula (10 digits) |
| **File number** | Re-fetch known companies by their permanent registry file number |
| **Sweep a range** | Walk a whole block of the register at once |

#### Deep name search — see what the registry hides

The registry's own name search shows **at most 15 companies per term and cannot page past
that**. Search "BANANERA" on the official site and you get the first 15 alphabetically; every
other banana company in Ecuador is invisible to you.

Turn on **Deep name search** and any term that hits that ceiling is automatically re-issued in
narrower variants until the hidden companies come out. In testing, "BANANERA" returned 15 names
on the official site — this Actor kept going and surfaced companies like `REGINABANANERA S.A.`
that the site will not show you at all.

#### Sweep = a feed of newly incorporated companies

File numbers are issued in order, so sweeping a high range gives you companies in the order they
were incorporated. Sweep the top of the range on a schedule and you have a **new-company feed**
for Ecuador — with the founders' names and IDs attached from day one.

***

### Filters (you are never charged for filtered-out records)

Narrow before anything is counted as a result:

- Only active companies · specific legal statuses · specific company types
- Province, city, company-name contains
- **CIIU economic activity** prefix (e.g. `G47` retail, `K64` finance)
- Incorporated between two dates
- Minimum / maximum subscribed capital
- Only companies **with an email**, with a phone, or with a website
- Only **government suppliers**
- Only securities-market participants
- Only companies **with foreign shareholders**
- Only companies that **owe the regulator money**

Anything filtered out is discarded before it counts as a result, so you only pay for records you
actually asked for.

***

### Example uses

- **KYB / onboarding** — resolve an Ecuadorian RUC to its legal name, status, address, directors
  and shareholders in one call
- **Lead generation** — every active S.A.S. in Pichincha with an email address and CIIU `G47`
- **Credit and risk** — companies with outstanding regulator debts, or in liquidation
- **Ownership research** — trace foreign investors and the capital they hold; follow the same
  person's national ID across every company they direct
- **Market monitoring** — a daily feed of newly incorporated companies and their founders

***

### Output

One row per company, with nested arrays for directors, shareholders, legal acts, filings and
debts. Three ready-made dataset views — **Companies**, **Contacts** and **Ownership** — let you
export a flat contact list or an ownership table without post-processing.

Export as JSON, CSV, Excel, XML or HTML table, or pull from the Apify API.

***

### Notes on coverage

- Amounts are in **US dollars** — Ecuador's official currency.
- Dates are normalised to `YYYY-MM-DD`.
- A handful of very large companies have shareholder registers the registry itself cannot render;
  for those, every other section is still returned and `unavailableSections` tells you exactly
  which part was missing rather than silently returning an empty list.
- File numbers that were never issued are skipped silently and never charged.
- Only information the registry publishes openly is returned.

### Pricing

Pay per result — you are charged only for company records actually delivered. Failed runs,
skipped file numbers and filtered-out companies are never charged.

# Actor input Schema

## `searchMode` (type: `string`):

How to find companies. Company name does a contains-match on the registered name. Tax ID / national ID accepts a 13-digit RUC or a 10-digit cédula. File number takes the register's own expediente number. Sweep walks a whole range of file numbers.

## `queries` (type: `array`):

One or more company names (or parts of a name), RUC / cédula numbers, or file numbers — matching the search mode above.

## `deepNameSearch` (type: `boolean`):

The registry's own name search returns at most 15 companies per term and cannot page past that. With this on, a term that hits the cap is automatically re-issued in narrower variants so you get the companies the registry hides. Leave off for a quick look-up.

## `maxSearchQueries` (type: `integer`):

Upper bound on how many name variants the deep search may issue. Raise it for broad terms that match thousands of companies.

## `expedienteFrom` (type: `integer`):

First file number to visit in sweep mode. File numbers are issued in order, so a high range is effectively a feed of newly incorporated companies.

## `expedienteTo` (type: `integer`):

Last file number to visit in sweep mode. Numbers that were never issued are skipped and never charged.

## `includeAdministrators` (type: `boolean`):

Current and former directors with national ID, role, nationality, appointment date and whether they can legally bind the company.

## `includeShareholders` (type: `boolean`):

The shareholder register: each holder's ID, name, nationality, capital held and whether the holding is national or direct/indirect foreign investment.

## `includeLegalActs` (type: `boolean`):

Capital increases, name changes, mergers, dissolutions and other registered acts with their resolution and registration dates.

## `includeAmountsOwed` (type: `boolean`):

Contributions the company still owes the regulator, by year and type — a direct compliance and credit signal.

## `includeAnnualFilings` (type: `boolean`):

Which annual accounts and declarations were filed for which year, and when. Useful to spot companies that stopped filing.

## `onlyActive` (type: `boolean`):

Skip dissolved, liquidated and cancelled companies.

## `legalStatus` (type: `array`):

Keep only these legal statuses, e.g. ACTIVA, DISOLUCION, LIQUIDACION, CANCELADA. Matched as a substring.

## `companyType` (type: `array`):

Keep only these company types, e.g. ANONIMA, RESPONSABILIDAD LIMITADA, SUCURSAL EXTRANJERA, S.A.S. Matched as a substring.

## `provinces` (type: `array`):

Keep only companies registered in these provinces, e.g. PICHINCHA, GUAYAS, AZUAY.

## `city` (type: `string`):

Keep only companies whose registered city contains this text, e.g. QUITO.

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

Extra filter on the registered company name.

## `ciiuPrefix` (type: `string`):

Keep only companies whose economic activity code starts with this, e.g. G47 for retail or K64 for finance.

## `constitutedFrom` (type: `string`):

Keep only companies incorporated on or after this date (YYYY-MM-DD).

## `constitutedTo` (type: `string`):

Keep only companies incorporated on or before this date (YYYY-MM-DD).

## `minSubscribedCapitalUsd` (type: `integer`):

Keep only companies with at least this much subscribed capital.

## `maxSubscribedCapitalUsd` (type: `integer`):

Keep only companies with at most this much subscribed capital.

## `requireEmail` (type: `boolean`):

Keep only companies that publish at least one contact email.

## `requirePhone` (type: `boolean`):

Keep only companies that publish at least one phone number.

## `requireWebsite` (type: `boolean`):

Keep only companies that publish a website.

## `onlyStateSuppliers` (type: `boolean`):

Keep only companies flagged as suppliers of goods or services to the state.

## `onlySecuritiesMarketParticipants` (type: `boolean`):

Keep only companies registered in the Ecuadorian securities market.

## `onlyWithForeignShareholders` (type: `boolean`):

Keep only companies with at least one direct or indirect foreign investor. Needs the shareholder section on.

## `onlyWithAmountsOwed` (type: `boolean`):

Keep only companies with outstanding contributions. Needs the amounts-owed section on.

## `maxRecords` (type: `integer`):

Stop after this many company files. Free Apify plans are capped at 10 per run.

## `concurrency` (type: `integer`):

How many company files to fetch at once. Lower this if the registry starts refusing connections.

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

The registry refuses datacenter traffic after a short burst, so Ecuadorian residential proxy is used by default. Override only if you know what you need.

## Actor input object example

```json
{
  "searchMode": "companyName",
  "queries": [
    "CORPORACION FAVORITA"
  ],
  "deepNameSearch": true,
  "maxSearchQueries": 250,
  "includeAdministrators": true,
  "includeShareholders": true,
  "includeLegalActs": true,
  "includeAmountsOwed": true,
  "includeAnnualFilings": false,
  "onlyActive": false,
  "requireEmail": false,
  "requirePhone": false,
  "requireWebsite": false,
  "onlyStateSuppliers": false,
  "onlySecuritiesMarketParticipants": false,
  "onlyWithForeignShareholders": false,
  "onlyWithAmountsOwed": false,
  "maxRecords": 10,
  "concurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "EC"
  }
}
```

# 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 = {
    "queries": [
        "CORPORACION FAVORITA"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/ecuador-supercias-companies-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 = { "queries": ["CORPORACION FAVORITA"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/ecuador-supercias-companies-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 '{
  "queries": [
    "CORPORACION FAVORITA"
  ]
}' |
apify call scrapers_lat/ecuador-supercias-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/ecuador-supercias-companies-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/Kh94nRH7USjzZDiWZ/builds/hoHqhjR3cAhs7YJ1l/openapi.json
