Documentación de la API

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.

GET/status

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" }
}
GET/me

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" }
    }
  }
}
GET/usage

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 }
    ]
  }
}
GET/dni

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ámetroTipoDescripción
numberstringDNI 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" }
  }
}
GET/ruc

Consulta datos de una empresa por su número de RUC (11 dígitos).

ParámetroTipoDescripción
numberstringRUC 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" }
  }
}
GET/tipocambio

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ámetroTipoDescripción
numberstringFecha 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" }
  }
}
GET/comprobante

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ámetroTipoDescripción
rucstringRUC del emisor (11 dígitos), requerido.
tipo_comprobantestring01=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.
seriestringSerie del comprobante, requerido.
numerostringNúmero del comprobante, requerido.
fecha_emisionstringFecha de emisión en formato DD/MM/AAAA, requerido.
montostringImporte total. Obligatorio para comprobantes electrónicos.
tipo_doc_receptorstringOpcional: 6=RUC, 1=DNI, 4=Carnet ext., 7=Pasaporte, A=Cédula diplomática, 0=Doc. tributario no domiciliado.
num_doc_receptorstringRequerido 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" }
  }
}
GET/ubigeo/departamentos GET/ubigeo/provincias GET/ubigeo/distritos GET/ubigeo/buscar

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.

EndpointParámetroDescripción
/ubigeo/departamentosLista los 25 departamentos.
/ubigeo/provinciasdepartamento (requerido, código de 2 dígitos)Provincias de un departamento.
/ubigeo/distritosprovincia (requerido, código de 4 dígitos)Distritos de una provincia, con sus códigos RENIEC/SUNAT equivalentes.
/ubigeo/buscarq (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.

GET/uit/vigente GET/uit/historico GET/uit?anio=2020

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.

EndpointParámetroDescripción
/uit/vigenteValor de la UIT del año actual.
/uit?anio=AAAAanio (requerido, 1994 en adelante)Valor de la UIT de un año específico.
/uit/historicoTabla 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"
  }
}
GET/entidades-publicas/nacional GET/entidades-publicas/regional GET/entidades-publicas/local?departamento= GET/entidades-publicas/buscar?q= GET/entidades-publicas/ruc/{ruc}

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.

EndpointParámetroDescripción
/entidades-publicas/nacionalLas 264 entidades de nivel nacional.
/entidades-publicas/regionalLas 59 entidades de nivel regional (gobiernos regionales y organismos adscritos).
/entidades-publicas/localdepartamento (requerido), provincia (opcional)Municipalidades y entidades locales de un departamento.
/entidades-publicas/buscarq (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"
    }
  ]
}
GET/unidades-ejecutoras/nacional GET/unidades-ejecutoras/regional GET/unidades-ejecutoras/pliego/{pliego} GET/unidades-ejecutoras/buscar?q=

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.

EndpointParámetroDescripción
/unidades-ejecutoras/nacionalTodas las unidades ejecutoras de gobierno nacional.
/unidades-ejecutoras/regionalTodas las unidades ejecutoras de gobierno regional.
/unidades-ejecutoras/pliego/{pliego}Todas las unidades ejecutoras de un pliego específico.
/unidades-ejecutoras/buscarq (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ódigoHTTPSignificado
invalid_api_key401La clave enviada no existe o es inválida.
revoked_api_key401La clave fue revocada o expiró.
inactive_client401Tu cuenta de cliente está inactiva.
dni_not_found / ruc_not_found404No se encontró el documento consultado.
dni_unavailable / ruc_unavailable503El proveedor de datos no respondió; reintenta en unos minutos.
provider_not_configured503El servicio consultado no tiene un proveedor real habilitado en este momento.
rate_limited429Superaste el límite de peticiones por minuto. Reintenta pasado el tiempo indicado en Retry-After.

Límites y cuotas