Documentación de la API
Versión v1
Introducción
La API pública de PerúAPI permite consultar información oficial de Perú (RUC, DNI, tipo de cambio, comprobantes electrónicos, ubigeo, UIT, entidades públicas y unidades ejecutoras) mediante peticiones HTTP simples que devuelven respuestas en JSON. Toda petición requiere una clave API válida, generada desde tu panel de cliente.
URL base: https://peruapi.net/api/public/v1
Autenticación
Envía tu clave API en uno de estos encabezados:
X-API-Key: a1B2c3D4e5F6g7H8i9J0k1L2m3N4o5P6q7R8s9T0u1V2w3X4y5Z
o como token Bearer:
Authorization: Bearer a1B2c3D4e5F6g7H8i9J0k1L2m3N4o5P6q7R8s9T0u1V2w3X4y5Z
Copia tu token desde Token en tu panel de cliente.
Verifica que la API esté operativa. Requiere una clave API válida, igual que el resto de endpoints.
curl https://peruapi.net/api/public/v1/status
{
"success": true,
"data": { "status": "operational", "api": "PeruAPI Public API", "version": "v1" }
}
Devuelve los datos de tu cliente, tu clave API y tu suscripción activa.
curl https://peruapi.net/api/public/v1/me \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": {
"client": { "id": 12, "code": "empresa_ejemplo_sac", "name": "Empresa Ejemplo SAC", "status": "active" },
"api_key": { "id": 34, "name": "Clave principal", "prefix": "a1B2c3D4e5F6", "expires_at": null },
"subscription": {
"status": "active", "starts_at": "2026-07-01T00:00:00Z", "ends_at": null,
"plan": { "code": "basico", "name": "Básico" }
}
}
}
Devuelve tu consumo del mes en curso, agrupado por servicio.
curl https://peruapi.net/api/public/v1/usage \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": {
"period": { "type": "monthly", "starts_at": "2026-07-01", "ends_at": "2026-07-31" },
"services": [
{ "service_code": "RUC", "requests": 128, "successful": 126 },
{ "service_code": "DNI", "requests": 40, "successful": 40 }
]
}
}
Consulta datos de una persona natural por su número de DNI (8 dígitos).
Cobertura: no es una consulta directa contra RENIEC. Primero se cruza contra el padrón RUC
de SUNAT (persona natural); si no hay coincidencia, se completa con un proveedor de datos externo. No
garantizamos el 100% de los DNI - si ninguna fuente tiene el registro, recibirás 404 dni_not_found.
| Parámetro | Tipo | Descripción |
|---|---|---|
number | string | DNI de 8 dígitos, requerido. |
curl "https://peruapi.net/api/public/v1/dni?number=45215942" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": {
"document_type": "DNI",
"result": {
"dni": "45215942",
"nombres": "CARLOS AUGUSTO",
"apellido_paterno": "GARCIA",
"apellido_materno": "CHANCO",
"nombre_completo": "GARCIA CHANCO CARLOS AUGUSTO"
},
"quota": { "remaining": 987, "period": "monthly" }
}
}
Consulta datos de una empresa por su número de RUC (11 dígitos).
| Parámetro | Tipo | Descripción |
|---|---|---|
number | string | RUC de 11 dígitos, requerido. |
curl "https://peruapi.net/api/public/v1/ruc?number=20100070970" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": {
"document_type": "RUC",
"result": {
"ruc": "20100070970",
"razon_social": "EMPRESA EJEMPLO SAC",
"estado": "ACTIVO",
"condicion": "HABIDO",
"direccion": "AV. EJEMPLO 123, LIMA"
},
"quota": { "remaining": 1987, "period": "monthly" }
}
}
Consulta el tipo de cambio oficial USD/PEN (compra y venta) para una fecha. Fuente: BCRP (Banco Central de Reserva del Perú), la misma serie SBS que SUNAT usa para efectos tributarios. Si la fecha solicitada no tiene tipo de cambio publicado (fin de semana o feriado), se devuelve el del día hábil inmediato anterior. Disponible en los planes Básico, Negocio y Empresarial.
| Parámetro | Tipo | Descripción |
|---|---|---|
number | string | Fecha en formato AAAA-MM-DD, requerido. |
curl "https://peruapi.net/api/public/v1/tipocambio?number=2026-07-26" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": {
"document_type": "TIPOCAMBIO",
"result": {
"fecha_solicitada": "2026-07-26",
"fecha_tipo_cambio": "2026-07-24",
"compra": 3.397,
"venta": 3.404,
"moneda": "USD/PEN",
"source": "BCRP - Tipo de cambio SBS (compra/venta)"
},
"quota": { "remaining": 1999, "period": "monthly" }
}
}
Valida la existencia y vigencia de un comprobante de pago (factura, boleta, nota de crédito/débito, etc.) ante SUNAT. Útil para verificar comprobantes recibidos de proveedores antes de contabilizarlos. Disponible en los planes Negocio y Empresarial. Nota: "NO EXISTE" es una respuesta válida y exitosa (indica que el comprobante no fue informado a SUNAT), no un error.
| Parámetro | Tipo | Descripción |
|---|---|---|
ruc | string | RUC del emisor (11 dígitos), requerido. |
tipo_comprobante | string | 01=Factura, 03=Boleta, 07=Nota de Crédito, 08=Nota de Débito, R1=Recibo por Honorarios, R7=Nota Crédito Rec. Honorarios, 04=Liquidación de Compra, 23=Póliza de Adjudicación. Requerido. |
serie | string | Serie del comprobante, requerido. |
numero | string | Número del comprobante, requerido. |
fecha_emision | string | Fecha de emisión en formato DD/MM/AAAA, requerido. |
monto | string | Importe total. Obligatorio para comprobantes electrónicos. |
tipo_doc_receptor | string | Opcional: 6=RUC, 1=DNI, 4=Carnet ext., 7=Pasaporte, A=Cédula diplomática, 0=Doc. tributario no domiciliado. |
num_doc_receptor | string | Requerido si se envía tipo_doc_receptor. |
curl "https://peruapi.net/api/public/v1/comprobante?ruc=20100070970&tipo_comprobante=01&serie=F001&numero=1&fecha_emision=02/01/2026&monto=100.00" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": {
"document_type": "COMPROBANTE",
"result": {
"ruc_emisor": "20100070970",
"tipo_comprobante": "01",
"tipo_comprobante_desc": "Factura",
"serie": "F001",
"numero": "1",
"fecha_emision": "02/01/2026",
"monto": "100.00",
"estado_comprobante": "ACEPTADO",
"estado_ruc_emisor": "ACTIVO",
"condicion_domicilio_emisor": "HABIDO",
"es_valido": true,
"source": "SUNAT - Consulta de Comprobantes de Pago"
},
"quota": { "remaining": 4999, "period": "monthly" }
}
}
Catálogo oficial de departamentos, provincias y distritos del Perú (INEI), con las equivalencias de código RENIEC y SUNAT cuando difieren del código INEI. Dato estático, cargado desde la fuente oficial - no depende de un servicio externo en cada consulta. Disponible en todos los planes, incluida la Prueba Gratuita.
| Endpoint | Parámetro | Descripción |
|---|---|---|
/ubigeo/departamentos | — | Lista los 25 departamentos. |
/ubigeo/provincias | departamento (requerido, código de 2 dígitos) | Provincias de un departamento. |
/ubigeo/distritos | provincia (requerido, código de 4 dígitos) | Distritos de una provincia, con sus códigos RENIEC/SUNAT equivalentes. |
/ubigeo/buscar | q (requerido, mínimo 2 caracteres) | Busca distritos por nombre parcial, sin importar tildes (máximo 20 resultados). |
curl "https://peruapi.net/api/public/v1/ubigeo/distritos?provincia=0701" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": [
{
"codigo": "070101",
"nombre": "CALLAO",
"provincia_codigo": "0701",
"departamento_codigo": "07",
"capital": "CALLAO",
"region_natural": "COSTA",
"codigo_reniec": "240101",
"codigo_sunat": "070101"
}
]
}
codigo_reniec y codigo_sunat reflejan el código real usado por RENIEC y SUNAT cuando difiere del código INEI
(frecuente a nivel de provincia/distrito - no solo en Callao); si coinciden con codigo, el campo simplemente repite el mismo valor.
Valor de la UIT (Unidad Impositiva Tributaria) por año fiscal, con la norma legal (Decreto Supremo) que lo estableció. Fuente: Diario Oficial El Peruano / MEF. Cobertura desde 1994. Dato estático, disponible en todos los planes.
| Endpoint | Parámetro | Descripción |
|---|---|---|
/uit/vigente | — | Valor de la UIT del año actual. |
/uit?anio=AAAA | anio (requerido, 1994 en adelante) | Valor de la UIT de un año específico. |
/uit/historico | — | Tabla completa, todos los años disponibles. |
curl "https://peruapi.net/api/public/v1/uit/vigente" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": {
"anio": 2026,
"valor": 5500,
"norma_legal": "D.S. N° 301-2025-EF",
"fecha_publicacion": "2025-12-17",
"source": "MEF / El Peruano"
}
}
Padrón oficial de entidades del Sistema Nacional de Bienes Estatales (SNBE): 5,249 entidades del gobierno nacional, regional y local, con nombre, RUC y tipo. Fuente: Resolución N° 0027-2026/SBN (Superintendencia Nacional de Bienes Estatales). Dato estático, disponible en todos los planes.
| Endpoint | Parámetro | Descripción |
|---|---|---|
/entidades-publicas/nacional | — | Las 264 entidades de nivel nacional. |
/entidades-publicas/regional | — | Las 59 entidades de nivel regional (gobiernos regionales y organismos adscritos). |
/entidades-publicas/local | departamento (requerido), provincia (opcional) | Municipalidades y entidades locales de un departamento. |
/entidades-publicas/buscar | q (requerido, 3+ caracteres), nivel_gobierno (opcional) | Búsqueda por nombre, sin importar tildes, en las 5,249 entidades. |
/entidades-publicas/ruc/{ruc} | — | Búsqueda exacta por RUC (11 dígitos). |
curl "https://peruapi.net/api/public/v1/entidades-publicas/buscar?q=municipalidad+de+miraflores" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": [
{
"nombre": "MUNICIPALIDAD DISTRITAL DE MIRAFLORES",
"ruc": "20131377224",
"tipo": "MUNICIPALIDAD DISTRITAL",
"nivel_gobierno": "local",
"departamento": "LIMA",
"provincia": "LIMA",
"distrito": "MIRAFLORES",
"norma_legal": "Resolución N° 0027-2026/SBN"
}
]
}
Catálogo de pliegos y unidades ejecutoras del sistema presupuestal peruano (SIAF), gobierno nacional y regional. Fuente: Ministerio de Economía y Finanzas (MEF), Portal de Datos Abiertos. No incluye gobierno local: las municipalidades son su propio pliego autoejecutor y no usan esta clasificación. Dato estático, disponible en todos los planes.
| Endpoint | Parámetro | Descripción |
|---|---|---|
/unidades-ejecutoras/nacional | — | Todas las unidades ejecutoras de gobierno nacional. |
/unidades-ejecutoras/regional | — | Todas las unidades ejecutoras de gobierno regional. |
/unidades-ejecutoras/pliego/{pliego} | — | Todas las unidades ejecutoras de un pliego específico. |
/unidades-ejecutoras/buscar | q (requerido, 3+ caracteres), nivel_gobierno (opcional) | Búsqueda por nombre de pliego o de unidad ejecutora, sin importar tildes. |
curl "https://peruapi.net/api/public/v1/unidades-ejecutoras/pliego/440" \
-H "X-API-Key: TU_CLAVE"
{
"success": true,
"data": [
{
"pliego": "440",
"pliego_nombre": "GOBIERNO REGIONAL DEL DEPARTAMENTO DE AMAZONAS",
"ejecutora": "001",
"ejecutora_nombre": "REGION AMAZONAS-SEDE CENTRAL",
"nivel_gobierno": "regional",
"sector": "99",
"sector_nombre": "GOBIERNOS REGIONALES",
"departamento": "AMAZONAS",
"provincia": "CHACHAPOYAS",
"distrito": "CHACHAPOYAS",
"sec_ejec_referencia": "721",
"fuente": "MEF - Presupuesto y Ejecución de Gasto 2024"
}
]
}
Códigos de error
Ante un error, la respuesta siempre trae "success": false junto con un código y mensaje:
{
"success": false,
"error": { "code": "ruc_not_found", "message": "No se encontro informacion para el documento consultado." }
}
| Código | HTTP | Significado |
|---|---|---|
invalid_api_key | 401 | La clave enviada no existe o es inválida. |
revoked_api_key | 401 | La clave fue revocada o expiró. |
inactive_client | 401 | Tu cuenta de cliente está inactiva. |
dni_not_found / ruc_not_found | 404 | No se encontró el documento consultado. |
dni_unavailable / ruc_unavailable | 503 | El proveedor de datos no respondió; reintenta en unos minutos. |
provider_not_configured | 503 | El servicio consultado no tiene un proveedor real habilitado en este momento. |
rate_limited | 429 | Superaste el límite de peticiones por minuto. Reintenta pasado el tiempo indicado en Retry-After. |
Límites y cuotas
- Cuota mensual: depende de tu plan (Prueba Gratuita, Básico, Negocio o Empresarial). Consulta tu cuota restante en
GET /meo en tu panel. - Límite de peticiones: 120 peticiones por minuto por clave API, independiente de tu cuota mensual.