Licitaciones Feed — Buenos Aires Government Tenders Scraper avatar

Licitaciones Feed — Buenos Aires Government Tenders Scraper

Pricing

from $7.00 / 1,000 tender matcheds

Go to Apify Store
Licitaciones Feed — Buenos Aires Government Tenders Scraper

Licitaciones Feed — Buenos Aires Government Tenders Scraper

CABA-only public procurement / licitaciones scraper over Buenos Aires Compras (BAC) open-data CSV. Two modes: query (search with filters) and sync (return new tenders since last run). CC-BY-4.0 licensed data. Honest about ~7-17 week data lag.

Pricing

from $7.00 / 1,000 tender matcheds

Rating

0.0

(0)

Developer

Mariano Ferreras

Mariano Ferreras

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Licitaciones Feed — Buenos Aires Public Procurement Tenders

Pay-per-event — zero monthly fee, zero subscription. Search and monitor public tenders Argentina from Buenos Aires Compras (BAC) — the official procurement platform for the City of Buenos Aires. Track licitaciones and compras publicas with OCDS-structured data, keyword search, and sync mode for new tenders. Pay per matched tender. No rental. No idle fees.


What it does

This actor provides a searchable feed of licitaciones CABA (Buenos Aires City government procurement tenders — not national) from the official Buenos Aires Compras open-data CSV. It serves two use cases in one actor: ad-hoc keyword search (query mode) and scheduled monitoring (sync mode) that detects only new tenders since your last run. Source data is CC-BY-4.0 licensed and published quarterly on the Buenos Aires government CDN — fully compliant, no proxy needed, no anti-bot risk. There are 2 other procurement actors covering Argentina: karmic_mastodon/licitaciones-latam (5 users, covers 6 LATAM countries including Argentina) and our own BAC-specific focus.

If you're looking for Buenos Aires City procurement data specifically, this gives you structured JSON with OCDS identifiers, procuring entities, amounts, deadlines, and tender categories at pay-per-event pricing. Integrate it with your supplier lead-gen pipeline for pennies per result.

Source: Buenos Aires Compras OCDS — flattened OCDS CSV at https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-economia-y-finanzas/buenos-aires-compras/bac_anual.csv.


How it works

Two modes:

query (default)

Downloads bac_anual.csv (~55MB), parses all records, applies your filters (keywords, buyer, amount range, status, date range), and returns matching tenders. Each returned tender triggers a tender-matched event charge.

sync

Downloads bac_anual.csv, compares it against stored KVS state (licitaciones-feed-state). If the file hasn't changed (same Last-Modified header), exits with "no new data". If changed, returns only the new OCIDs (tenders not seen in previous runs) and updates the KVS. Each new tender triggers a tender-new event charge.


Input

FieldTypeDefaultDescription
modeenum"query""query" or "sync"
sourcesstring[]["bac"]Currently only "bac"
keywordsstring[][]Case-insensitive OR match against title + description
buyerNamestringSubstring match on procuring entity
minAmountnumber0Minimum amount (ARS)
maxAmountnumberMaximum amount (ARS). 0 = no limit.
statusenum"active""active", "complete", or "all"
publishedAfterstringISO date filter (published on or after)
publishedBeforestringISO date filter (published on or before)
maxResultsint50Max results (1–1000)
slackWebhookUrlstring (secret)Slack incoming webhook URL. If set, sends a summary after runs with matched/new tenders.
discordWebhookUrlstring (secret)Discord channel webhook URL. Same trigger as Slack.
notifyOnEmptybooleanfalseAlso notify when a run finds zero matched/new tenders

Output (per tender)

FieldTypeDescription
sourcestringAlways "bac"
ocidstringOCDS identifier (e.g. ocds-bulbcf-10002-0321-LPU26-1-0)
processNumberstringBAC process number (e.g. 10002-0321-LPU26)
titlestringTender title
descriptionstringTender description (may be empty)
buyerstringProcuring entity name
buyerIdstring|nullBuyer government unit code
amountnumberTender value in ARS (many BAC entries are 0.0)
currencystringCurrency (always "ARS")
statusstringMapped: "active", "complete", "cancelled"
procurementMethodstring|nulle.g. "LICITACION PUBLICA"
categorystring|nulle.g. "goods", "services"
publishedAtISO|nullTender period start date
deadlineISO|nullTender period end date
urlstring|nullPliego details URL on BAC portal
sourceLastModifiedstringHTTP Last-Modified of the CSV
ingestedAtISOWhen this record was processed

Pricing

This actor uses pay-per-event pricing. You are never charged for zero-result queries, unchanged sync runs, or failed downloads.

EventPriceWhen charged
tender-matched$0.007Per tender returned in query mode (no charge for 0 results)
tender-new$0.02Per new tender detected in sync mode

At $0.007–0.02 per tender, a 500-tender query costs $3.50–10. Monitoring licitaciones CABA weekly costs well under $1/month even in active periods.


