PNCP Brazil Public Tenders & Contracts (Licitações) API avatar

PNCP Brazil Public Tenders & Contracts (Licitações) API

Pricing

from $2.00 / 1,000 results

Go to Apify Store
PNCP Brazil Public Tenders & Contracts (Licitações) API

PNCP Brazil Public Tenders & Contracts (Licitações) API

Brazil's public tenders (licitações) and contracts from the official PNCP API: open tenders, new tenders and signed contracts with buyer, CNPJ, state, city, method, deadline, value in BRL and supplier companies. English labels. Unofficial; not affiliated with PNCP.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

JP Open Data

JP Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Get Brazilian public procurement from PNCP (Portal Nacional de Contratações Públicas), the official national portal where every federal, state and municipal body must publish its tenders and contracts under Lei 14.133/2021. Three things in one Actor:

  • Open tenders — licitações whose proposal period is open now (live opportunities, closing within N days);
  • New tenders — everything published in a date window (pregão, concorrência, dispensa, inexigibilidade, credenciamento, leilão ...);
  • Contracts — signed contracts and empenhos, with the supplier company and its CNPJ.

Data comes live from PNCP's official consultation API (no login, no API key, no browser). Every row has English labels next to PNCP's Portuguese ones, and shared fields use the same names as our UK, EU (TED), US (SAM.gov) and Australian (AusTender) tender Actors — title, buyerName, procurementMethod, valueAmount, tenderDeadline, contractStart / contractEnd, awardedSuppliers, noticeUrl — so the datasets are easy to combine.

Unofficial tool. Not affiliated with or endorsed by the Government of Brazil, the Ministério da Gestão e da Inovação em Serviços Públicos or PNCP. It reads PNCP's public open-data API only, politely (one request at a time, at least 5 seconds apart, a hard request budget, no block evasion), and outputs procurement facts only — no personal data (see "Personal data" below). You are responsible for making sure your use of the data complies with applicable law (including the LGPD).

Quick start — verified input

Open electronic reverse auctions (pregão eletrônico) in São Paulo state, newest first:

{
"mode": "open",
"states": ["SP"],
"procurementMethods": ["pregao-electronic"],
"maxItems": 20
}

An empty input {} also works: the newest 20 tenders published in the last 3 days, nationwide, all procurement methods.

More examples:

{
"mode": "published",
"daysBack": 1,
"keywords": ["computador", "notebook", "software"],
"states": ["MG", "RJ"],
"maxItems": 500,
"maxApiRequests": 200
}
{
"mode": "contracts",
"dateFrom": "2026-10-01",
"dateTo": "2026-10-07",
"buyerCnpjs": ["00394544000185"],
"valueMin": 100000,
"maxItems": 200
}
{
"mode": "open",
"cities": ["Campinas - SP", "Belo Horizonte - MG"],
"daysAhead": 15,
"keywords": ["obra", "pavimentação"],
"maxItems": 100
}

Input

FieldExampleWhat it does
mode"open"published (tenders published in the date window, default), open (tenders open for proposals now), contracts (contracts published in the date window).
keywords["medicamento", "merenda escolar"]Words or phrases in the object (title), buyer, buying unit and supplier name; any case, accents ignored, matched at the start of words (computador also finds computadores). Titles are in Portuguese. Any keyword matches.
states["SP", "Minas Gerais"]States (UF) of the buying unit.
cities["Campinas - SP", "3550308"]Municipalities as City - UF, IBGE code, or a name that is unique in Brazil. A row matches any listed state or city.
buyerCnpjs["00394544000185"]CNPJ of the buying body (punctuation optional; check digits are verified, alphanumeric CNPJs accepted).
procurementMethods["6", "dispensa"]PNCP modalidade codes or names (tenders only): 6 Pregão eletrônico, 8 Dispensa, 9 Inexigibilidade, 4 Concorrência eletrônica, 12 Credenciamento, 7 Pregão presencial, 1 Leilão eletrônico, 5 Concorrência presencial, 3 Concurso, 2 Diálogo competitivo, 10 Manifestação de interesse, 11 Pré-qualificação, 13 Leilão presencial. pregao = 6 and 7.
daysBack7published / contracts: from N days ago up to today (Brasília calendar days). Default 3.
daysAhead15open: proposal period closes within the next N days. Default 30.
dateFrom / dateTo"2026-09-01", "30/09/2026"Explicit window (max 366 days). In open mode dateTo is the last closing day. YYYY-MM-DD, DD/MM/YYYY, today, -30d, +15d work.
valueMin / valueMax100000BRL. Estimated value for tenders, global (else initial) value for contracts. Rows without a value are dropped when a range is set.
maxItems20Maximum rows (1–10,000). You are charged per row.
maxApiRequests40Hard request budget (1–1,000). Requests are at least 5 s apart; one request returns up to 50 tenders or 500 contracts.

