API Reference
¿Qué es esta API?
API Manager te permite consultar datos de personas jurídicas (RUC) y naturales (DNI) registradas en las bases de datos de SUNAT y RENIEC, con más de 34 millones de registros disponibles.
Todas las consultas requieren un token de acceso válido. Puedes obtenerlo registrándote y activando un plan desde tu panel de cliente.
page para navegar.
Autenticación
Todas las peticiones deben incluir tu token en el header Authorization usando el esquema Bearer.
Authorization: Bearer TU_TOKEN_AQUI
Obtener tu token
Desde tu panel de cliente ve a Mis Tokens. Si tu token aparece como "Revocado" necesitas renovar tu plan desde Planes y pagos.
Límites y cuotas
Cada plan tiene un límite mensual de consultas contado desde la fecha de activación del plan.
| Plan | Consultas/mes | Vigencia | Precio |
|---|---|---|---|
| free | 20 | 30 días | Gratis |
| 10k | 10,000 | 30 días | S/ 25/mes |
| 30k | 30,000 | 30 días | S/ 50/mes |
| 50k | 50,000 | 30 días | S/ 100/mes |
| 100k | 100,000 | 30 días | S/ 150/mes |
| enterprise | Ilimitado | 30 días | A consultar |
Cuando se agota la cuota mensual, la API responde con HTTP 429 hasta que inicie el siguiente período de 30 días.
Consulta RUC
Busca personas jurídicas por número de RUC o razón social en la base de datos de SUNAT.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| ruc | string | opcional | Número de RUC (exactamente 11 dígitos) |
| razon | string | opcional | Razón social (mín. 3 caracteres, búsqueda parcial) |
| page | integer | opcional | Número de página (1–500, default: 1) |
ruc o razon. No puedes enviar ambos vacíos.
Respuesta exitosa
{
"current_page": 1,
"data": [
{
"ruc": "20100070970",
"razon_social": "BANCO DE CREDITO DEL PERU",
"estado": "ACTIVO",
"condicion": "HABIDO",
"direccion": "AV. CENTENARIO NRO. 156 LIMA"
}
],
"per_page": 50,
"total": 1,
"last_page": 1,
"next_page_url": null
}
Consulta DNI
Busca personas naturales por DNI, nombres o apellidos en la base de datos de RENIEC.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| dni | string | opcional | Número de DNI (exactamente 8 dígitos) |
| nombres | string | opcional | Nombres (mín. 3 caracteres, búsqueda parcial) |
| ap_pat | string | opcional | Apellido paterno (mín. 2 caracteres) |
| ap_mat | string | opcional | Apellido materno (mín. 2 caracteres) |
| page | integer | opcional | Número de página (1–500, default: 1) |
Respuesta exitosa
{
"current_page": 1,
"data": [
{
"dni": "12345678",
"ap_pat": "GARCIA",
"ap_mat": "LOPEZ",
"nombres": "JUAN CARLOS",
"full_name": "JUAN CARLOS GARCIA LOPEZ",
"fecha_nac": "1985-03-15",
"sexo": "M",
"est_civil": "SOLTERO",
"direccion": "AV. AREQUIPA 1234 LIMA",
"ubigeo_dir": "150101"
}
],
"per_page": 50,
"total": 1,
"last_page": 1
}
Códigos de error
La API usa códigos HTTP estándar para indicar el resultado de cada petición.
| Código | Error | Descripción |
|---|---|---|
| 200 | OK | Consulta exitosa |
| 401 | Token requerido | No enviaste el header Authorization |
| 401 | Token inválido o expirado | El token no existe, fue revocado o venció |
| 403 | Cuenta suspendida | Tu cuenta fue desactivada por el administrador |
| 422 | Parámetros inválidos | Parámetros faltantes o con formato incorrecto |
| 429 | Cuota mensual agotada | Alcanzaste el límite del plan. Espera o actualiza tu plan |
Formato de error
// HTTP 429 — cuota agotada { "error": "Cuota mensual agotada", "limit": 10000, "used": 10000, "resets_at": "2026-04-29T00:00:00+00:00", "plan": "10k" } // HTTP 401 — token inválido { "error": "Token inválido o expirado", "message": "Verifica tu token o contacta al administrador" }
Headers de respuesta
Cada respuesta exitosa incluye estos headers informativos:
| Header | Descripción |
|---|---|
| X-RateLimit-Limit | Límite total de consultas de tu plan |
| X-RateLimit-Remaining | Consultas restantes en el período actual |
| X-RateLimit-Reset | Timestamp Unix de cuando se resetea el contador |
| X-Plan | Plan activo del token (free, 10k, 30k, etc.) |
| X-Cache | HIT si el resultado viene de caché, MISS si es consulta fresca |
Ejemplos de integración
Consulta RUC por número
curl -X GET "https://apimanager.online/api/v1/ruc?ruc=20100070970" \ -H "Authorization: Bearer TU_TOKEN_AQUI" \ -H "Accept: application/json"
$ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => 'https://apimanager.online/api/v1/ruc?ruc=20100070970', CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer TU_TOKEN_AQUI', 'Accept: application/json', ], ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); // Acceder a resultados foreach ($response['data'] as $empresa) { echo $empresa['ruc'] . ' - ' . $empresa['razon_social'] . PHP_EOL; }
import requests url = "https://apimanager.online/api/v1/ruc" headers = {"Authorization": "Bearer TU_TOKEN_AQUI"} params = {"ruc": "20100070970"} response = requests.get(url, headers=headers, params=params) data = response.json() for empresa in data["data"]: print(empresa["ruc"], "-", empresa["razon_social"])
const response = await fetch( 'https://apimanager.online/api/v1/ruc?ruc=20100070970', { headers: { 'Authorization': 'Bearer TU_TOKEN_AQUI', 'Accept': 'application/json', } } ); const data = await response.json(); data.data.forEach(e => console.log(e.ruc, e.razon_social));
Consulta DNI por número
curl -X GET "https://apimanager.online/api/v1/dni?dni=12345678" \ -H "Authorization: Bearer TU_TOKEN_AQUI" \ -H "Accept: application/json"
$ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => 'https://apimanager.online/api/v1/dni?dni=12345678', CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer TU_TOKEN_AQUI', 'Accept: application/json', ], ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); $persona = $response['data'][0] ?? null; if ($persona) { echo $persona['full_name']; // "JUAN CARLOS GARCIA LOPEZ" }
import requests url = "https://apimanager.online/api/v1/dni" headers = {"Authorization": "Bearer TU_TOKEN_AQUI"} params = {"dni": "12345678"} response = requests.get(url, headers=headers, params=params) persona = response.json()["data"][0] print(persona["full_name"]) # JUAN CARLOS GARCIA LOPEZ print(persona["fecha_nac"]) # 1985-03-15
const response = await fetch( 'https://apimanager.online/api/v1/dni?dni=12345678', { headers: { 'Authorization': 'Bearer TU_TOKEN_AQUI' } } ); const { data } = await response.json(); console.log(data[0]?.full_name); // JUAN CARLOS GARCIA LOPEZ
Búsqueda por nombre y apellido
curl -X GET "https://apimanager.online/api/v1/dni?ap_pat=GARCIA&ap_mat=LOPEZ&page=1" \
-H "Authorization: Bearer TU_TOKEN_AQUI"
$params = http_build_query([ 'ap_pat' => 'GARCIA', 'ap_mat' => 'LOPEZ', 'nombres' => 'JUAN', 'page' => 1, ]); // Mismo patrón curl_init de arriba con la URL: // https://apimanager.online/api/v1/dni?{$params}