Peru Company Data — SUNAT RUC & Taxpayer Status
Pricing
$4.00 / 1,000 company records
Peru Company Data — SUNAT RUC & Taxpayer Status
Official Peruvian taxpayer registry data by RUC: legal name, status, 'habido' condition, registered address and district.
Pricing
$4.00 / 1,000 company records
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Peru Company Registry Scraper (SUNAT RUC)
Official Peruvian taxpayer registry data by RUC: legal name, registration status, the HABIDO locatability condition, entity kind and full registered address down to district.
Free · No API key · Official source · Same schema across every country in this series
What data do you get?
| Field | Description |
|---|---|
companyName | Registered legal name |
registrationNumber | RUC — the register's own identifier |
taxNumber | VAT / tax identifier where published |
status | Normalized to active / inactive / dissolved / unknown |
statusRaw | The register's own wording, untranslated |
legalForm | Legal form as registered |
incorporatedOn / dissolvedOn | ISO dates |
address, city, postalCode | Registered address |
industry, industryCode | Activity classification where published |
employees, capital | Where the register publishes them |
officers[] | Directors / partners where published |
sourceUrl | Link to the company's page on the register |
Country-specific fields on top of the shared schema: taxpayerCondition, isLocatable, entityKind, province, department, ubigeoCode.
Input
| Field | Type | Default | Description |
|---|---|---|---|
queries | array | — | RUC numbers (11 digits, e.g. 20131312955). |
maxResultsPerQuery | integer | 5 | For name searches, how many matching companies to return. |
includeRaw | boolean | false | Attach the register's untouched response under raw. |
requestDelayMs | integer | 200 | Politeness delay against a public register. |
proxyConfiguration | object | none | Optional. |
{"queries": ["20131312955","20100070970"],"maxResultsPerQuery": 5}
Example output
{"country": "PE","registry": "SUNAT — Registro Único de Contribuyentes (RUC)","companyName": "SUPERMERCADOS PERUANOS SOCIEDAD ANONIMA 'O ' S.P.S.A.","registrationNumber": "20100070970","taxNumber": "20100070970","status": "active","statusRaw": "ACTIVO","taxpayerCondition": "HABIDO","isLocatable": true,"entityKind": "Legal entity","address": "CAL. MORELLI NRO 181 INT. P-2, SAN BORJA, LIMA, LIMA","sourceUrl": "https://e-consultaruc.sunat.gob.pe/"}
What can you use it for?
- Counterparty risk — the HABIDO condition tells you whether SUNAT can actually locate the taxpayer at its declared address.
- Invoicing compliance — confirm a RUC is active before issuing or accepting an invoice.
Frequently asked questions
Is this Peruvian company registry scraper free?
The data source is free and needs no API key — you pay only for the Apify compute the run uses.
Do I need an API key or an account with the registry?
No. SUNAT's own portal is behind a CAPTCHA; this actor reads the same public RUC record through the free apis.net.pe gateway.
Can I search by company name, or only by RUC?
RUC only. SUNAT publishes no public search-by-name index, so a name query fails with a clear message rather than returning nothing.
How current is the data?
Every run queries the source live, so results are as current as the register itself.
Can I export the results to CSV, Excel or JSON?
Yes. Apify datasets export to CSV, Excel, JSON, XML and HTML, and can be pulled through the API or pushed to your own storage.
Can I combine this with other countries in one dataset?
Yes — that is why it exists. Every actor in this series emits the same core schema, so results from different countries concatenate into one table with no remapping.
Is scraping this data legal?
This actor reads a public register that the Peruvian authorities publish deliberately for public inspection. Company records are public by design; where a record names a person (a director, owner or partner), that is personal data and your use of it falls under GDPR or the local equivalent — handle it accordingly.
What is the difference between "estado" and "condición"?
status (estado) says whether the RUC is active. taxpayerCondition (condición) says whether SUNAT can find the taxpayer at its declared address — NO HABIDO is a real risk flag that an active status alone would hide.
Notes and limits
- Lookup is by RUC only — SUNAT publishes no public search-by-name index, and a name query fails with a clear message rather than returning nothing.
taxpayerConditionis the field to watch.HABIDOmeans SUNAT can locate the taxpayer at its declared address;NO HABIDOis a genuine counterparty risk flag thatstatus: activealone would hide.- A RUC starting
20is a legal entity and10a natural person trading — surfaced asentityKind. - SUNAT's own portal is behind a CAPTCHA; this actor reads the same public record through the apis.net.pe gateway.
- Queries that match nothing are still pushed as
{ query, error }, so a partial run is never silent.
Other country registries in this series
Norway · Finland · Denmark · Iceland · Poland · Slovakia · Slovenia · Latvia · Estonia · Czechia · France · UK · Israel · Taiwan · Singapore · Vietnam · Brazil · Colombia · Peru · USA — plus EU VAT Validation (VIES) covering all 27 member states.