X-API-KEY o como ?api_token=.curl -H "X-API-KEY: TU_KEY" "https://peruapi.com/api/tipo_cambio"
?api_token=.
Endpoints optimizados para respuesta rápida y consistencia de datos. Diseñados para integrarse con tus flujos de onboarding, facturación y conciliación contable sin fricción.
En cabecera HTTP (X-API-KEY):
GET /api/dni/12345678
X-API-KEY: TU_KEY
O mediante querystring:
GET /api.php?json=dni&id=12345678&api_token=TU_KEY
| Nombre | Dónde | Tipo / Validación | Obligatorio | Descripción |
|---|---|---|---|---|
X-API-KEY |
Cabecera | Cadena (32–128), caracteres visibles | Sí* | API Key del usuario. Alternativa: ?api_token= en querystring. |
api_token |
Query | Cadena (32–128) | Sí* | Usar si no envías cabecera X-API-KEY. |
json |
Query | Enum: ruc | dni | tipo_cambio |
Depende | Solo en el modo api.php por parámetros. En REST no se usa. |
id |
Query | RUC: 11 dígitos · DNI: 8 dígitos | Depende | Requerido para json=ruc y json=dni. No aplicable a tipo_cambio. |
fecha |
Query | Date · Formato: yyyy-mm-dd | Depende** | Requerido para json=tipo_cambio. No aplicable a ruc o dni. |
X-API-KEY) o en query (?api_token=).hoy)./api/ruc/{ruc}, /api/dni/{dni} y /api/tipo_cambio) no se usa json ni id por query.
GET /api/ruc/{ruc}?api_token=TU_KEY
GET /api.php?json=ruc&id={ruc}&api_token=TU_KEY
{
"ruc": "20100017491",
"razon_social": "INTEGRATEL PERÚ S.A.A.",
"estado": "ACTIVO",
"condicion": "HABIDO",
"direccion": "JR. DOMINGO MARTINEZ LUJAN NRO. 1130",
"ubigeo": "150141",
"departamento": "LIMA",
"provincia": "LIMA",
"distrito": "SURQUILLO",
"fecha_actualizacion": "2025-09-02 03:18:59",
"mensaje": "OK",
"code": "200"
}
GET /api/dni/{dni}?api_token=TU_KEY
GET /api.php?json=dni&id={dni}&api_token=TU_KEY
{
"dni": "60012345",
"cliente": "QUISPE PEREZ JULIO FERNANDO",
"nombres": "JULIO FERNANDO",
"apellido_paterno": "QUISPE",
"apellido_materno": "PEREZ",
"mensaje": "OK",
"code": "200"
}
GET /api/tipo_cambio?api_token=TU_KEY
GET /api.php?json=tipo_cambio&api_token=TU_KEY
{
"fecha": "27/03/2025",
"compra": "3.764",
"venta": "3.773",
"moneda": "USD",
"fuente": "SUNAT",
"mensaje": "OK",
"code": "200"
}
<?php
$token = 'TU_KEY';
$ruc = '20100017491';
$url = 'https://peruapi.com/api/ruc/'.$ruc;
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-KEY: '.$token],
CURLOPT_TIMEOUT => 8
]);
$res = curl_exec($ch);
if ($res === false) { http_response_code(502); exit; }
curl_close($ch);
header('Content-Type: application/json; charset=utf-8');
echo $res;
curl "https://peruapi.com/api/dni/60012345" \
-H "X-API-KEY: TU_KEY"
// Browser/Node (fetch)
const res = await fetch("https://peruapi.com/api/tipo_cambio", {
headers: { "X-API-KEY": "TU_KEY" }
});
const data = await res.json();
console.log(data);
tiempo real desde el panel de control.La primera IP se asocia automáticamente al usar la API (si hay cupo libre). Puedes administrar la lista de IPs permitidas en tu panel según tu plan.
{"mensaje":"OK","code":"200","...":"..."}
{"mensaje":"Parámetros inválidos","code":"400"}
json o id en api.php por query).json desconocido).id cuando no aplica (p. ej. tipo_cambio).{"mensaje":"Token inválido o plan inactivo","code":"401"}
{"mensaje":"IP xxx.xxx.xxx.xxx no autorizada para este token","code":"401"}
X-API-KEY ni en ?api_token=).{"mensaje":"No encontrado","code":"404"}
{"mensaje":"Cuota excedida (daily/monthly)","code":"429"}
{"mensaje":"Service not available","code":"503"}