# SRI Ecuador RUC Taxpayer Scraper (`scrapers_lat/sri-ruc-scraper`) Actor

Extract authoritative Ecuadorian taxpayer records from SRI Consulta RUC by RUC number. Scrape legal name, status, economic activity, regime, taxpayer type, withholding-agent and special-contributor flags, key dates, legal representatives and registered establishments.

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

## Pricing

from $8.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

<!-- actor-banner -->
[![SRI Ecuador RUC Taxpayer Scraper](https://scrapers.lat/banners/sri-ruc-scraper.png)](https://console.apify.com/actors/lnqh0MgfNAZ9p41By/input)
<!-- /actor-banner -->

## SRI RUC Scraper

> Extract authoritative Ecuadorian taxpayer records from the SRI Consulta RUC registry, covering every active and inactive RUC nationwide

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

<table><tr>
<td align="center"><strong>21 fields</strong><br>per record</td>
<td align="center"><strong>Ecuador</strong><br>coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-20</td>
</tr></table>

<br>

### What you get

Each record is one taxpayer pulled straight from Ecuador's SRI (Servicio de Rentas Internas) registry by its 13-digit RUC, useful for KYC, CRM enrichment and onboarding checks.

- **legalName**: registered company or natural-person name (razon social)
- **ruc**: the 13-digit RUC tax identifier
- **status**: taxpayer status (ACTIVO, SUSPENDIDO, PASIVO)
- **taxpayerType**: SOCIEDAD or PERSONA NATURAL
- **economicActivity**: principal economic activity description (CIIU classification)
- **regime**: tax regime (GENERAL, RIMPE and others)
- **specialTaxpayer**: whether the taxpayer is a designated special contributor
- **withholdingAgent**: whether the taxpayer is a withholding agent
- **keepsAccounting**: whether the taxpayer is required to keep formal accounting
- **ghostTaxpayer**: SRI ghost-taxpayer flag (contribuyente fantasma)
- **nonexistentTransactions**: SRI nonexistent-transactions flag
- **cancellationReason**: reason for suspension or cancellation when applicable
- **startDate**: date activities began
- **cessationDate**: date activities ceased when applicable
- **restartDate**: date activities restarted when applicable
- **lastUpdateDate**: date the SRI record was last updated
- **legalRepresentatives**: array of legal representatives with identification and name
- **establishmentCount\***: number of registered establishments
- **establishments\***: array of establishments with number, commercial name, type, full address, status and head-office flag
- **url**: link to the SRI Consulta RUC service
- **observedAt**: when this record was last seen by the scraper

*\*These fields only appear when Include Establishments is set to true.*

### Who is it for

| Use case | Who benefits |
|---|---|
| KYC and supplier onboarding | Compliance and risk teams |
| CRM and lead enrichment | Sales and marketing operations |
| Verifying a counterparty before invoicing | Finance and accounts payable |
| Checking ghost-taxpayer and special-contributor flags | Tax and audit advisors |
| Mapping a company's branch network in Ecuador | Market research and expansion teams |

### Frequently Asked Questions

**Which taxpayers does this cover?**  
It covers any taxpayer registered with Ecuador's SRI, including both companies (sociedades) and natural persons (personas naturales), active or inactive. You look them up by their 13-digit RUC number.

**How many records can I get in one run?**  
You get one record per RUC you supply, and you can supply as many as you like. A single large company can also expand into hundreds of establishments, since some chains register hundreds of branches across the country.

**What happens if a RUC does not exist?**  
The scraper returns a clear record with an error note saying the RUC was not found in the SRI registry, so a missing match is itself a usable signal rather than a silent gap.

**Can I get a company's branches and addresses?**  
Yes. Turn on Include Establishments and each record gains an establishments array listing every matriz and sucursal with its commercial name, full address, status and head-office flag.

**Do I need a proxy to run this?**  
No. The SRI public endpoints respond from standard datacenter connections, so runs work out of the box. An optional Ecuador residential proxy toggle is available only if you ever need it.



<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [SRI Ecuador RUC Bulk Lookup](https://apify.com/scrapers_lat/sri-ruc-scraper/examples/sri-ruc-bulk-lookup): Look up multiple Ecuadorian companies by RUC in the SRI registry with legal name, status and tax data.
- [SRI Ecuador RUC Company Lookup](https://apify.com/scrapers_lat/sri-ruc-scraper/examples/sri-ruc-company-lookup): Look up an Ecuadorian company by RUC in the SRI registry with legal name, status and tax data.
- [SRI Ecuador RUC with Establishments](https://apify.com/scrapers_lat/sri-ruc-scraper/examples/sri-ruc-with-establishments): Pull an Ecuadorian RUC from SRI with its registered establishments, addresses and activity status.

<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [SUNAT Peru RUC Scraper](https://apify.com/scrapers_lat/sunat-scraper): Extract Peru SUNAT taxpayer records by RUC or company name: legal name, status, tax address, CIIU...
- [Chile Mercado Publico Supplier & Award Scraper](https://apify.com/scrapers_lat/mercado-publico-scraper): Extract Chile state suppliers from Mercado Publico and ChileProveedores with public-procurement...
- [BCRA Argentina Debtor & Credit Risk Scraper](https://apify.com/scrapers_lat/bcra-deudores-scraper): Extract Argentina BCRA Central de Deudores credit-risk records by CUIT or CUIL: debtor name...
- [Colombia SECOP Scraper](https://apify.com/scrapers_lat/colombia-secop-scraper): Extract Colombia public contracts from SECOP II (datos.gov.co): entity and supplier, NIT, contract...
- [DataJud Brazil Court Case Scraper](https://apify.com/scrapers_lat/datajud-scraper): Extract Brazilian court process records from the CNJ DataJud public database across 90+ federal...
- [SAT Mexico 69-B Taxpayer Blacklist Scraper](https://apify.com/scrapers_lat/sat-69b-scraper): Extract Mexico SAT Lista 69-B (EFOS) blacklist of taxpayers presumed or confirmed to issue fake...

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with the SRI (Servicio de Rentas Internas del Ecuador). It only accesses data that is publicly available on the platform. Use it in accordance with the SRI's terms of service.

# Actor input Schema

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

Maximum number of taxpayer records to collect across all RUC numbers. Optional.
## `rucs` (type: `array`):

Ecuadorian RUC tax-IDs (13 digits) to look up in the SRI taxpayer registry. One record is produced per RUC: company or natural-person legal name, status, economic activity, taxpayer type, regime, key dates and the registered establishments. Add one or more.
## `includeEstablishments` (type: `boolean`):

When enabled, the scraper also fetches every registered establishment (matriz and sucursales) for each taxpayer, including the establishment number, commercial name, full address, status and head-office flag.
## `useProxy` (type: `boolean`):

Route requests through an Apify residential proxy located in Ecuador. Enable this only if the SRI host starts blocking the run; direct datacenter requests normally work.

## Actor input object example

```json
{
  "maxItems": 10,
  "rucs": [
    "1790016919001"
  ],
  "includeEstablishments": true,
  "useProxy": false
}
````

# 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 = {
    "maxItems": 10,
    "rucs": [
        "1790016919001"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/sri-ruc-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 = {
    "maxItems": 10,
    "rucs": ["1790016919001"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/sri-ruc-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "rucs": [
    "1790016919001"
  ]
}' |
apify call scrapers_lat/sri-ruc-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/sri-ruc-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SRI Ecuador RUC Taxpayer Scraper",
        "description": "Extract authoritative Ecuadorian taxpayer records from SRI Consulta RUC by RUC number. Scrape legal name, status, economic activity, regime, taxpayer type, withholding-agent and special-contributor flags, key dates, legal representatives and registered establishments.",
        "version": "0.1",
        "x-build-id": "FdOhUJPFF0JRtCs08"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~sri-ruc-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-sri-ruc-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~sri-ruc-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-sri-ruc-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~sri-ruc-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-sri-ruc-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of taxpayer records to collect across all RUC numbers. Optional."
                    },
                    "rucs": {
                        "title": "RUC Numbers",
                        "type": "array",
                        "description": "Ecuadorian RUC tax-IDs (13 digits) to look up in the SRI taxpayer registry. One record is produced per RUC: company or natural-person legal name, status, economic activity, taxpayer type, regime, key dates and the registered establishments. Add one or more.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeEstablishments": {
                        "title": "Include Establishments",
                        "type": "boolean",
                        "description": "When enabled, the scraper also fetches every registered establishment (matriz and sucursales) for each taxpayer, including the establishment number, commercial name, full address, status and head-office flag.",
                        "default": true
                    },
                    "useProxy": {
                        "title": "Use Residential Proxy",
                        "type": "boolean",
                        "description": "Route requests through an Apify residential proxy located in Ecuador. Enable this only if the SRI host starts blocking the run; direct datacenter requests normally work.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
