Brazil Public Tenders (PNCP) Scraper avatar

Brazil Public Tenders (PNCP) Scraper

Pricing

Pay per usage

Go to Apify Store
Brazil Public Tenders (PNCP) Scraper

Brazil Public Tenders (PNCP) Scraper

Search every Brazilian public tender from the official PNCP register by keyword, state, value and deadline. Public data, no API key. 27 flat fields, deduplicated, Excel-ready.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Dimitri Fernandes Gaulia

Dimitri Fernandes Gaulia

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Search every public tender in Brazil by keyword, state, value and deadline — and get a clean spreadsheet instead of nested JSON.

Data comes from PNCP (Portal Nacional de Contratações Públicas), the official federal register that every Brazilian public body is legally required to publish to. Public data, no API key, no login, no cookies.

Brazil's public sector buys around R$ 1 trillion a year. Every one of those contracts is announced here first.

Why not just call the PNCP API yourself

You can. Here is what you run into:

PNCP raw APIThis Actor
codigoModalidadeContratacao is mandatory and single-valued — "all tenders in São Paulo" means 13 separate paginated crawlsPick any set of modes, it crawls them all
No keyword search at all — you cannot ask for "software"Accent- and case-insensitive keyword include/exclude on the tender object
No value filterMin/max estimated value
No "still open for bids" filterOne checkbox
Nested objects (orgaoEntidade, unidadeOrgao, amparoLegal)27 flat columns, ready for Excel
Returns duplicates when new tenders are inserted mid-crawlDeduplicated by tender control number
Answers HTTP 429 after a few dozen pages and diesBacks off and finishes the job

Use cases

  • Sell to the government — get a daily feed of open tenders matching what your company actually supplies
  • Competitive intelligence — track what a specific public body (by CNPJ) is buying
  • Market sizing — how much is spent on your category, by state, per quarter
  • Lead generation — buyers with an active budget and a published deadline
  • Feed an AI agent — clean rows for RAG, alerts or classification pipelines

Input

FieldWhat it does
diasRetroativosDays back from today. Use 1 for a daily monitor.
dataInicial / dataFinalExplicit window (YYYY-MM-DD), overrides the above
modalidadesProcurement modes. Default 6 (Pregão Eletrônico), the most common
ufsStates, e.g. ["SP","RJ"]. Empty = whole country
palavrasChaveKeep only tenders containing any of these words
palavrasExcluirDrop tenders containing any of these words
valorMin / valorMaxEstimated value range in BRL
somenteAbertasOnly tenders whose bidding deadline has not passed
cnpjWatch one specific public body
maxResultadosHard cap on rows

Example: IT tenders open for bids in São Paulo

{
"diasRetroativos": 7,
"modalidades": ["6"],
"ufs": ["SP"],
"palavrasChave": ["software", "licenca de uso", "sistema de gestao"],
"somenteAbertas": true,
"valorMin": 30000,
"maxResultados": 500
}

Output

One flat row per tender, 27 fields:

{
"numeroControlePNCP": "01612441000107-1-000131/2026",
"objetoCompra": "Contratação de licença de uso de programa de informática...",
"valorTotalEstimado": 46150.0,
"modalidadeNome": "Pregão - Eletrônico",
"situacaoCompraNome": "Divulgada no PNCP",
"dataAberturaProposta": "2026-08-25T08:00:01",
"dataEncerramentoProposta": "2026-09-10T08:00:01",
"orgaoCnpj": "01612441000107",
"orgaoRazaoSocial": "MUNICIPIO DE BELA VISTA DO CAROBA",
"uf": "PR",
"municipio": "Bela Vista da Caroba",
"urlPncp": "https://pncp.gov.br/app/editais/01612441000107/1-000131/2026"
}

Plus valorTotalHomologado, modoDisputaNome, dataPublicacaoPncp, numeroCompra, anoCompra, processo, orgaoPoder, orgaoEsfera, unidadeNome, unidadeCodigo, codigoIbge, amparoLegal, informacaoComplementar, linkSistemaOrigem.

Export as JSON, CSV, Excel or XML, or read it from the API.

Daily monitor

Schedule the Actor with diasRetroativos: 1 and your keywords. Every morning you get only what was published in the last 24 hours matching your business — connect it to Slack, email, Make or n8n through Apify integrations.

Notes

  • PNCP rate-limits aggressively. The Actor throttles and backs off, so a wide query takes minutes rather than failing.
  • valorTotalEstimado is sometimes 0 when the body chooses to keep the budget confidential — that is the source data, not a bug.
  • Data is published by thousands of public bodies with varying diligence; text quality reflects the original filing.