PNCP — contratações públicas via CLI
Consulta programática de contratações públicas do Brasil via APIs do PNCP (pncp.gov.br), usando a CLI pncp. Use quando o usuário pedir para buscar, coletar ou analisar licitações, editais, pregões, dispensas, atas de registro de preço, contratos públicos, órgãos públicos ou dados do Portal Nacional de Contratações Públicas — descoberta textual, coleta em massa por período, ou detalhe/itens/arquivos/resultados de uma contratação.
PNCP — contratações públicas via CLI
Requisito: a CLI pncp instalada e no PATH (uv tool install pncp-cli ou
pipx install pncp-cli; confirme com pncp --version).
Padrões de uso
- stdout é JSON puro (seguro para
| jq); progresso e avisos vão para stderr. --ndjson= um registro por linha, em streaming — o formato para coletas.--table= resumo legível para inspeção rápida.--allpagina até esgotar; combine com--limit Nem explorações para não baixar milhares de registros à toa.- Exit codes:
0sucesso ·1erro ·3sucesso parcial (stdout válido, porém truncado; o stderr indica como retomar).
Qual superfície usar
search— descoberta por texto e facetas (palavra-chave, UF, modalidade, órgão). Rápida; a paginação trava em ~10.000 resultados.consulta— coleta em massa por intervalo de datas, sem teto de resultados. Intervalos maiores que 365 dias são divididos em janelas automaticamente.contratacao/itens/resultados/arquivos/historico— detalhe de UMA contratação, porCNPJ ANO SEQou--controle <numero_controle_pncp>.orgao/ata/contrato/pca/dominio— órgãos, atas, contratos, plano anual de contratações e tabelas de referência.
Comandos
search [TERMO] --tipo edital|ata|contrato --status STATUS [--uf SP,RJ]
[--modalidade 6,8] [--orgao ID] [--municipio ID] [--esfera F,E,M]
[--all] [--limit N] [--incluir TERMO] [--excluir TERMO] [--link]
filtros --tipo edital [--faceta modalidades|orgaos|ufs|municipios]
consulta contratacoes --de YYYY-MM-DD --ate YYYY-MM-DD --modalidade ID|all
[--por publicacao|atualizacao] [--uf --municipio --cnpj --unidade]
[--all] [--limit N] [--checkpoint ARQ]
[--incluir TERMO] [--excluir TERMO] [--match any|all] [--link]
consulta propostas --ate YYYY-MM-DD [--modalidade ID] [--uf SP] [--all]
consulta atas --de --ate [--por atualizacao] [--cnpj] [--all]
consulta contratos --de --ate [--por atualizacao] [--cnpj] [--all]
consulta cobranca --de --ate [--tipo N] [--all]
consulta pca --ano N --classificacao COD | --usuario ID |
--por atualizacao --de --ate
contratacao <CNPJ> <ANO> <SEQ> | --controle NUM
itens <CNPJ> <ANO> <SEQ> | --controle NUM [--tam N] [--limit N]
resultados <CNPJ> <ANO> <SEQ> [--item N] # fornecedor vencedor por item
arquivos <CNPJ> <ANO> <SEQ> [--baixar DIR]
historico <CNPJ> <ANO> <SEQ>
orgao <CNPJ> [--unidades] | --id N | --buscar TEXTO
ata listar|detalhe|arquivos|partes|contratos|historico <alvo> [--seq-ata N]
contrato detalhe|arquivos|termos|empenhos|historico|cobranca|da-compra <alvo>
pca consolidado|itens|valores|planos|csv <CNPJ> <ANO> [--seq N]
dominio [tabela] # 17 tabelas de referência
controle <numero_controle_pncp> [--detalhe]
Flags globais em qualquer subcomando: --output json|ndjson|table,
-q/--quiet, --timeout S, --retries N, --pausa SEG, --version.
Vocabulário
--status(search):recebendo_proposta,propostas_encerradas,encerradas,todos.- Modalidades:
1Leilão-Elet ·2Diálogo Competitivo ·3Concurso ·4Concorrência-Elet ·5Concorrência-Pres ·6Pregão-Elet ·7Pregão-Pres ·8Dispensa ·9Inexigibilidade ·10Manif. de Interesse ·11Pré-qualificação ·12Credenciamento ·13Leilão-Pres ·14Inaplicabilidade ·15Chamada pública ·16-19variantes internacionais. Fonte viva:pncp dominio modalidades. - Número de controle PNCP:
CNPJ-TIPO-SEQ/ANO(ex.:07424905000138-1-000212/2026; TIPO1= contratação,2= contrato). Atas usam o formato estendido.../ANO-SEQATA, aceito direto emata ... --controle.
Receitas
# editais abertos de um tema, visão rápida
pncp search "notebook" --tipo edital --status recebendo_proposta --uf SP --table
# coleta de um semestre de pregões eletrônicos, com retomada automática
pncp consulta contratacoes --de 2026-01-01 --ate 2026-06-30 --modalidade 6 \
--all --ndjson --checkpoint ck.json > pregoes.ndjson
# filtro local por tema (token/frase, sem acentos), limite pós-filtro
pncp consulta contratacoes --de 2026-06-01 --ate 2026-06-30 --all --ndjson \
--incluir "armazenamento de dados" --incluir storage --limit 100 --link
# da busca ao detalhe
pncp search "ambulância" --tipo edital --all --limit 50 --ndjson \
| jq -r .numero_controle_pncp \
| while read c; do pncp itens --controle "$c" --ndjson; done
# ground truth: quem venceu cada item e por quanto
pncp resultados 80881915000192 2026 44 --ndjson
# rastreabilidade compra → contratos → aditivos
pncp contrato da-compra --controle <controle-da-compra> --ndjson
# demanda futura declarada (PCA) de um órgão
pncp pca valores 00394452000103 2026
pncp pca csv 00394452000103 2026 --saida pca.csv
Armadilhas conhecidas da API
A CLI trata os casos abaixo; conhecê-los ajuda a interpretar resultados e diagnosticar problemas:
- Coleções truncam em 10 sem aviso se não forem paginadas
(
tamanhoPagina=10é o padrão do servidor). A CLI pagina tudo; contratações reais costumam ter dezenas de itens. - CATMAT/CATSER vêm vazios nos itens (
catalogoCodigoItem,catalogo). Não é possível triar por código de catálogo; use as descrições dos itens (texto livre, específicas), bem mais informativas que o objeto do edital. NCM é parcial (maior preenchimento na esfera federal). - A busca textual é AND e aceita frase entre aspas; a precisão contra o objeto do edital é baixa (casa item perdido em registros de preço grandes). Use-a para descobrir vocabulário; a triagem fina é nos itens.
- Arquivos:
content-typeé sempreapplication/octet-stream; detecte o formato pelos magic bytes. Parte dos documentos "Edital" são ZIP contendo PDF, DOCX e XLSX (nomes internos podem vir em CP437). - Rate limit (bloqueios de cerca de um minuto) e 5xx intermitentes são
comuns; a CLI
retenta e, se persistir, devolve parcial com exit 3. Em coletas longas,
--pausa 0.5reduz a chance de bloqueio. - Retomada é at-least-once: ao carregar em banco, deduplique por
numeroControlePNCP(e chave composta comnumeroItempara itens). - Especificações oficiais:
/api/consulta/v3/api-docse/api/pncp/v3/api-docs.
Fora de escopo
- Área de Trabalho autenticada do portal (buscas salvas, editais seguidos).
- Endpoints que exigem login de órgão (
/v1/usuarios*, POST/PUT/DELETE).
Last updated: October 13, 2026
Files (2)
- Practice area
- Government contracts
- License
- MIT
- Author
- AnxietyLab
Test PNCP — contratações públicas via CLI
Ask a legal question — get an answer generated live from this skill’s instructions.
Sign in to test this skill.