# Licitaciones públicas de Costa Rica (SICOP) (`opendata-cr/costa-rica-sicop`) Actor

Carteles, adjudicaciones y perfiles de proveedores de SICOP, las compras públicas de Costa Rica. Filtre por palabra clave, institución, UNSPSC, monto y fecha, con montos en colones y dólares. El modo monitor entrega solo los carteles nuevos. Datos abiertos del Ministerio de Hacienda.

- **URL**: https://apify.com/opendata-cr/costa-rica-sicop.md
- **Developed by:** [Tornwar](https://apify.com/opendata-cr) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 tenders

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

## Licitaciones públicas de Costa Rica (SICOP) / Costa Rica SICOP Tenders & Awards

Licitaciones, adjudicaciones y perfiles de proveedores de SICOP a partir de los datos abiertos del **Observatorio de Compra Pública del Ministerio de Hacienda**. El Actor descarga los archivos ZIP mensuales que publica el Observatorio y los entrega como un dataset. No inicia sesión en sicop.go.cr ni usa navegador o proxies.

Tenders, awarded lines, and supplier profiles from SICOP, built from the open data published by Costa Rica's **Ministry of Finance (Ministerio de Hacienda) Public Procurement Observatory**. English below.

***

### Español

#### Para quién es

- Empresas que le venden al Estado y quieren una alerta diaria de carteles abiertos por palabra clave, institución, código UNSPSC o monto. Están todas las instituciones que compran por SICOP, entre ellas la CCSS (`4000042147`) y el ICE (`4000042139`).
- Consultores y bufetes de contratación pública: quién ganó cada línea, a qué precio y con qué tipo de procedimiento, y la actividad reciente de un proveedor.
- Periodistas y equipos de datos que necesitan montos, instituciones y proveedores en un formato listo para analizar.
- Integraciones: el dataset y el resumen de la ejecución (registro `OUTPUT`) se pueden leer con la API de Apify.

#### Qué devuelve

| Modo | Cada ítem es | Uso |
|---|---|---|
| `licitaciones` | Un cartel | Oportunidades abiertas o histórico de publicaciones |
| `adjudicaciones` | Una línea adjudicada | Precios adjudicados, bienes y proveedores |
| `proveedor` | Una persona jurídica | Totales del período, instituciones, sanciones, recursos y garantías |

El modo `proveedor` requiere `supplierIds`. No recorre el registro completo de proveedores (unas 58.000 fichas).

#### Precio (pago por evento)

| Evento | Precio | Se cobra por |
|---|---|---|
| `licitacion` | US$0,005 | Cada cartel entregado |
| `adjudicacion` | US$0,003 | Cada línea adjudicada entregada |
| `perfil-proveedor` | US$0,02 | Cada perfil de persona jurídica entregado |

Solo se cobra lo que se escribe en el dataset. Una ejecución sin resultados, una cédula que no aparece en los datos o un proveedor que es persona física no generan cobro.

`maxResults` limita la cantidad de resultados de cada ejecución. El formulario sugiere 25; si se omite por API, el límite es 1000. En modo monitor (`onlyNewSinceLastRun`) solo se entregan y cobran los resultados que no se habían entregado antes.

Puede fijar un máximo a cobrar por ejecución (mínimo US$0,02). Si se alcanza, la ejecución termina con éxito, conserva los resultados ya entregados y lo indica en el mensaje de estado. Si el máximo no alcanza ni para un resultado, no se descarga nada.

Si un mes del rango todavía no está publicado, se omite. Si no hay ningún mes disponible, o si el modo `proveedor` no recibe cédulas, la ejecución termina con 0 resultados y un mensaje que explica el motivo.

#### Ejemplo: licitaciones abiertas de un rubro

```json
{
  "mode": "licitaciones",
  "keywords": ["letras volumetricas"],
  "onlyOpen": true,
  "includeLines": true,
  "includeEvaluation": true,
  "dateFrom": "2026-10-01",
  "dateTo": "2026-10-09",
  "convertToUSD": true
}
```

Resultado (cartel `20261000175`, Municipalidad de San José):

```json
{
  "modo": "licitaciones",
  "nroSicop": "20261000175",
  "numeroProcedimiento": "2026LD-000223-0015499999",
  "titulo": "Servicio integral para el diseño de planos constructivos, fabricación, cimentación, anclaje e instalación de cuatro módulos de letras volumétricas",
  "institucion": {
    "cedula": "3014042058",
    "nombre": "MUNICIPALIDAD DEL CANTÓN CENTRAL DE SAN JOSÉ",
    "ubicacion": "Hospital, San José, San José"
  },
  "tipoProcedimiento": "LICITACIÓN REDUCIDA",
  "modalidad": "Cantidad definida",
  "estado": "Publicado",
  "clasificacionObjeto": "SERVICIOS",
  "excepcion": null,
  "fechaPublicacion": "2026-10-02T10:10:03-06:00",
  "fechaAperturaOfertas": "2026-10-09T10:31:00-06:00",
  "diasParaCierre": 5,
  "montoEstimadoCRC": 25302600,
  "montoEstimadoUSD": 54733.18,
  "tipoCambioUsado": 462.29,
  "lineas": [
    {
      "numero": 1,
      "partida": 1,
      "descripcion": "SERVICIOS DE CONFECCIÓN E INSTALACIÓN DE TOTEM",
      "cantidad": 3,
      "precioUnitarioEstimado": 8434200,
      "moneda": "CRC",
      "unspsc": "82101501",
      "codigoProducto": "8210150192176417"
    }
  ],
  "criteriosEvaluacion": [
    { "factor": "Precio", "porcentaje": 90 },
    { "factor": "Pymes", "porcentaje": 5 },
    { "factor": "Innovación en el proceso productivo.", "porcentaje": 5 }
  ],
  "fuente": "Observatorio de Compra Pública — Ministerio de Hacienda (datos abiertos, Decreto 40199-MP)",
  "archivoFuente": "202610.zip",
  "extraidoEn": "2026-10-04T09:05:00-06:00"
}
```

`diasParaCierre` se calcula en el momento de cada ejecución.

La búsqueda por palabras clave no distingue mayúsculas ni tildes (`diseno` encuentra `diseño`) y basta con que coincida una de ellas. `excludeKeywords` descarta el cartel si el título o alguna línea contiene una de esas palabras.

`onlyOpen` deja solo los carteles en estado `Publicado` o `En recepción de ofertas` cuya apertura de ofertas todavía no ha pasado. No aplica a adjudicaciones ni a perfiles.

#### Ejemplo: adjudicaciones de una institución

```json
{
  "mode": "adjudicaciones",
  "institutionIds": ["4000042150"],
  "dateFrom": "2026-10-01",
  "dateTo": "2026-10-09",
  "maxResults": 100
}
```

```json
{
  "modo": "adjudicaciones",
  "nroSicop": "20260301182",
  "numeroProcedimiento": "2026LD-000015-0003500001",
  "descripcionProcedimiento": "MANTENIMIENTO PREVENTIVO Y CORRECTIVO PARA EQUIPOS DE LABORATORIO",
  "institucion": {
    "cedula": "4000042150",
    "nombre": "UNIVERSIDAD NACIONAL",
    "ubicacion": "Heredia, Heredia, Heredia"
  },
  "proveedor": {
    "cedula": "3101373718",
    "nombre": "METCAL ENGINEERING SERVICES SOCIEDAD ANONIMA",
    "tamano": "Pequeña",
    "tipo": "Nacional Jurídico",
    "personaFisica": false
  },
  "linea": 6,
  "descripcionBienServicio": "SERVICIO DE MANTENIMIENTO PREVENTIVO Y CORRECTIVO PARA PH METRO",
  "cantidad": 1,
  "unidad": "NA",
  "moneda": "CRC",
  "montoEnMoneda": 43350,
  "montoAdjudicadoCRC": 43350,
  "montoAdjudicadoUSD": 93.16,
  "fechaAdjudicacionFirme": "2026-10-04T00:00:00-06:00",
  "tipoProcedimiento": "LICITACIÓN REDUCIDA",
  "modalidad": "Cantidad definida",
  "unspsc": "81101706",
  "archivoFuente": "202610.zip"
}
```

Si la adjudicación es en otra moneda (por ejemplo EUR), `moneda` y `montoEnMoneda` la muestran, y `montoAdjudicadoCRC` y `montoAdjudicadoUSD` traen la conversión publicada por el Observatorio.

#### Ejemplo: perfil de un proveedor

```json
{
  "mode": "proveedor",
  "supplierIds": ["3-101-303248"],
  "dateFrom": "2026-10-01",
  "dateTo": "2026-10-09"
}
```

La cédula se acepta con o sin guiones. En este rango, Corporación Comercial El Lagar S.A. registra 124 líneas adjudicadas en 7 procedimientos, por ₡4.989.777,80 (US$10.895,41). Los totales corresponden al rango de fechas solicitado, no a todo el historial del proveedor. Para cubrir más meses, amplíe `dateFrom` y `dateTo` (hasta 60 meses por ejecución).

#### Alerta diaria

El Observatorio actualiza el ZIP del mes en curso todos los días alrededor de las 08:00, hora de Costa Rica. Lo publicado en SICOP durante el día aparece en el archivo del día siguiente. Para una alerta diaria, programe el Actor después de esa hora:

- Cron: `0 9 * * *`
- Zona horaria: `America/Costa_Rica`
- Input: `onlyNewSinceLastRun: true`, `onlyOpen: true` y los filtros de su rubro
- `monitorStoreName`: un nombre distinto por alerta, por ejemplo `sicop-medicamentos` o `sicop-ccss`

En adjudicaciones, un resultado se identifica por procedimiento, línea y proveedor, de modo que una línea nueva de un procedimiento ya visto sí se entrega.

#### Fuente y desfase

- Datos: [Observatorio de Compra Pública, descargas SICOP](https://www.observatoriocomprapublica.go.cr/descargas-sicop/), Ministerio de Hacienda.
- Tipo de cambio de respaldo: [API de indicadores del Ministerio de Hacienda](https://api.hacienda.go.cr/indicadores/tc/dolar) (tipo de cambio de venta).
- Los datos son públicos y de libre acceso según el Decreto Ejecutivo 40199-MP (Apertura de Datos Públicos). Este Actor no pertenece al Observatorio ni al Ministerio de Hacienda. Cada ítem incluye la atribución en el campo `fuente`.
- Desfase: un día. Lo que se publica hoy aparece en la descarga de mañana.
- Las fechas están en hora de Costa Rica (UTC−6) y se entregan con el desfase `-06:00`.
- No hay enlace directo al expediente. Use `numeroProcedimiento` para buscarlo en sicop.go.cr.

#### Privacidad (Ley 8968)

El Actor no entrega datos personales. Se omiten el nombre y la cédula de los representantes legales, el nombre de quien presenta un recurso y los datos de funcionarios inhibidos. Cuando el proveedor es una persona física, la línea adjudicada se entrega sin su nombre ni su cédula (`personaFisica: true`). Sí se incluyen las cédulas jurídicas de instituciones y empresas.

***

### English

#### Who it is for

- Companies that sell to the Costa Rican government and want a daily alert of open tenders by keyword, institution, UNSPSC code, or amount. Every institution that buys through SICOP is included, such as CCSS (`4000042147`) and ICE (`4000042139`).
- Procurement consultants and law firms: who won each line, at what price, and a supplier's recent activity.
- Journalists and data teams who need amounts, buyers, and suppliers ready to analyze.
- Integrations: read the dataset and the run summary (`OUTPUT` record) through the Apify API.

#### What you get

| Mode | Each item is | Use it for |
|---|---|---|
| `licitaciones` | One tender | Open opportunities or publication history |
| `adjudicaciones` | One awarded line | Award prices, goods, and suppliers |
| `proveedor` | One company | Totals for the period, buyers, sanctions, appeals, and guarantees |

Supplier mode requires `supplierIds`. It does not scan the full supplier registry (about 58,000 records).

#### Pricing (pay per event)

| Event | Price | Charged for |
|---|---|---|
| `licitacion` | US$0.005 | Each tender returned |
| `adjudicacion` | US$0.003 | Each awarded line returned |
| `perfil-proveedor` | US$0.02 | Each company profile returned |

You only pay for items written to the dataset. Empty runs, IDs that are not in the data, and suppliers who are natural persons are not charged.

`maxResults` caps the number of results per run. The form suggests 25; if you omit it in an API call, the cap is 1000. In monitor mode (`onlyNewSinceLastRun`), only results that were not returned before are delivered and charged.

You can set a maximum charge per run (minimum US$0.02). When it is reached, the run ends successfully, keeps the results already delivered, and says so in its status message. If the maximum does not cover a single result, nothing is downloaded.

Months in the date range that are not published yet are skipped. If no month is available, or supplier mode gets no IDs, the run ends with 0 results and a message explaining why.

#### Example: open tenders

```json
{
  "mode": "licitaciones",
  "keywords": ["letras volumetricas"],
  "onlyOpen": true,
  "includeLines": true,
  "includeEvaluation": true,
  "dateFrom": "2026-10-01",
  "dateTo": "2026-10-09",
  "convertToUSD": true
}
```

This returns tender `20261000175` from the Municipality of San José, estimated at ₡25,302,600 (US$54,733.18 at the line's exchange rate of 462.29), closing on 2026-10-09. The full item is shown in the Spanish section above.

Keywords ignore case and accents (`diseno` matches `diseño`), and any one keyword is enough. `excludeKeywords` drops a tender when its title or any line contains one of those words. `onlyOpen` keeps tenders with status `Publicado` or `En recepción de ofertas` whose bid opening is still in the future. It does not apply to awards or supplier profiles.

#### Example: awards by institution

```json
{
  "mode": "adjudicaciones",
  "institutionIds": ["4000042150"],
  "dateFrom": "2026-10-01",
  "dateTo": "2026-10-09",
  "maxResults": 100
}
```

One result: Universidad Nacional, line 6 of `2026LD-000015-0003500001`, awarded to Metcal Engineering Services S.A. for ₡43,350 (US$93.16) on 2026-10-04.

For awards in another currency (for example EUR), `moneda` and `montoEnMoneda` show the original amount, and the CRC and USD fields carry the conversion published by the Observatory.

#### Example: supplier profile

```json
{
  "mode": "proveedor",
  "supplierIds": ["3101303248"],
  "dateFrom": "2026-10-01",
  "dateTo": "2026-10-09"
}
```

IDs work with or without dashes (`3-101-303248`). Totals cover the requested date range, not the supplier's full history. Widen `dateFrom` and `dateTo` to include more months, up to 60 months per run.

#### Daily alert

The Observatory updates the current month's ZIP every day around 08:00 Costa Rica time. Anything published in SICOP during the day appears in the next day's file. Schedule the Actor after that:

- Cron: `0 9 * * *`
- Timezone: `America/Costa_Rica`
- Input: `onlyNewSinceLastRun: true`, `onlyOpen: true`, plus your filters
- `monitorStoreName`: a different name for each alert

For awards, a result is identified by procedure, line, and supplier, so a new line on a procedure you have already seen is still returned.

#### Source and data lag

- Data: [Public Procurement Observatory, SICOP downloads](https://www.observatoriocomprapublica.go.cr/descargas-sicop/), Ministerio de Hacienda.
- Fallback exchange rate: [Ministerio de Hacienda indicators API](https://api.hacienda.go.cr/indicadores/tc/dolar) (sell rate).
- The data is public and free to use under Executive Decree 40199-MP (Open Public Data). This Actor is not affiliated with the Observatory or the Ministerio de Hacienda. Every item carries the attribution in the `fuente` field.
- Lag: one day. Anything published today appears in tomorrow's download.
- Dates are in Costa Rica time (UTC−6) and are returned with a `-06:00` offset.
- There is no direct link to the procurement file. Use `numeroProcedimiento` to look it up on sicop.go.cr.

#### Privacy (Law 8968)

The Actor does not return personal data. It leaves out the names and ID numbers of legal representatives, the names of people who file appeals, and data on recused officials. When a supplier is a natural person, the awarded line is returned without their name or ID (`personaFisica: true`). Institution and company IDs are included.

# Actor input Schema

## `mode` (type: `string`):

Qué devolver. licitaciones: un ítem por cartel. adjudicaciones: un ítem por línea adjudicada. proveedor: un ítem por cédula jurídica. What to return: one tender, one award line, or one company profile.

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

Coincide si cualquiera aparece en el título o la descripción (sin distinguir mayúsculas ni tildes). Match if any keyword appears in the title or description. Case and accents are ignored.

## `excludeKeywords` (type: `array`):

Se descarta el resultado si aparece cualquiera de estas palabras. Drop the result when any of these words appear.

## `institutionIds` (type: `array`):

Cédulas jurídicas. Ejemplo: 4000042147 es la CCSS y 4000042139 es el ICE. Se aceptan guiones. Legal entity IDs. Dashes are optional.

## `institutionNameContains` (type: `string`):

Texto contenido en el nombre de la institución, sin distinguir mayúsculas ni tildes. Accent- and case-insensitive match on the institution name.

## `unspscPrefixes` (type: `array`):

Prefijos del código UNSPSC del bien o servicio (8 dígitos), por ejemplo 8210 o 82101501. UNSPSC product code prefixes (8-digit code), e.g. 8210 or 82101501.

## `procedureTypes` (type: `array`):

Coincidencia exacta, sin distinguir mayúsculas ni tildes. Valores habituales: LICITACIÓN REDUCIDA, LICITACIÓN MENOR, LICITACIÓN MAYOR, PROCEDIMIENTO POR EXCEPCIÓN, PROCEDIMIENTOS ESPECIALES, REMATE, SUBASTA INVERSA ELECTRÓNICA. Exact match; case and accents are ignored.

## `onlyOpen` (type: `boolean`):

En licitaciones, deja solo estado Publicado o En recepción de ofertas con apertura en el futuro. Se ignora en adjudicaciones y proveedor. Tenders only: status is open and the closing time is still in the future. Ignored for awards and supplier profiles.

## `minAmountCRC` (type: `number`):

Monto mínimo en colones, inclusive. En licitaciones se compara con el monto estimado; en adjudicaciones y perfiles, con el monto adjudicado por línea. Inclusive minimum in CRC: estimated amount for tenders, awarded line amount for awards and profiles.

## `maxAmountCRC` (type: `number`):

Monto máximo en colones, inclusive. Inclusive maximum in CRC.

## `dateFrom` (type: `string`):

Inicio del rango (publicación o adjudicación en firme). También define qué ZIP mensuales se descargan. Si ambos extremos van vacíos, se usan los últimos 30 días en hora de Costa Rica. Start date. Also selects which monthly ZIPs are downloaded. Empty defaults to the last 30 days.

## `dateTo` (type: `string`):

Fin del rango, inclusive. Si se deja vacío, se usa la fecha de hoy en hora de Costa Rica. Inclusive end date. Empty means today, Costa Rica time.

## `supplierIds` (type: `array`):

Obligatorio en modo proveedor (cédulas jurídicas). En adjudicaciones, limita las líneas a esos proveedores. El modo proveedor no recorre el padrón entero. Required for supplier mode. Also filters award lines. Company IDs only; natural persons are omitted.

## `includeLines` (type: `boolean`):

En licitaciones, agrega cantidad, descripción, precio estimado y UNSPSC de cada línea. Aunque esté desactivado, las líneas se siguen usando para buscar palabras clave. Adds tender line items. Keyword search still checks them when this is off.

## `includeEvaluation` (type: `boolean`):

Agrega los factores de evaluación de ofertas y sus porcentajes. Adds the bid evaluation factors and their weights.

## `onlyNewSinceLastRun` (type: `boolean`):

Modo monitor. Guarda los identificadores ya devueltos en un Key-Value Store con nombre y no los vuelve a cobrar. Para adjudicaciones la clave es procedimiento + línea + proveedor, así una línea nueva de un cartel ya visto sí sale. Monitor mode. Stores seen ids in a named Key-Value Store. Award identity is procedure + line + supplier, so a new line on a known procedure is still returned.

## `monitorStoreName` (type: `string`):

Key-Value Store donde se guardan los resultados ya entregados. Use un nombre distinto para cada alerta. Named Key-Value Store for results already returned. Use a different name for each alert.

## `convertToUSD` (type: `boolean`):

Licitaciones: el monto estimado se convierte con el tipo de cambio de la línea o, si falta, con el tipo de cambio de venta del Ministerio de Hacienda. Adjudicaciones: se usa el monto en dólares publicado por el Observatorio. Tenders use the line's exchange rate, then the Ministry of Finance sell rate. Awards use the USD amount published by the Observatory.

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

Máximo de resultados cobrados por ejecución. El formulario sugiere 25; si se omite, el límite es 1000. Si se alcanza el máximo a cobrar de la ejecución, esta termina con éxito. Maximum charged results per run. The form suggests 25; if omitted, the cap is 1000. If the run's maximum charge is reached, the run ends successfully.

## Actor input object example

```json
{
  "mode": "licitaciones",
  "keywords": [],
  "excludeKeywords": [],
  "institutionIds": [],
  "unspscPrefixes": [],
  "procedureTypes": [],
  "onlyOpen": true,
  "supplierIds": [],
  "includeLines": true,
  "includeEvaluation": false,
  "onlyNewSinceLastRun": false,
  "monitorStoreName": "sicop-monitor",
  "convertToUSD": true,
  "maxResults": 25
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (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 = {
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("opendata-cr/costa-rica-sicop").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 = { "maxResults": 25 }

# Run the Actor and wait for it to finish
run = client.actor("opendata-cr/costa-rica-sicop").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 '{
  "maxResults": 25
}' |
apify call opendata-cr/costa-rica-sicop --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,opendata-cr/costa-rica-sicop"
        }
    }
}
```

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/hmJ35DmJmfJmujisA/builds/5iMs1aAY6bHICAZR8/openapi.json
