LatAm Public Tenders: Colombia SECOP II and Brazil PNCP
Pricing
$3.00 / 1,000 tenders
LatAm Public Tenders: Colombia SECOP II and Brazil PNCP
Get new government tenders from Colombia (SECOP II) and Brazil (PNCP) in one clean schema: buyer, object, method, estimated value, deadlines and link. Keyword, state and value filters, plus an "only new since last run" mode for daily alerts.
Pricing
$3.00 / 1,000 tenders
Rating
0.0
(0)
Developer
Ceiba Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Get new government tenders from Colombia (SECOP II) and Brazil (PNCP, Portal Nacional de Contratações Públicas) in one clean, OCDS-like schema. Filter by keyword, state or department and estimated value, keep only tenders still open for bids, and turn on Only new since my last run to get a daily alert feed without duplicates.
| Country | Source | What you get |
|---|---|---|
| 🇨🇴 Colombia | SECOP II processes, official open data on datos.gov.co | Entity and NIT, process id and reference, object, modality, contract type, base price in COP, publication date, bid deadline, status, link to the SECOP notice |
| 🇧🇷 Brazil | PNCP official consultation API (Lei 14.133/2021) | Agency and CNPJ, PNCP control number, object, modalidade (pregão, concorrência, dispensa…), estimated value in BRL, proposal opening and closing dates, state and city, link to the PNCP notice |
Why use it
- Sales teams selling to government: get every new tender for your products in Colombia and Brazil each morning, in Slack, email, a spreadsheet or your CRM.
- One schema for two countries: the same fields for SECOP and PNCP, with dates in ISO 8601 and the currency next to every amount.
- No duplicates: with Only new since my last run, a scheduled search returns only tenders it has not delivered before, and you only pay for those.
- AI agents: give an agent a reliable tool to search public tenders through the Apify MCP server.
Only official public open-data APIs are used. No login, no scraping of personal pages, and no personal data: supplier names and IDs and the names of public officials are never included, and Colombian processes titled with a private person's name (individual contracts, not open tenders) are skipped.
How to use it
- Pick the Sources and add Keywords in the local language (for example
software,computadores,vigilancia,tecnologia). - Optionally narrow by Brazil: states, Colombia: departments, Brazil: procurement methods or Minimum estimated value.
- Run it, or schedule it daily with Only new since my last run turned on, and connect the dataset to an integration (Slack, email, Google Sheets, Make, Zapier, webhooks).
Output example
{"source": "PNCP","country": "BR","id": "BR-PNCP-17176399000169-1-000036/2026","reference": "25/0602-9000599-0","title": "Contratação de empresa especializada para hidrojateamento e sucção das redes de esgoto…","buyer": { "name": "SUPERINTENDENCIA DOS SERVICOS PENITENCIARIOS", "taxId": "17176399000169", "unit": "POLÍCIA PENAL DO ESTADO DO RIO GRANDE DO SUL", "region": "RS", "city": "Porto Alegre", "level": "Estadual" },"procurementMethod": "Dispensa","procurementMethodDetails": "Lei 14.133/2021, Art. 75, VIII","status": "Divulgada no PNCP","isOpen": true,"value": { "amount": 74353.33, "currency": "BRL" },"publishedAt": "2026-10-26T06:41:05-03:00","tenderPeriod": { "startDate": "2026-10-26T10:00:00-03:00", "endDate": "2026-11-03T10:00:00-03:00" },"url": "https://pncp.gov.br/app/editais/17176399000169/2026/36"}
Colombian rows have the same shape with "source": "SECOP_II", "country": "CO", values in COP and a link to the SECOP II notice. A JSON summary of each run (delivered, already seen, filtered, errors per source) is saved as OUTPUT in the key-value store.
Input
| Field | Default | Notes |
|---|---|---|
sources | ["secop2", "pncp"] | |
keywords | empty | Matches title or description, any keyword, accent- and case-insensitive |
daysBack | 7 | Ignored when dateFrom is set |
dateFrom, dateTo | — | YYYY-MM-DD, publication date |
onlyOpen | true | Skips closed tenders and passed deadlines |
onlyNew | false | Remembers ids per search (keywords and filters, not dates) |
pncpModalities | 4, 5, 6, 7, 8 | Concorrência, pregão and dispensa |
brazilStates | all | SP, RJ, … |
colombiaDepartments | all | As written in SECOP, e.g. Antioquia |
includeDirectContracting | false | Colombia "Contratación directa" (not open competitions) |
minValue | — | Local currency |
maxItems | 1000 |
Use cases
- B2G sales teams: a daily list of new tenders in Colombia and Brazil that match your keywords.
- Bid consultants: monitor several clients' sectors with one scheduled run per client.
- Market research: how much the public sector buys of a product, by region and by entity.
- AI agents: ask for open tenders on a topic and get structured results to summarize or rank.
Use with AI agents (MCP)
Every Apify Actor is also a tool for AI agents. Add this Actor to Claude, Cursor, VS Code or any MCP client with the Apify MCP server:
https://mcp.apify.com?tools=ceibadata/latam-public-tenders
Or run it locally:
$npx -y @apify/actors-mcp-server --tools ceibadata/latam-public-tenders
Then just ask, for example:
Find open public tenders about software or cybersecurity published in Colombia (SECOP II) and Brazil (PNCP) in the last 7 days.
Example input (API / AI agents)
{"sources": ["secop2","pncp"],"keywords": ["software","ciberseguridad"],"daysBack": 7,"onlyOpen": true,"onlyNew": true,"maxItems": 200}
From code, one call returns the results:
curl -X POST "https://api.apify.com/v2/acts/ceibadata~latam-public-tenders/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' -d @input.json
Pricing
Pay per event: US$3 per 1,000 tenders delivered (US$0.003 each). Tenders skipped as already seen are free. Set a maximum cost per run in Apify and the Actor stops cleanly when it is reached.
Notes
- PNCP publishes thousands of processes a day; use keywords, states or methods to keep runs small and fast.
- Runs never end in a timeout: about 45 seconds before the run's timeout the Actor stops, saves what it found and says so in the run summary (
timeBudgetReached). Raise the timeout or narrow the search to get more. - Running with no changes to the input (or an empty input) does a quick sample: up to 20 tenders. Set your own keywords, dates or limits for a full search.
- SECOP II open data on datos.gov.co is published by Colombia Compra Eficiente with a delay of a few days, so the default window is 7 days; with Only new since my last run you never get the same tender twice.
- The PNCP API limits request rates; the Actor paces itself and retries, and if one method or state still fails the others are delivered and the error is listed in the run summary.
- Data belongs to the governments of Colombia and Brazil and is published under their open-data terms.
Support
Questions or a country you need (Mexico, Chile, Peru…)? Open an issue on the Actor page. Ceiba Data is an AI-operated studio; we answer every issue.