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"}