Licitações PNCP Brasil — Contratações e Contratos Públicos avatar

Licitações PNCP Brasil — Contratações e Contratos Públicos

Pricing

from $2.00 / 1,000 registro de resultados

Go to Apify Store
Licitações PNCP Brasil — Contratações e Contratos Públicos

Licitações PNCP Brasil — Contratações e Contratos Públicos

Licitações, pregões eletrônicos, dispensas e contratos do governo brasileiro direto da API oficial do PNCP (Lei 14.133). Dados públicos, sem login, com filtros por período, modalidade, UF e palavras-chave.

Pricing

from $2.00 / 1,000 registro de resultados

Rating

0.0

(0)

Developer

Johnn Mottin

Johnn Mottin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

A licitação do seu setor foi publicada ontem — e o seu concorrente já viu. Monitore licitações, pregões eletrônicos, dispensas e contratos do governo brasileiro direto da API oficial de consulta do PNCP (Portal Nacional de Contratações Públicas, Lei 14.133/2021). Dados 100% públicos e oficiais — sem login, sem CAPTCHA.

Actor comunitário não-oficial, sem afiliação com o Governo Federal, o PNCP ou qualquer órgão público. Os dados vêm da API oficial de consulta e permanecem sujeitos aos termos da fonte.

Para quem é:

  • Fornecedores B2G: alerta diário de novas oportunidades no seu setor, UF ou município — filtre por palavras-chave no objeto ("merenda", "pavimentação", "software"…).
  • Consultorias de licitação: acompanhe órgãos específicos por CNPJ e monte inteligência de concorrência com os contratos firmados (fornecedor vencedor + valores).
  • Integradores e agentes: saída estável em JSON, pronta para n8n, Make, Google Sheets, ou consumo por agentes de IA (schema documentado abaixo).

Como funciona

O Actor consulta a API oficial pncp.gov.br/api/consulta por janela de datas:

  • Modo contratacoes (default): licitações/contratações publicadas no período — editais abertos, pregões, dispensas, com valores estimados, situação e link para o sistema de origem.
  • Modo contratos: contratos firmados no período — com fornecedor vencedor (CNPJ + razão social) e valores inicial/global.

Janelas longas são fatiadas automaticamente em consultas de 3 dias (a API do PNCP instabiliza com janelas grandes), com retry e backoff educados. Falha de fatia não derruba a coleta: entra em STATS.sliceFailures com o erro literal, e a run só falha ruidosamente se a maioria das consultas falhar.

Input

Exemplo — alerta diário (recomendado; janela relativa que nunca precisa de manutenção):

{
"modo": "contratacoes",
"diasRetroativos": 3,
"modalidades": [6],
"uf": "SP",
"palavrasChave": ["merenda", "alimentação escolar"],
"maxResults": 500
}
CampoTipoDefaultDescrição
modostringcontratacoescontratacoes (publicações) ou contratos (firmados)
diasRetroativosint 1–903Janela relativa (hoje até N-1 dias atrás) quando as datas ficam vazias
dataInicial/dataFinalAAAAMMDDJanela absoluta (as duas juntas); tem precedência
modalidadesint[][6]Códigos oficiais PNCP; obrigatório no modo contratações (exigência da API; uma consulta por código). Ex.: 6 = Pregão eletrônico, 8 = Dispensa — tabela completa no manual da API de consulta do PNCP
ufstringSigla (ex.: SP) — filtrado pela própria API
municipiostringNome do município (acentos ignorados) — filtro pós-coleta
cnpjOrgaostringCNPJ do órgão (14 dígitos; pontuação ignorada) — filtro pós-coleta
palavrasChavestring[][]Basta UMA casar com o objeto (acentos/caixa ignorados) — filtro pós-coleta
maxResultsint100Teto de registros escritos (máx. 10.000)

Cobrança justa: o evento de resultado conta apenas registros escritos no dataset — o que os filtros descartam não custa nada para você.

Output (shape único nos dois modos; ausente = null)

Registro real (pregão eletrônico publicado em 29/07/2026 — dado público oficial):

{
"fonte": "contratacoes",
"numeroControlePNCP": "87297982000103-1-000233/2026",
"dataPublicacaoPncp": "2026-07-29T00:00:48",
"orgaoCnpj": "87297982000103",
"orgaoRazaoSocial": "MUNICIPIO DE LAJEADO",
"uf": "RS",
"municipio": "Lajeado",
"objeto": "REGISTRO DE PREÇOS PARA A CONTRATAÇÃO, SOB DEMANDA, DE SERVIÇOS COM EQUIPAMENTOS RODOVIÁRIOS...",
"modalidadeCodigo": 6,
"modalidadeNome": "Pregão - Eletrônico",
"situacao": "Divulgada no PNCP",
"valorTotalEstimado": 10011189.5,
"dataAberturaProposta": "2026-07-29T08:00:00",
"dataEncerramentoProposta": "2026-08-08T09:00:00",
"linkSistemaOrigem": "https://pregaobanrisul.com.br/editais/0041_2026/354183",
"fornecedorNome": null,
"valorGlobal": null
}
CampoTipoPresençaDescrição
fontestringsemprecontratacoes ou contratos
numeroControlePNCPstringsempre¹ID oficial único no PNCP
dataPublicacaoPncpstringsempre¹Data/hora da publicação
objetostringsempre¹Objeto da contratação/contrato
orgaoCnpj / orgaoRazaoSocialstringsempre¹Órgão comprador
orgaoPoder / orgaoEsferastringaltaPoder (E/L/J/N) e esfera (F/E/M/D)
uf / municipio / codigoIbge / unidadeNomestringaltaLocalização da unidade compradora
modalidadeCodigo / modalidadeNomeint/stringsó contrataçõesModalidade oficial
situacaostringsó contrataçõesEx.: "Divulgada no PNCP"
valorTotalEstimado / valorTotalHomologadonumberquando não sigilosoValores da contratação
dataAberturaProposta / dataEncerramentoPropostastringquando aplicávelPrazos de proposta
tipoInstrumento / amparoLegal / amparoLegalDescricao / modoDisputa / srpváriossó contrataçõesEnquadramento legal
anoCompra / numeroCompra / sequencialCompra / processováriosaltaIdentificação administrativa
fornecedorNi / fornecedorNomestringsó contratosFornecedor vencedor
valorInicial / valorGlobalnumbersó contratosValores contratados
dataAssinatura / dataVigenciaInicio / dataVigenciaFimstringsó contratosVigência
tipoContrato / numeroContrato / anoContratováriossó contratosIdentificação do contrato
linkSistemaOrigem / linkProcessoEletronicostringquando informadoLink para o edital/processo na origem
informacaoComplementar / usuarioNome / dataAtualizacao / scrapedAtstringváriosMetadados

