PNCP Scraper
Pricing
from $2.00 / 1,000 results
PNCP Scraper
Consulta pública de contratações e contratos no Portal Nacional de Contratações Públicas.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Bruno-Arantir
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Official Brazilian public-procurement API → structured contracting and contract records.
Colete contratações e contratos publicados no Portal Nacional de Contratações Públicas — a fonte única da Lei 14.133/2021 — sem HTML scraping e sem login.
- Lê a API oficial de consulta (
pncp.gov.br/api/consulta/v1), a mesma documentada no Swagger do portal. - Filtra por objeto (local), UF, município/IBGE, CNPJ do órgão, modalidade e janela de publicação.
- Devolve id PNCP, órgão, UF, objeto, valores, modalidade, datas, situação e link do edital/contrato.
- HTTP barato (fetch JSON) — boa margem PPE. Proxy opcional: a API costuma ser aberta.
- Dedup por
numeroControlePNCPe teto rígido demaxItems(5.000). - Página HTML de challenge/CAPTCHA encerra o run (fail closed). Sem bypass.
Fontes oficiais (verificado em 2026-09-05)
Swagger UI: pncp.gov.br/api/consulta/swagger-ui/index.html
OpenAPI: GET https://pncp.gov.br/api/consulta/v3/api-docs
Base: https://pncp.gov.br/api/consulta/v1
| Endpoint | O que lista | Parâmetros obrigatórios |
|---|---|---|
GET /contratacoes/proposta | Contratações com recebimento de proposta aberto | dataFinal (YYYYMMDD), pagina |
GET /contratacoes/publicacao | Contratações por data de publicação | dataInicial, dataFinal, codigoModalidadeContratacao, pagina |
GET /contratacoes/atualizacao | Contratações por data de atualização global | iguais à publicação |
GET /contratos | Contratos por data de publicação | dataInicial, dataFinal, pagina |
GET /orgaos/{cnpj}/compras/{ano}/{sequencial} | Detalhe de uma compra | path |
Filtros opcionais nas contratações: uf, codigoMunicipioIbge, cnpj (órgão), codigoModalidadeContratacao (já opcional em proposta).
tamanhoPagina mínimo 10 (a API devolve 400 abaixo disso). Não há parâmetro de palavra-chave — o Actor aplica keyword / nome de órgão / nome de município no JSON recebido.
Portal: https://pncp.gov.br/app/editais/{cnpj}/{ano}/{sequencial} e https://pncp.gov.br/app/contratos/{cnpj}/{ano}/{sequencial}.
Itens da compra
GET /api/consulta/v1/orgaos/{cnpj}/compras/{ano}/{seq}/itens → 404
GET /api/pncp/v1/orgaos/{cnpj}/compras/{ano}/{seq}/itens → 5xx recorrente
O Actor não depende de itens para ter sucesso. includeItens=true tenta uma vez e segue só com o objeto se falhar.
Há também APIs em compras.dados.gov.br (ComprasNet legado). Este Actor usa o PNCP, que é o cadastro nacional vigente.
Amostra de saída
Estrutura real da API de consulta (campos nulos quando o portal não publica o valor):
{"id": "13915632000127-1-000207/2025","recordType": "contratacao","orgao": "MUNICIPIO DE JUAZEIRO","orgaoCnpj": "13915632000127","uf": "BA","municipio": "Juazeiro","objeto": "Credenciamento de prestadores de serviços de saúde…","valorEstimado": 570018.24,"modalidade": "Credenciamento","situacao": "Divulgada no PNCP","linkPncp": "https://pncp.gov.br/app/editais/13915632000127/2025/207"}
Exemplo ilustrativo de formato — rode o Actor para dados atuais.
Configuração
| Campo | Default | Descrição |
|---|---|---|
searchMode | proposta | proposta / publicacao / atualizacao / contratos |
keyword | — | Filtro local no objeto |
uf | — | Sigla ou nome; vai na query da API |
municipio | — | IBGE 7 dígitos ou nome |
orgao | — | Filtro local na razão social |
cnpjOrgao | — | Query cnpj / cnpjOrgao |
cnpjFornecedor | — | Só contratos; filtro local |
modalidadeId | — | Obrigatório em publicacao/atualizacao (6 = pregão eletrônico) |
publicationDateFrom / To | até = hoje | YYYY-MM-DD ou YYYYMMDD |
maxItems | 50 | Teto 5.000 |
includeItens | false | Tentativa extra, fail-soft |
proxyConfiguration | — | Opcional |
PPE
Evento dataset-item: US$ 2,00 / 1.000 registros sugerido.
LGPD
Editais, valores e razões sociais de órgãos e fornecedores são dados públicos de contratação. Não coletamos documentos internos nem cadastros autenticados.
Desenvolvimento
cd actors/pncp-scrapernpm install && npm test && npm run buildapify run