Brazil Tenders Scraper - PNCP Public Procurement (Licitações)
Pricing
from $2.00 / 1,000 results
Brazil Tenders Scraper - PNCP Public Procurement (Licitações)
Scrape new Brazilian government tenders (licitações) from the official PNCP API: buyer, object, modality, value, dates. Filter by state, keyword.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
NorthBound Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 days ago
Last modified
Categories
Security
Limited permissionsShare
Get new Brazilian government tenders (licitações) from PNCP, the official national public procurement portal: agency, object, modality, estimated value and proposal deadlines. Filter by state (UF), modality, keyword and value, and get only new tenders on every scheduled run.
- Official source: the official PNCP consulta API.
- No login, no browser, no personal data.
- Monitoring built in: turn on Only new since last run and schedule it for a daily alert feed.
- Export to JSON, CSV, Excel, HTML or straight into Google Sheets, Slack, Zapier, Make, n8n or your own code via the Apify API.
What can you use it for?
- Companies bidding on Brazilian government tenders: a daily list of new pregões and dispensas in your states.
- Bid-alert services: alerts by UF, modality and keyword.
- Procurement market research in Brazil.
How to use it
- Click Try for free (or Start). The input is pre-filled, so the first run works with one click and finishes in seconds.
- Adjust the filters in the Input tab (see the table below).
- Click Start and open the Output tab. The Overview view shows the key columns; All fields shows everything.
- Download the results (JSON, CSV, Excel...) or connect them to your tools (see Scheduling and integrations).
Input
| Field | Name | What it does |
|---|---|---|
daysBack | Days back | How many days back to look. Default 1. On scheduled runs with 'Only new since last run' on, a small window (1-3 days) is enough. |
keywords | Keywords | Match any keyword (case-insensitive). Empty = all. |
modalities | Modalities | PNCP modality codes (6 = Pregão Eletrônico, 8 = Dispensa, 4 = Concorrência Eletrônica, ...). Default 6 and 8. |
states | States (UF) | e.g. SP, RJ. Empty = all. |
minValue | Minimum estimated value (BRL) | 0 = no filter. |
maxItems | Max results | Stop after this many results. You pay per result ($2 per 1,000), so this caps your cost: 100 results = $0.20. |
onlyNew | Only new since last run | Skip records already returned by earlier runs of this Actor in your Apify account, so each run outputs only new ones. Turn on for scheduled daily alerts; leave off for a one-off full export. |
Example input:
{"daysBack": 1,"keywords": ["software"],"maxItems": 20,"onlyNew": true}
Output
Each result is one record with these fields:
| Field | Description |
|---|---|
numeroControlePNCP | PNCP control number. |
objeto | What is being procured (objeto). |
orgaoNome | Buying agency (órgão). |
orgaoCnpj | CNPJ of the buying agency. |
esfera | F = federal, E = state, M = municipal. |
poder | E = executive, L = legislative, J = judiciary. |
unidadeNome | Buying unit. |
uf | State (UF). |
municipio | Municipality. |
codigoIbge | IBGE municipality code. |
modalidadeId | PNCP modality code. |
modalidade | e.g. Pregão - Eletrônico, Dispensa. |
modoDisputa | Bidding mode. |
situacao | Notice status on PNCP. |
srp | Price registration system (ata de registro de preços). |
processo | Administrative process number. |
numeroCompra | Purchase number. |
valorTotalEstimado | Total estimated value. |
valorTotalHomologado | Total homologated value, when available. |
dataPublicacao | Publication date on PNCP. |
dataAberturaProposta | Proposal opening date. |
dataEncerramentoProposta | Proposal deadline. |
linkSistemaOrigem | Link to the originating purchasing system. |
noticeUrl | Notice page on pncp.gov.br. |
Sample result (from a real run, long values shortened):
{"numeroControlePNCP": "00394452000103-1-021979/2026","objeto": "Aquisição de combustíveis (Óleo Diesel S-10 e Gasolina Comum), nos termos da tabela abaixo, conforme\ncondições e exigências estabelecidas neste instrumento.","orgaoNome": "COMANDO DO EXERCITO","orgaoCnpj": "00394452000103","esfera": "F","poder": "E","unidadeNome": "6 BATALHAO DE ENGENHARIA DE CONSTRUCAO/RR","uf": "RR","municipio": "Boa Vista","codigoIbge": "1400100","modalidadeId": 6,"modalidade": "Pregão - Eletrônico","modoDisputa": "Aberto-Fechado","situacao": "Divulgada no PNCP","srp": true,"processo": "64044.003790/2026-07","numeroCompra": "70","valorTotalEstimado": 4336600,"valorTotalHomologado": null,"dataPublicacao": "2026-10-13T07:00:01","dataAberturaProposta": "2026-10-13T08:00:00","dataEncerramentoProposta": "2026-10-23T09:30:00","linkSistemaOrigem": "https://cnetmobile.estaleiro.serpro.gov.br/comprasnet-web/public/compras/acompanhamento-compra?compra=16035305000702026","noticeUrl": "https://pncp.gov.br/app/editais/00394452000103/2026/21979"}
Scheduling and integrations
- Daily alerts: in Apify Console, open Schedules, create a schedule (for example every day at 08:00) for this Actor with
onlyNew: true. Each run then returns only records that are new since the previous run. - Webhooks: add a webhook on Run succeeded to call your own endpoint, Slack or a workflow tool when new data is ready.
- Zapier, Make, n8n, Google Sheets, Slack, email: use Apify's ready-made integrations on the Actor's Integrations tab to push each run's dataset wherever you work.
- API: run it and get results in one call:
curl -X POST "https://api.apify.com/v2/acts/northbound-labs~brazil-pncp-tenders/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"daysBack": 1, "keywords": ["software"], "maxItems": 20, "onlyNew": true}'
Or with the Apify Python client: ApifyClient(token).actor("northbound-labs/brazil-pncp-tenders").call(run_input={...}).
Pricing
This Actor uses pay-per-event pricing, so you pay only for what you get:
- $2.00 per 1,000 results ($0.002 per result).
- An Actor start event of $0.00005 per run at the default 512 MB memory.
| You get | Cost |
|---|---|
| 20 results (the pre-filled test run) | about $0.04 |
| 100 results | about $0.20 |
| 1,000 results | about $2.00 |
| A daily schedule returning ~50 new results a day for 30 days | about $3.00 a month |
Set Max results to cap the cost of any run. Apify's free plan includes monthly credit you can use to try it.
FAQ
Which modalities are included by default? 6 (Pregão Eletrônico) and 8 (Dispensa). Add others, e.g. 4 (Concorrência Eletrônica), in Modalities.
Are field names in Portuguese? Yes. Fields keep PNCP's original names (objeto, orgaoNome, uf...) so they match PNCP documentation.
Do I need an account on the source site? No. The Actor reads public, logged-out data from PNCP (Portal Nacional de Contratações Públicas) through its official interface.
Does it return personal data? No. Output is limited to organisation-level and record-level fields.
How fresh is the data? As fresh as the source: every run queries it live.
Is it legal to use this data? The data comes from an official public source. You are responsible for using it in line with the source's terms and the laws that apply to you.
Something broken, or a field you need? Open an issue on the Issues tab. We read every issue and reply as fast as we can.