Use cases

  • Procurement monitoring — daily sync to catch new licitaciones and compras publicas in Buenos Aires
  • Market research — keyword-search active tenders by category or buyer across public tenders Argentina (CABA)
  • Supplier lead gen — find tenders matching specific goods/services; plug into your proveedores del estado pipeline
  • Agent / LLM tool — plug into an MCP toolchain for contrataciones del estado and government procurement Argentina data

Use with AI agents (MCP)

This actor is available as a tool for AI assistants via the Apify MCP server. Agents can call it to search Buenos Aires public procurement tenders directly — no Apify console needed, just a single function call.

MCP setup

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com?tools=mfapitools/licitaciones-feed",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}

Example agent prompts

  • "Find all active IT services tenders from Buenos Aires Compras"
  • "Check for new licitaciones in CABA since yesterday"
  • "Pull all procurement tenders from the Buenos Aires health ministry over $1M ARS"

The actor returns structured OCDS JSON with the same fields shown above. Agentic workflows (Claude Code, Cursor, any MCP-compatible AI) can search government procurement Argentina tenders and match them against your product catalog in the same run.


Slack / Discord alerts

Set slackWebhookUrl and/or discordWebhookUrl in the input and the actor will POST a compact summary at the end of any run that returns matched (query) or new (sync) tenders — no extra actor, no polling, no Apify task webhook config needed. This is the natural pairing for sync mode on a daily schedule: run it once a day and get pinged only when something new shows up.

Behavior guarantees:

  • Leave both fields empty → zero change in behavior, no network calls.
  • By default, a run with zero matched/new tenders sends no notification. Set notifyOnEmpty: true to also get a "nothing found" ping (useful to confirm your schedule is still alive).
  • A webhook failure (bad URL, channel deleted, Slack/Discord outage) is logged as a warning and never fails the run — your dataset output and PPE charge are unaffected either way.
  • Only up to 5 tenders are listed by name in the message body (the rest are summarized as "+N más" — the full list is always in the Apify dataset).
  • Amount totals only count tenders with amount > 0, since BAC frequently reports 0.0 — the message says how many of the listed tenders had a real amount.

Setup: Slack

  1. Go to api.slack.com/appsCreate New AppFrom scratch.
  2. Pick a name (e.g. "Licitaciones CABA") and your workspace.
  3. In the app's sidebar, open Incoming Webhooks → toggle it On.
  4. Click Add New Webhook to Workspace, pick the channel, Allow.
  5. Copy the URL (looks like https://hooks.slack.com/services/T000/B000/XXXXXXXX) into this actor's slackWebhookUrl input field.

Setup: Discord

  1. In Discord, open the target channel's Settings → Integrations → Webhooks.
  2. Click New Webhook, name it, pick the channel, Copy Webhook URL.
  3. Paste the URL (looks like https://discord.com/api/webhooks/000000/XXXXXXXX) into this actor's discordWebhookUrl input field.

Both fields are marked as secret inputs on the Apify platform (masked in the console UI and encrypted at rest) — but treat the URL like a password regardless: anyone who has it can post messages to your channel.

Example message (Slack, sync mode, 2 new tenders)

🆕 2 licitaciones nuevas — Buenos Aires Compras (BAC)
Monto total (1 con monto informado): $2.500.000 ARS
• Señales de Radio
• Mantenimiento Edilicio — $2.500.000 ARS

(Titles render as clickable links to the tender's url when one is available — shown as plain text here.)

Example message (Discord, query mode, 2 matched tenders)

🔎 2 licitaciones encontradas — Buenos Aires Compras (BAC)
┌─────────────────────────────────────────┐
│ Licitaciones encontradas │
│ │
│ Señales de Radio │
│ Monto no informado │
│ │
│ Mantenimiento Edilicio │
│ Ver pliego — $2.500.000 ARS
│ │
│ Monto total (1 con monto informado):
│ $2.500.000 ARS
└─────────────────────────────────────────┘

(The box above represents a Discord embed — "Ver pliego" is a clickable link to the tender's url.)


Limitations (v1)

  • Data lag (critical): BAC publishes quarterly; the CSV on CDN may lag 7–17 weeks behind live tenders. This is a historical search / slow alert product, not a real-time feed.
  • CABA only: no national COMPR.AR (ToS conflict), no Mendoza (6.5 months stale).
  • Amounts often 0.0: many BAC entries have tender/value/amount = 0.0. Filter with caution.
  • No award/contract data: v1 covers only the tender stage (awards/contracts live in bac.csv, 2.5GB — v2 candidate).
  • Webhook alerts are best-effort: Slack/Discord delivery never blocks or fails a run (see Slack / Discord alerts above); the Apify dataset is always the source of truth.
  • No items flattening: nested tender/items data is skipped in v1.

Attribution

Data source: Buenos Aires Compras — https://cdn.buenosaires.gob.ar/datosabiertos/datasets/ministerio-de-economia-y-finanzas/buenos-aires-compras/bac_anual.csv. Licensed under CC-BY-4.0. Government open data published by the City of Buenos Aires.


Changelog

See ./CHANGELOG.md.