Todos os artigos
Tecnologia e IA

Como integrar o PNCP via API para acompanhar oportunidades de licitação

Guia prático de integração com a API REST do PNCP para monitorar editais e oportunidades. Saiba como acessar a documentação, usar autenticação e boas práticas.

A Lei 14.133/2021 instituiu o Portal Nacional de Contratações Públicas (PNCP) como o sistema central de divulgação de licitações e contratos no Brasil. Desde abril de 2024, todos os entes federativos são obrigados a publicar seus editais, contratos e atas no PNCP. Para acompanhar essas oportunidades de forma automatizada, o PNCP oferece uma API REST pública — sem necessidade de autenticação para consultas. Este guia mostra como integrar essa API para monitorar editais e oportunidades.

O que é a API do PNCP e como acessá-la?

A API do PNCP é uma interface REST que expõe dados de licitações, contratos, atas e órgãos públicos. A URL base do ambiente de produção é https://pncp.gov.br/api/pncp. A documentação técnica interativa via Swagger UI permite testar os endpoints diretamente no navegador.

Endpoints principais de consulta:

EndpointDescrição
/api/pncp/orgaosLista de órgãos públicos cadastrados
/api/pncp/editalConsulta de editais com filtros
/api/pncp/contratoDados de contratos firmados
/api/pncp/ataAtas de registro de preços

Todos os endpoints de consulta são públicos — você pode chamá-los sem token ou chave de API. Isso facilita a automação e a integração com sistemas de inteligência de mercado. A API retorna dados em JSON estruturados, com campos padronizados conforme a Lei 14.133/2021.

Como usar a API para monitorar oportunidades de licitação?

Para monitorar editais, utilize o endpoint /api/pncp/edital com parâmetros de filtro como dataInicial, dataFinal, codigoModalidade, numero ou palavraChave. A resposta é paginada: você precisa implementar a lógica de iteração sobre as páginas para capturar todos os registros.

Exemplo de requisição (GET):

https://pncp.gov.br/api/pncp/edital?dataInicial=2025-01-01&dataFinal=2025-03-31&pagina=1

A resposta inclui metadados de paginação (totalPages, totalElements, number). Um loop simples em Python ou JavaScript percorre as páginas até consumir todos os resultados. Por exemplo, em Python com requests:

import requests
url_base = "https://pncp.gov.br/api/pncp/edital"
params = {"dataInicial": "2025-01-01", "dataFinal": "2025-01-31", "pagina": 1}
dados = []
while True:
    resp = requests.get(url_base, params=params)
    data = resp.json()
    dados.extend(data['content'])
    if data['last']: break
    params['pagina'] += 1

Para empresas que desejam enviar dados ao PNCP (como publicar editais), é necessário autenticação via token Bearer JWT. O Manual de Integração detalha o fluxo de obtenção do token e os endpoints de envio. O token é obtido mediante autenticação com certificado digital ou login e senha no ambiente de produção.

Dica prática: defina uma rotina diária (cron job, AWS Lambda, etc.) que consulta os dados do dia anterior. Armazene os resultados em um banco de dados local para análise e alertas. Isso permite construir dashboards próprios de oportunidades por região, modalidade ou valor estimado.

Quais as boas práticas e ambiente de testes?

Antes de ir para produção, utilize o ambiente de homologação — ideal para testes de integração sem impactar dados reais. O ambiente de produção deve ser usado apenas quando a integração estiver validada.

Boa práticaEvite
Consultar com janelas de data curtas (ex.: diárias)Varrer todo o histórico sem filtro
Implementar tratamento de erros (timeout, 429)Ignorar limites de taxa da API
Cruzar dados de múltiplos endpoints (edital + contrato)Confiar em um único campo sem validação
Usar o ambiente de homologação para testesTestar diretamente em produção
Seguir o manual técnico atualizadoBasear-se em documentação desatualizada

Consulte sempre a versão mais recente do Manual de Integração para entender as tabelas de domínio (códigos de modalidade, situação, etc.) e garantir a consistência dos dados. A estrutura de dados exige letramento técnico — organize as respostas da API em um modelo de dados próprio para facilitar o cruzamento de informações. Por exemplo, ao combinar dados de editais com contratos, o campo identificador do órgão é chave primária para relacionar as entidades.

Outra prática importante é respeitar os limites de requisição da API. Embora não haja documentação explícita de rate limit, recomenda-se espaçar as chamadas com intervalos de pelo menos 1 segundo entre páginas para evitar bloqueios temporários.

Perguntas frequentes

Precisa de autenticação para consultar editais?

Não. Os endpoints de consulta do PNCP são públicos. Qualquer pessoa ou sistema pode chamá-los sem token, bastando conhecer os parâmetros e a URL base.

Como obter o token JWT para enviar dados ao PNCP?

O token é obtido mediante autenticação com certificado digital ou login e senha no ambiente de produção. O fluxo completo está descrito no Manual de Integração. Organismos públicos precisam estar cadastrados previamente.

Qual a diferença entre produção e homologação?

O ambiente de homologação é um espelho do ambiente de produção usado para testes. Lá você pode criar dados fictícios e validar sua integração sem afetar dados oficiais. As URLs e endpoints são idênticos, mas os dados são isolados.

Posso usar a API para enviar dados ao PNCP?

Sim, mas somente órgãos públicos ou entidades autorizadas podem enviar dados. O envio exige autenticação JWT e segue endpoints específicos documentados no manual técnico. Empresas privadas não podem publicar editais diretamente pela API.

Onde encontrar a documentação atualizada?

A fonte oficial é o Portal PNCP e o Swagger UI. O Manual de Integração é atualizado periodicamente. Consulte também a aba "Integre-se ao PNCP" no site oficial para manuais e instruções.