Consultar CNPJ no Google Sheets

Este guia mostra como consultar CNPJ direto no Google Sheets, criando uma função =CNPJ(...) que você usa como qualquer fórmula da planilha. Ela chama a API REST da CNPJAPI e traz Razão Social, situação cadastral e atividade principal para as células ao lado do CNPJ.

O guia começa do zero: criar a conta e gerar a sua API key.

Antes de começar: crie a conta e gere a API key

Para consultar pela API você precisa de uma API key (uma chave que identifica a sua conta). É de graça para começar.

  1. Acesse https://app.cnpjapi.com.br e crie sua conta no plano gratuito (não pede cartão).
  2. Confirme o seu e-mail e faça login no portal.
  3. Já dentro do portal, gere a sua API key. Ela começa com cnpj_ (por exemplo, cnpj_a1b2c3...). Copie e guarde num lugar seguro - a chave é mostrada uma vez.
  4. Essa chave vai no cabeçalho Authorization, no formato Bearer cnpj_sua_chave. O script abaixo cuida disso.

Detalhes em Autenticação. Trate a chave como uma senha: quem tem a chave consome a sua cota.

Atalho: planilha pronta pra copiar

Não quer montar do zero? Copie a nossa planilha modelo, que já vem com a função pronta:

Fazer uma cópia da planilha modelo

Depois de copiar (o Google cria uma cópia na sua conta):

  1. Abra Extensões → Apps Script, troque cnpj_sua_chave pela sua API key e salve. Na primeira vez o Google pede autorização do script (é do seu próprio script).
  2. Na planilha, digite um CNPJ na coluna CNPJ (já formatada como texto) - as células ao lado trazem Razão Social, situação e atividade.

Prefere entender como funciona ou montar na sua própria planilha? Siga o passo a passo abaixo.

Por que não dá com =IMPORTDATA()?

As fórmulas prontas do Sheets (IMPORTDATA, IMPORTJSON) não enviam cabeçalhos - e a API exige o cabeçalho Authorization. A saída é criar uma pequena função personalizada com o Apps Script (o editor de scripts embutido no Google Sheets). Você cola o código uma vez e depois usa =CNPJ(A2) na planilha.

Passo a passo

1. Abra o editor de scripts. Na sua planilha, menu Extensões → Apps Script.

2. Cole o código (apague o conteúdo padrão e cole este):

/**
 * Consulta um CNPJ pela CNPJAPI e devolve os dados nas células ao lado.
 * Uso na planilha:  =CNPJ(A2)
 */
function CNPJ(cnpj) {
  var chave = "cnpj_sua_chave"; // <- cole a sua API key aqui
  var digitos = String(cnpj).replace(/\D/g, "");
  if (digitos.length !== 14) return "CNPJ inválido";

  var resp = UrlFetchApp.fetch("https://api.cnpjapi.com.br/" + digitos, {
    headers: { "Authorization": "Bearer " + chave },
    muteHttpExceptions: true
  });

  var codigo = resp.getResponseCode();
  if (codigo === 404) return "não encontrado";
  if (codigo === 429) return "limite atingido, tente mais tarde";
  if (codigo !== 200) return "erro " + codigo;

  var e = JSON.parse(resp.getContentText());
  return [[
    e.RazaoSocial,
    e.SituacaoCadastral.Descricao,
    e.AtividadePrincipal.Descricao
  ]];
}

Troque cnpj_sua_chave pela sua API key. Salve (ícone de disquete).

3. Use na planilha. Numa célula (digamos, se o CNPJ está em A2), escreva:

=CNPJ(A2)

A função devolve três colunas de uma vez - Razão Social, situação e atividade principal - que "transbordam" para as células à direita. Arraste a fórmula para baixo para aplicar a uma coluna inteira de CNPJs.

Dica: formate a coluna do CNPJ como Texto simples (menu Formatar → Número → Texto simples) antes de digitar. Sem isso, o Sheets trata 00776574000156 como número e come os zeros à esquerda - a função recebe menos de 14 dígitos e devolve "CNPJ inválido".

Na primeira vez, o Google pede autorização para o script acessar serviços externos (UrlFetchApp). Aceite com a sua conta Google; é uma permissão do seu próprio script, não da CNPJAPI.

Trazer só um campo

Se quiser apenas a razão social numa célula, troque o return por um valor único:

  var e = JSON.parse(resp.getContentText());
  return e.RazaoSocial;

E na planilha, =CNPJ(A2) devolve só o nome.

Limite de requisições (e quando fazer upgrade)

Ao arrastar a fórmula para muitas linhas, o Sheets chama a função várias vezes em sequência. No plano gratuito, a API aceita um número limitado de consultas por minuto; ao estourar, ela responde 429 e a célula mostra "limite atingido". As funções personalizadas do Sheets também têm limite de tempo próprio do Google.

Para listas grandes:

  • Recalcule aos poucos (aplique a fórmula em blocos de linhas); ou
  • Faça upgrade para um plano com limite maior e cota mensal folgada.

Veja os limites por plano. Se você usa isso com frequência, o plano pago compensa no tempo economizado.

Guardando a chave com mais segurança (opcional)

Em vez de deixar a chave no código, você pode guardá-la nas Propriedades do Script e lê-la assim:

  var chave = PropertiesService.getScriptProperties().getProperty("CNPJAPI_KEY");

Cadastre o valor em Configurações do projeto → Propriedades do script. Útil se mais pessoas editam a planilha.

Observações

  • Funciona em qualquer sistema (é web) - inclusive onde o Excel/Power Query não roda (Mac, Chromebook).
  • No Excel para Windows dá para fazer o mesmo sem programar, pelo Power Query: Consultar CNPJ no Excel.

Próximos passos

Crie sua conta gratuita em https://app.cnpjapi.com.br e monte sua primeira planilha em minutos.