Common input mistakes

WrongRightWhy
"keywords": ["laptop"]"keywords": ["notebook", "computador"]Titles are written in Portuguese.
"cities": ["Campinas"] meaning several"cities": ["Campinas - SP"]Add the UF when a name exists in several states (the error lists them).
"states": ["São Paulo city"]"cities": ["São Paulo - SP"]States and cities are separate fields.
"procurementMethods": ["RFP"]"procurementMethods": ["6"]Use PNCP's modalidades (the error lists all 13).
"buyerCnpjs": ["Universidade de São Paulo"]"buyerCnpjs": ["63025530000104"]Names are not accepted; use the CNPJ shown on PNCP (keywords for words).
a big nationwide keyword search with the default budgetraise maxApiRequests, add states or procurementMethodsKeyword matching happens on the rows PNCP returns; PNCP itself has no keyword search.

An invalid value stops the run immediately, before any request to PNCP, with a message that names the field and lists the valid values. Numbers outside their range are clamped with a warning.

Output example

One dataset item per PNCP record (a tender = "contratação", or a contract):

{
"id": "12248878000120-1-000022/2026",
"recordType": "tender",
"stage": "tender",
"status": "open",
"statusOriginal": "Divulgada no PNCP",
"isOpenForBids": true,
"title": "CONTRATAÇÃO DE PESSOA JURÍDICA ESPECIALIZADA NO FORNECIMENTO DE 01 (UM) CAMINHÃO TRUCADO BASCULANTE ...",
"buyerName": "MUNICIPIO DE NOVO LINO",
"buyerCnpj": "12248878000120",
"buyerSphere": "municipal",
"buyerUnitName": "PREFEITURA MUNICIPAL DE NOVO LINO - AL",
"buyerState": "AL",
"buyerStateName": "Alagoas",
"buyerCity": "Novo Lino",
"buyerCityIbgeCode": "2705606",
"procurementMethod": "Reverse auction (pregão), electronic",
"procurementMethodCode": 6,
"procurementMethodOriginal": "Pregão - Eletrônico",
"disputeMode": "Open bidding",
"disputeModeOriginal": "Aberto",
"instrumentType": "Call for tenders (edital)",
"legalBasis": "Lei 14.133/2021, Art. 28, I",
"priceRegistration": false,
"valueAmount": 648000,
"valueCurrency": "BRL",
"valueUndisclosed": false,
"tenderDeadline": "2026-10-21T10:00:00-03:00",
"bidsOpenFrom": "2026-10-11T00:00:00-03:00",
"daysUntilDeadline": 8,
"purchaseNumber": "012/2026 (2º chamada)",
"processNumber": "5000062300022026",
"publishedDate": "2026-10-10",
"publishedAt": "2026-10-10T21:10:27-03:00",
"sourceSystemUrl": "https://bnccompras.com/Process/ProcessView?param1=...",
"noticeUrl": "https://pncp.gov.br/app/editais/12248878000120/2026/22",
"supplierName": null,
"awardedSuppliers": [],
"matchedKeywords": [],
"source": "PNCP - Portal Nacional de Contratações Públicas (Brazil), official consultation API",
"sourceUrl": "https://pncp.gov.br/",
"license": "Source: Portal Nacional de Contratações Públicas (PNCP), https://pncp.gov.br - Brazilian public procurement open data ...",
"retrievedAt": "2026-10-12T23:40:17.096Z"
}

