# Argentina Official Tender Alerts (`living_potato/argentina-official-tender-alerts`) Actor

Find procurement notices in the official Argentine gazette by date, keyword, and category. Export official notice links and full text.

- **URL**: https://apify.com/living_potato/argentina-official-tender-alerts.md
- **Developed by:** [Cesar Emanuel Zaracho](https://apify.com/living_potato) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $30.00 / 1,000 matching tender notices

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Argentina Official Tender Alerts

Find procurement notices in the **third section of the Boletín Oficial de la República Argentina**. Filter by publication date, words or phrases, and category. Every result includes the official notice URL, agency, heading, category, full notice text, and matched keywords.

This is an independent tool that reads public notices. It is not affiliated with the Argentine government. A published notice is not necessarily an open opportunity: it can be an award or another procurement announcement. Always check the official page and deadlines before acting.

### Example input

```json
{
  "editionDate": "",
  "daysBack": 7,
  "keywords": ["licitación"],
  "maxNotices": 100,
  "maxResults": 10
}
```

Leave `editionDate` blank to use the current date in Buenos Aires. This example checks the last seven calendar days and saves at most 10 matching notices. There may be no edition on weekends or holidays; the run summary reports missing editions. Set `category` to narrow the results, or omit it to search all procurement categories.

### Output

Each matching result is one dataset row:

```json
{
  "noticeId": "2418944",
  "editionDate": "2026-10-15",
  "category": "SUMINISTROS - EFECTOS VARIOS",
  "agency": "EMPRESA ARGENTINA DE NAVEGACIÓN AÉREA S.E.",
  "noticeTitle": "Licitación Pública (Modo IV) 04/2026",
  "sourceUrl": "https://www.boletinoficial.gob.ar/detalleAviso/tercera/2418944/20261015",
  "body": "...",
  "matchedKeywords": ["herramientas"]
}
```

The default key-value store also contains `RUN_SUMMARY` with counts, limit flags, and any detail errors. The Actor fetches at most `maxNotices` detail pages, plus one listing page per date (up to seven days). It reads notices in the order shown by the official site; later notices may be absent when a cap is reached.

### Pricing

The Store listing currently charges **$0.03 per matching result** and **$0.00005 per run**. The Actor emits the `notice-result` event only when it saves a matching result. Apify platform usage is charged separately to the creator and can vary by run; review the live listing and your billing before running it repeatedly.

### Local verification

```powershell
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements-dev.txt
.\.venv\Scripts\python.exe -m pytest -q
```

### Publish

1. Install the [Apify CLI](https://docs.apify.com/cli/docs/installation) and log in to your personal Apify account.
2. From this directory, run `apify push` to upload and build the Actor.
3. Inspect the dataset views and `RUN_SUMMARY` after a successful run.
4. Check the Store prices and review actual platform usage before scheduling repeated runs.

Publishing and monetization require the owner account and acceptance of Apify terms. No revenue is guaranteed by uploading an Actor.

# Actor input Schema

## `editionDate` (type: `string`):

Leave blank for today's date in Argentina. The gazette may not publish an edition on weekends or holidays.

## `daysBack` (type: `integer`):

Includes the edition date and earlier calendar days. Maximum 7.

## `keywords` (type: `array`):

Case-insensitive search in agency, notice title, category and full notice text. Empty means all notices.

## `category` (type: `string`):

Optional category filter, e.g. SUMINISTROS or SERVICIOS.

## `maxNotices` (type: `integer`):

Limits detail-page requests and cost. Matching results may be fewer.

## `maxResults` (type: `integer`):

Stops after this many matching notice rows have been saved.

## Actor input object example

```json
{
  "daysBack": 1,
  "keywords": [],
  "maxNotices": 100,
  "maxResults": 25
}
```

# Actor output Schema

## `notices` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("living_potato/argentina-official-tender-alerts").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("living_potato/argentina-official-tender-alerts").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call living_potato/argentina-official-tender-alerts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,living_potato/argentina-official-tender-alerts"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VCLjnj0z22TbE0PL0/builds/wHFXrHb84kNs0PxhV/openapi.json
