Datos de empresas por CIF
directamente en Google Sheets
Conecta tu hoja de cálculo a la API de empresas. Escribe un CIF y la hoja se rellena con la razón social, el estado, la provincia y la actividad de la empresa, con datos del Registro Mercantil y el BORME. Sin programar: copias la plantilla o pegas un script.
| CIF Empresa | Razón Social | Provincia | Estado | |
|---|---|---|---|---|
| 2 | A15075062 | INDUSTRIA DE DISEÑO TEXTIL, S.A. | A Coruña | ACTIVA |
| 3 | B14714489 | ARJONA MATAS SL | Córdoba | ACTIVA |
| 4 | =APIEMPRESAS(B4; "name") | =APIEMPRESAS(B4; "province") | =APIEMPRESAS(B4; "status") |
Para ventas y administración
Completa la razón social, la provincia y la actividad de una lista de empresas sin buscarlas una a una.
Limpiar bases antiguas
¿Tienes una lista antigua de clientes o proveedores con su CIF? Súbela a Google Sheets, pega la fórmula y comprueba cuáles siguen activas y cuáles están extinguidas o en concurso.
Validar antes de dar de alta
Comprueba que el CIF que te dan corresponde a una empresa que existe y está activa antes de crearla en tu ERP o tu CRM. Si solo quieres comprobar el formato, usa la fórmula para validar CIF, que no gasta consultas.
1 La forma rápida: Usa nuestra Plantilla
Cero configuraciones. Hemos preparado un Google Sheets que ya tiene la función APIEMPRESAS instalada. Haz una copia, pega tu API Key y empieza a usarlo.
Plantilla Prospección B2B 2026
Hoja de ejemplo con las fórmulas ya puestas: pega tus CIF y tu API Key.
2 La forma pro: instálalo en tu propia hoja de Google Sheets
Añade la función a cualquier hoja de Google Sheets que ya uses copiando un pequeño script. Cada celda con la fórmula gasta una consulta de tu plan.
Abre el editor de Apps Script
En el menú superior de tu Google Sheets, haz clic en Extensiones > Apps Script.
Pega el código de conexión
Borra todo el texto que aparezca y pega este motor.
/**
* Extrae datos del BORME desde APIEmpresas B2B
*
* @param {string} cif El CIF de la empresa (ej: "A15075062").
* @param {string} campo El campo a extraer (ej: "name", "province").
* @return El valor del campo.
* @customfunction
*/
function APIEMPRESAS(cif, campo) {
if (!cif) return "";
if (!campo) return "Falta el campo";
var apiKey = "PEGAR_AQUI";
if (apiKey === "PEGAR" + "_AQUI" || apiKey.trim() === "") {
return "⚠️ Falta API Key (Regístrate gratis en apiempresas.es)";
}
var url = "https://apiempresas.es/api/v1/companies?cif=" + encodeURIComponent(cif);
var options = {
"method": "get",
"headers": {
"X-API-KEY": apiKey
},
"muteHttpExceptions": true
};
var maxRetries = 5;
var delay = 1000;
for (var i = 0; i < maxRetries; i++) {
try {
var response = UrlFetchApp.fetch(url, options);
var code = response.getResponseCode();
if (code === 429) {
Utilities.sleep(delay + (Math.random() * 1000));
delay *= 1.5; // Backoff exponencial
continue;
}
var json = JSON.parse(response.getContentText());
if (json.success && json.data) {
if (json.data[campo] !== undefined && json.data[campo] !== null) {
return json.data[campo];
} else {
return "Campo no encontrado";
}
} else {
return "Error: " + (json.message || "No encontrado");
}
} catch (e) {
// Solo reintentamos si es un error de límite encubierto
if (e.message && e.message.indexOf("429") !== -1 && i < maxRetries - 1) {
Utilities.sleep(delay + (Math.random() * 1000));
delay *= 1.5;
continue;
}
return "Error de conexión";
}
}
return "Límite de velocidad. Por favor, procesa menos filas a la vez.";
}
Haz tu primera consulta
Haz clic en el icono de guardar (disquete) y vuelve a tu hoja de cálculo. Escribe esta fórmula en cualquier celda:
Recuerda poner el nombre del campo siempre entre comillas.
Campos disponibles: name, cnae, cnae_label, founded, capital_social_raw, province, municipality, status.