A contract row fills contractNumber, contractType (+ contractTypeOriginal), processCategory, contractInitialValue, contractGlobalValue, signedDate, contractStart, contractEnd, isRevenue, relatedTenderId (the PNCP ID of the tender it came from) and supplierName / supplierCnpj / supplierType when the supplier is a company. Every row has every field (null when PNCP has no value or it does not apply).

Main fields

  • id — PNCP control number (tender ...-1-.../year, contract ...-2-.../year); noticeUrl opens the record on the PNCP portal; sourceSystemUrl is the buying platform where proposals are submitted (tenders).
  • status — tenders: open (proposal period not over), closed (period over, no result yet), awarded (result homologated), suspended, cancelled (revoked or annulled), unknown; contracts: awarded. statusOriginal is PNCP's situação.
  • valueAmount — tenders: estimated value; contracts: global (else initial) value; BRL. valueUndisclosed: true means PNCP returned 0, which it does for confidential budgets (orçamento sigiloso) without a result.
  • awardedValue — tenders: homologated value; contracts: global (else initial) value.
  • tenderDeadline / bidsOpenFrom — proposal period, ISO 8601 with the Brasília offset (-03:00). daysUntilDeadline is counted when the run read the row.
  • ...Original fields keep PNCP's Portuguese labels; the English fields come from PNCP's code tables. The title (objeto) is not translated.

How it works

  1. published asks /v1/contratacoes/publicacao once per procurement method (PNCP requires one) and per state/city/buyer you set; open asks /v1/contratacoes/proposta; contracts asks /v1/contratos (PNCP has no state filter for contracts, so states and cities are applied to its results).
  2. Each query is read newest first (PNCP lists oldest first, so the Actor reads the last page first). A window with more than 1,000 rows is read one day at a time, newest day first.
  3. Every row is normalised, de-duplicated by its PNCP ID and checked again against every filter (PNCP silently ignores parameters it does not support).
  4. RUN_SUMMARY (key-value store) records the queries, pages, rows read and filtered, withheld suppliers, request count, complete and a stopReason.

Empty results?

A search with no match ends with 0 rows and complete: true — not an error. Typical causes: a weekend or holiday window (bodies publish on working days), a keyword in English, or a small city combined with one method and a value range. Widen the window, use Portuguese words or relax the filters.

If PNCP refuses requests mid-run (HTTP 429/5xx after the allowed waits) or the budget runs out, the run keeps what it found and ends successfully with complete: false. If the very first request fails, the run fails visibly instead of retrying aggressively.

Personal data (LGPD / GDPR)

PNCP publishes contract suppliers with their identifier — including natural persons with their full CPF and sole traders (MEI / empresário individual) whose business name is their own name. This Actor shows a supplier's name and CNPJ only when the supplier is a legal entity (LTDA, S.A., EIRELI, cooperatives, associations, foundations, public bodies ...). Individuals, MEI-format names (<CNPJ root> <owner's name>), names containing a CPF and names without legal-entity evidence are withheld: supplierName and supplierCnpj are null and supplierNameWithheld is true (some companies without a legal-form word are withheld too — we prefer that to publishing a person's name). When a supplier is withheld, its name words and identifier are also removed from that contract's text.

The Actor never outputs PNCP's free-text "informação complementar" (which often names officials), the publishing platform user, subcontractors, e-mail addresses or phone numbers; CPF numbers, contacts and "title + name" sequences inside titles are replaced.

Source, licence and attribution

Source: Portal Nacional de Contratações Públicas (PNCP), https://pncp.gov.br. PNCP is the official portal created by Lei 14.133/2021 (art. 174), which must adopt the open-data format and the requirements of the Access to Information Law (Lei 12.527/2011). Open data published by the Brazilian federal Executive are free to use with credit to the source (Decreto 8.777/2016, arts. 2 and 4). Records are entered by the contracting bodies, which are responsible for them; verify important details on PNCP. Each row carries this credit in source, sourceUrl and license.

Disclaimer

Unofficial tool, not affiliated with or endorsed by the Government of Brazil, the Ministério da Gestão e da Inovação em Serviços Públicos, SERPRO or PNCP. Data are provided as published by PNCP at retrieval time (retrievedAt), without warranty. This is not legal advice.