Brazilian Public Tenders API — PNCP (structured JSON) avatar

Brazilian Public Tenders API — PNCP (structured JSON)

Pricing

Pay per usage

Go to Apify Store
Brazilian Public Tenders API — PNCP (structured JSON)

Brazilian Public Tenders API — PNCP (structured JSON)

Brazilian public tenders API (PNCP / licitações). Query open government procurement tenders as clean, structured JSON — filter by keyword, state (UF) and modality, with built-in dedup returning only new tenders each run. For developers and AI agents building on Brazilian public data. No login.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Matheus Martins

Matheus Martins

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 hours ago

Last modified

Share

A clean diff feed of open Brazilian public tenders — built for AI agents and developers. Query tenders from PNCP (Brazil's official procurement portal, Law 14.133/2021) as structured JSON. Filter by keyword, state (UF) and modality. Built-in deduplication means each run returns only tenders you haven't seen before — a true diff feed, not a dump.

Official government source. No login, no credentials, no scraping fragility — it reads the official public consultation API.

Why this Actor

If you're building for the Brazilian public-sector market — a procurement tool, a monitoring product, a fintech serving suppliers, a proposal-drafting AI agent — you need tender data as a reliable, deduplicated feed, not a website to scrape or a raw API to babysit. This Actor gives you that feed: paginated, normalized, filtered, deduplicated, schedulable.

You only pay for new tenders. Because deduplication is built in, a scheduled daily run charges you only for tenders that actually entered the system since your last run (see the Pricing tab for the per-tender event price).

Use with AI agents (MCP)

This Actor works as a tool for AI agents via the Apify MCP server — Claude, Cursor, VS Code or any MCP-compatible client can discover it, run it and read the results.

Hosted (recommended): add https://mcp.apify.com as a remote MCP connector in your client and authorize via OAuth, or point directly at this Actor:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=gemlike_island/radar-editais-pncp",
"--header",
"Authorization: Bearer <YOUR_APIFY_API_TOKEN>"
]
}
}
}

Example agent prompts once connected:

  • "Check for new Brazilian public tenders about 'software' in SP and summarize the top 5 by value."
  • "Run the PNCP tenders tool daily and alert me when a tender over R$1M matches 'oxigênio'."

This Actor is PPE-priced and runs with limited permissions — the requirements for agentic payments on Apify, so autonomous agents can pay per use.

What it does

  • Fetches contracts with an open proposal-submission window from the PNCP consultation API.
  • Filters and ranks by relevance (accent-insensitive keyword match on object, agency and municipality). Higher matches rank first; ties break by soonest deadline.
  • Deduplicates across runs (state in the Key-Value Store) — each run returns only new tenders.
  • Outputs a structured Dataset plus a DIGEST with the top prioritized items.

Input

FieldWhat it does
keywordsTerms to filter/rank (object, agency, municipality; accent-insensitive). Empty = all open tenders.
modalidadesPNCP modality codes. 6 = Electronic Auction (Pregão Eletrônico), 8 = Waiver (Dispensa).
ufsState codes to monitor (e.g., SP, RJ). Empty = all states.
minScoreMinimum fraction of keywords a tender must match (0 = at least one).
onlyNewReturn only tenders not seen in previous runs (dedup). Keep it on for a clean diff feed.
maxResults, pageSize, maxPagesPerQueryVolume and cost controls.

Example input

{
"keywords": ["software", "tecnologia da informacao"],
"modalidades": ["6", "8"],
"ufs": ["SP", "RJ"],
"onlyNew": true,
"maxResults": 200
}

Example output (one Dataset item per tender)

{
"id": "00394494000136-1-000090/2024",
"objeto": "Contratação de serviços de tecnologia da informação",
"orgao": "MINISTERIO DA JUSTICA E SEGURANCA PUBLICA",
"orgao_cnpj": "00394494000136",
"uf": "AL",
"municipio": "Maceió",
"modalidade": "Pregão - Eletrônico",
"valor_estimado": 133931.0,
"abertura_proposta": "2024-06-25T08:00:00",
"encerramento_proposta": "2024-07-16T09:00:00",
"situacao": "Divulgada no PNCP",
"link": "https://www.gov.br/compras",
"score": 1.0
}

How to use

  1. Set your keywords, states and modalities (or leave empty for everything).
  2. Run once — then schedule it (Apify Schedule) for a daily diff feed.
  3. Consume via API, MCP, webhooks, or export as JSON, CSV, Excel or HTML.

Pricing model

Pay per event: you are charged per new tender delivered to your dataset (see the Pricing tab for the current price). Repeated tenders are never re-delivered — the built-in dedup keeps your feed and your bill clean. Platform compute for a typical daily run is a fraction of a cent.

Limitations

  • Ranking is keyword-relevance based, not semantic — LLM summarization per tender is on the roadmap (V2).
  • Covers the PNCP. State portals that don't publish to PNCP are out of scope for now.
  • The underlying data is public; the value here is the clean, deduplicated, agent-ready feed — not exclusive access.

Responsible use & compliance

Reads only public, official PNCP data (companies/agencies and administrative acts — no personal data). It does not replace the official consultation and performs no bidding or participation actions — data retrieval and monitoring only.

FAQ

  • Do I need a token or login for PNCP? No. The PNCP consultation API is public.
  • How do I get only today's new tenders? Keep onlyNew on — that's the default.
  • Can my AI agent pay for this by itself? This Actor meets Apify's agentic-payment requirements (PPE + limited permissions); see Apify's agentic payments docs for client setup.
  • Can I get tenders opening in the future? It returns tenders whose proposal window is currently open; future-window filtering is a possible extension.