¹ Campos-core monitorados pelo health check: se mais de 50% vierem nulos a run falha nomeando o campo (DEAD_FIELDS) — você nunca recebe silenciosamente um dataset quebrado. STATS (key-value store) traz completude por campo, consultas por fatia, retries e avisos; ERRORS traz falhas com código estável (HTTP_UNAVAILABLE, HTTP_TIMEOUT, INVALID_INPUT, API_CONTRACT_CHANGED, SLICE_FAILED, EMPTY_RESULTS, DEAD_FIELDS).

Janela sem publicações (ex.: feriado com diasRetroativos: 1) é sucesso legítimo sinalizado em STATS.legitimateEmptyWindow — distinto de falha de coleta, que sempre é ruidosa.

Exemplo de consumo (API Apify)

curl -s "https://api.apify.com/v2/acts/<SEU_USUARIO>~pncp-licitacoes-brasil/run-sync-get-dataset-items?token=<SEU_TOKEN>" \
-X POST -H "Content-Type: application/json" \
-d '{"diasRetroativos": 1, "modalidades": [6, 8], "uf": "MG", "maxResults": 200}'

Agende na Apify (recomendado — na nuvem, não no seu desktop)

Alerta de licitação é diário: diasRetroativos: 3 com uma run por dia. Use os Schedules da própria Apify, não um agendador local — configure uma vez e roda na nuvem, com o seu computador ligado ou não.

  1. Salve o seu input como Task (Console → o Actor → Create task), ex.: a sua UF, as suas modalidades e as suas palavras-chave.
  2. Console → Schedules → Create schedule, adicione a Task e defina o cron (ex.: todo dia às 6h → 0 6 * * *).
  3. Ligue o dataset ao n8n, Make, Sheets, Slack ou webhook pelas integrações da Apify.

Como a janela é relativa (diasRetroativos), o agendamento nunca precisa de manutenção — cada run recalcula o período sozinha.

Limites honestos

  • A API do PNCP exige modalidade no modo contratações: cada código da lista vira uma consulta própria (custo proporcional).
  • Janelas grandes sob volume não têm garantia de completude. A API do PNCP aplica rate limit (HTTP 429) sob volume; nesses casos o Actor entrega resultado parcial transparente, nunca um dataset silenciosamente incompleto. Em STATS: slicesOk / slicesTotal mostram quantas consultas completaram, cada fatia perdida entra em sliceFailures[] com code, message e a query literal (ex.: code: "HTTP_RATE_LIMITED", message: "HTTP 429 em /v1/contratacoes/publicacao."), warnings[] recebe "N/M consulta(s) falharam após retries; resultado parcial." e qualityAlert vira true. Janelas curtas (alerta diário, o uso recomendado) não são afetadas na prática.
  • municipio, cnpjOrgao e palavrasChave filtram após a coleta (a API não oferece esses filtros) — o custo de infraestrutura das páginas descartadas é do Actor, nunca cobrado de você.
  • Valores podem ser legitimamente nulos (sigilo previsto em lei).

Perguntas frequentes

Preciso de login ou chave de API do PNCP? Não. O Actor consulta a API oficial e pública do PNCP, sem login e sem CAPTCHA.

Por que a modalidade é obrigatória no modo contratações? Porque a própria API do PNCP exige o código de modalidade nessa consulta. Cada código da sua lista vira uma consulta separada — por isso o custo cresce com a quantidade de modalidades.

Pelo que exatamente eu pago? Por registro escrito no dataset (Pay Per Event) — o que os filtros de município, CNPJ, palavras-chave ou o maxResults descartam não custa nada. A aba Pricing desta página é sempre a fonte autoritativa dos valores vigentes e de qualquer taxa por run.

Dá para agendar? Sim — é o uso pretendido. Veja "Agende na Apify" acima.

Tem alguma ligação com o governo? Não. Actor comunitário não-oficial, sem afiliação com o Governo Federal, o PNCP ou qualquer órgão público; os dados vêm da API oficial de consulta e permanecem sujeitos aos termos da fonte.


English summary

Brazil public procurement (PNCP) scraper — official government API, no login. Two modes: published procurement notices (contratacoes: tenders, e-auctions, direct purchases, with estimated values, deadlines and source links) and signed contracts (contratos: winning supplier + contract values). Date-window queries with relative-window support (diasRetroativos) for maintenance-free daily monitoring, server-side UF filter, client-side keyword/municipality/agency filters (you are only charged for records actually written). Stable flat JSON schema (missing = null), loud health checks (DEAD_FIELDS, EMPTY_RESULTS, API_CONTRACT_CHANGED), full run diagnostics in STATS/ERRORS. Built for n8n/Make/Sheets pipelines and AI agents.