Consultar CNPJ em C# / .NET
Este guia mostra como consultar um CNPJ pela API REST da CNPJAPI em C# (.NET), usando HttpClient. A resposta vem em JSON, com os campos em PascalCase (RazaoSocial, SituacaoCadastral, ...) - o que combina bem com a convenção de nomes do .NET.
Pré-requisitos
- .NET 6+ (usa
HttpClienteSystem.Text.Json). - Uma API key da CNPJAPI. Crie a conta em https://app.cnpjapi.com.br e gere a chave (veja Autenticação).
Consulta simples
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
const string cnpj = "00776574000156"; // apenas os 14 dígitos, sem pontuação
const string apiKey = "cnpj_sua_chave";
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", apiKey);
using var resposta = await http.GetAsync($"https://api.cnpjapi.com.br/{cnpj}");
resposta.EnsureSuccessStatusCode();
await using var stream = await resposta.Content.ReadAsStreamAsync();
using var doc = await JsonDocument.ParseAsync(stream);
var raiz = doc.RootElement;
Console.WriteLine(raiz.GetProperty("RazaoSocial").GetString());
Console.WriteLine(raiz.GetProperty("SituacaoCadastral").GetProperty("Descricao").GetString());
Tratando erros e rate limit
Ao exceder o limite por minuto ou a cota mensal, a API responde 429 com o cabeçalho Retry-After (segundos). Trate como recuperável, sem EnsureSuccessStatusCode:
using var resposta = await http.GetAsync($"https://api.cnpjapi.com.br/{cnpj}");
if ((int)resposta.StatusCode == 429)
{
var espera = resposta.Headers.RetryAfter?.Delta ?? TimeSpan.FromSeconds(60);
await Task.Delay(espera);
// tente novamente...
}
else if (resposta.StatusCode == System.Net.HttpStatusCode.NotFound)
{
Console.WriteLine("CNPJ não encontrado na base pública");
}
else if (resposta.IsSuccessStatusCode)
{
var json = await resposta.Content.ReadAsStringAsync();
using var doc = JsonDocument.Parse(json);
Console.WriteLine(doc.RootElement.GetProperty("RazaoSocial").GetString());
}
Inscrição Estadual (premium)
Com um plano que inclui Inscrição Estadual, consulte a IE de um CNPJ na fonte oficial da SEFAZ. Passe uf para uma UF (1 crédito) ou omita para a varredura nacional (3 créditos):
using var resposta = await http.GetAsync(
$"https://api.cnpjapi.com.br/consulta/ie/{cnpj}?uf=SP");
resposta.EnsureSuccessStatusCode();
await using var stream = await resposta.Content.ReadAsStreamAsync();
using var doc = await JsonDocument.ParseAsync(stream);
foreach (var ie in doc.RootElement.GetProperty("resultados").EnumerateArray())
{
Console.WriteLine($"{ie.GetProperty("uf").GetString()} " +
$"{ie.GetProperty("ie").GetString()} " +
$"{ie.GetProperty("situacao").GetString()}");
}
Contrato completo (campos, cobertura, créditos) em Consultar a Inscrição Estadual.
Próximos passos
Crie sua conta gratuita em https://app.cnpjapi.com.br e faça a primeira consulta em minutos.