Tax registry & procurement API for Latin America. One request, one response, no infrastructure.
npm install -g latinfo
latinfo search "banco de credito"
latinfo licitaciones "construccion hospital" --category works
# Install
npm install -g latinfo
# Login with GitHub
latinfo login
# Query
latinfo ruc 20100047218
latinfo dni 12345678
latinfo search "gloria"
# Government procurement (licitaciones)
latinfo licitaciones "servicio alimentacion"
latinfo licitaciones --category works --min-amount 1000000
# Or use the API directly
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.latinfo.dev/pe/ruc/20100047218
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.latinfo.dev/pe/licitaciones?q=construccion&category=works"
Base URL: https://api.latinfo.dev
| Endpoint | Description |
|---|---|
GET /pe/ruc/:ruc | Lookup by RUC (11 digits) |
GET /pe/dni/:dni | Lookup by DNI (8 digits, converts to RUC automatically) |
GET /pe/search?q=... | Search by company name |
GET /pe/licitaciones?q=...&category=...&min_amount=...&max_amount=...&buyer=...&method=...&status=...&limit=... | Search government procurement |
GET /pe/licitaciones/info | Procurement data stats |
Returns full OCDS 1.1 compiledRelease records. Key fields:
| Field | Description | Example |
|---|---|---|
ocid | Open Contracting ID | ocds-dgv273-seacev3-2026-273-3 |
url | Link to official OECE portal | contratacionesabiertas.oece.gob.pe/proceso/... |
buyer.name | Buyer organization | MUNICIPALIDAD DISTRITAL DE MORO |
tender.title | Short title | CP-ABR-1-2026-MDM/CS-1 |
tender.description | Full description | SUPERVISION DE OBRA: CONSTRUCCION DE... |
tender.value.amount | Amount in PEN | 64815.55 |
tender.mainProcurementCategory | goods, services, works | services |
tender.procurementMethodDetails | Procurement method | Concurso Público Abreviado |
tender.datePublished | Publication date | 2026-03-10T23:26:00-05:00 |
tender.items[].statusDetails | Status | CONVOCADO |
tender.documents[] | Attached files (bases, etc.) | |
awards[] | Award decisions, suppliers | |
contracts[] | Contract details |
| Field | Description | Example |
|---|---|---|
ruc | RUC number (11 digits) | 20100047218 |
razon_social | Business name | BANCO DE CREDITO DEL PERU |
estado | Tax status | ACTIVO |
condicion | Condition | HABIDO |
ubigeo | Location code | 150114 |
tipo_via | Street type | JR. |
nombre_via | Street name | CENTENARIO |
numero | Street number | 156 |
// npm install latinfo
import { Latinfo } from 'latinfo';
const client = new Latinfo('YOUR_API_KEY');
// SUNAT
const bcp = await client.pe.ruc('20100047218');
const results = await client.pe.search('banco de credito');
// Licitaciones
const obras = await client.pe.licitaciones({
q: 'construccion', category: 'works', limit: 10
});
You don't download 364MB from SUNAT. You don't parse Latin1 with escaped pipe delimiters. You don't write a check digit algorithm (mod 11, weights [5,4,3,2,7,6,5,4,3,2], special cases for remainders 10 and 11). You don't build a search index that handles S.A.C. and E.I.R.L. — SQLite FTS5 splits E.I.R.L. into four single-letter tokens and discards them. You don't set up a daily import pipeline with change detection and atomic replacement. You don't manage servers.
We do all of that. Daily. For free.
Records are compiled into a binary index served from Cloudflare's edge network (300+ locations). RUC lookups resolve to an exact byte offset — one range request, no database server, no cold start. Name searches use an inverted index with TF-IDF scoring and phrase proximity detection.
No database process running. No connection pool. No replicas. Static files on a CDN that behave like a search engine. 1 request or 100,000 concurrent — same speed, zero ops.
| Plan | Requests/month | Price |
|---|---|---|
| Free | 100,000/day | $0 |
| Pro | 10,000,000/month | $1/month |
LIVE Peru (SUNAT) — RUC, DNI, company name search. 18M+ records, updated daily.
LIVE Peru (OECE/SEACE) — Government procurement search. Updated daily. Source: contratacionesabiertas.oece.gob.pe
Brazil, Mexico, Colombia, Argentina, and Chile in development.
Use Latinfo to ship today. If you outgrow it or need full control, the data is public — you can always build your own solution. We're not locking you in. We're saving you time.