# Licitaciones Públicas España (PLACSP) Scraper Profesional (`datacraft_studio/spain-public-tenders-master-scraper`) Actor

Monitoriza y extrae licitaciones públicas de la Plataforma de Contratación del Sector Público de España (PLACSP). Conector B2B para descarga masiva de datos estructurados, detección de oportunidades de negocio e integración CRM/ERP. Obtén ventaja competitiva en concursos públicos.

- **URL**: https://apify.com/datacraft\_studio/spain-public-tenders-master-scraper.md
- **Developed by:** [DataCraft Studio](https://apify.com/datacraft_studio) (community)
- **Categories:** Lead generation, Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏛️ Spain Public Tenders Master Scraper (PLACSP & Contratación del Estado)

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange.svg)](https://apify.com/store)
[![Cost](https://img.shields.io/badge/Cost-~$0.20_/_1k_tenders-brightgreen.svg)]()
[![Data Format](https://img.shields.io/badge/Format-JSON_|_CSV_|_Excel-blue.svg)]()
[![Compliance](https://img.shields.io/badge/Compliance-Open_Gov_Data_Ley_9/2017-green.svg)]()

Extractor y monitor B2B de alta precisión para **todas las licitaciones, concursos y contratos públicos de España** publicados en la **Plataforma de Contratación del Sector Público (PLACSP - contrataciondelestado.es)**.

Consigue inteligencia comercial en tiempo real para tu equipo de ventas, consultoría o licitaciones antes de que venza el plazo improrrogable de presentación de ofertas.

***

### 🚀 ¿Por qué utilizar este Scraper frente a otras soluciones?

| Característica | Este Actor (PLACSP Master) | Búsqueda Manual / Web | Scrapers Genéricos |
| :--- | :---: | :---: | :---: |
| **Importes numéricos puros** | ✅ `float` (€ sin IVA y valor estimado) | ❌ Textos con caracteres | ❌ Errores de coma/punto |
| **Fechas en formato ISO 8601** | ✅ `YYYY-MM-DDTHH:MM:SS` | ❌ Formatos variados | ❌ Fechas sin hora exacta |
| **Categorización por CPV** | ✅ Mapeo automático a 20+ sectores | ❌ Código numérico crudo | ❌ Sin categorizar |
| **Enlaces directos a pliegos (PPT/PCAP)** | ✅ URLs a PDFs/ZIPs de pliegos | ❌ Requiere navegar clics | ❌ No incluidos |
| **Filtro de ventana temporal** | ✅ `dias_recientes` (ideal Make/Zapier) | ❌ Filtros manuales | ❌ Sin soporte |
| **Consumo de recursos** | ⚡ Ultra-ligero (Stream HTTP/XML) | 🐢 Lento | 💸 Alto coste de proxies |

***

### 💼 Casos de Uso Empresariales (B2B)

1. **🔔 Alertas Diarias de Nuevas Licitaciones (Bid Alerting)**:
   - Configura una ejecución recurrente cada mañana a las 8:00 AM con `dias_recientes = 1` y recibe en Slack, Telegram o Microsoft Teams las nuevas licitaciones que superen tu importe objetivo.
2. **📈 Alimentación Automatizada de CRM (HubSpot, Salesforce, Pipedrive)**:
   - Inyecta automáticamente los concursos públicos como nuevos *deals* asignados a tu equipo de desarrollo de negocio.
3. **📊 Análisis de Precios y Presupuestos del Sector Público**:
   - Conoce los presupuestos base medios que licita cada Ministerio, Consejería o Ayuntamiento para afinar tus márgenes de oferta.
4. **🏢 Monitorización de la Competencia y Adjudicaciones**:
   - Filtra por estado `ADJ` (Adjudicada) para auditar qué empresas están ganando los contratos de tu sector.

***

### 💰 Estimación de Consumo y Costes

El Actor está altamente optimizado mediante lectura asíncrona de datos en streaming, evitando el renderizado innecesario de navegadores pesados:

- **Velocidad de procesamiento**: ~500 a 1.000 licitaciones por minuto.
- **Consumo de memoria recomendado**: 512 MB o 1024 MB.
- **Coste estimado en Apify**: **~$0.15 - $0.25 por cada 1.000 licitaciones extraídas** (aprox. 0.05 Compute Units).

***

### ⚙️ Parámetros de Entrada (Input Schema)

| Campo | Tipo | Requerido | Descripción | Ejemplo |
| :--- | :---: | :---: | :--- | :--- |
| `palabras_clave` | String | No | Términos de búsqueda separados por espacio o coma | `"software ciberseguridad"` |
| `tipo_contrato` | Select | Sí | Clasificación del contrato según la LCSP | `"ALL"`, `"1"` (Obras), `"2"` (Servicios), `"3"` (Suministros), `"Concesiones"` |
| `estado_licitacion` | Select | Sí | Fase del concurso público | `"PUB"` (Abiertas), `"EVAL"` (Evaluación), `"ADJ"` (Adjudicadas), `"ALL"` |
| `min_presupuesto` | Number | No | Presupuesto base neto mínimo en € (sin IVA) | `50000` |
| `max_presupuesto` | Number | No | Presupuesto base neto máximo en € (sin IVA) | `2000000` |
| `dias_recientes` | Integer | No | Extraer solo licitaciones de los últimos N días | `1` o `7` |
| `comunidad_autonoma` | Select | Sí | Filtrar por región geográfica o ámbito | `"MADRID"`, `"CATALUNA"`, `"ANDALUCIA"`, `"ALL"` |
| `max_licitaciones` | Integer | Sí | Límite máximo de resultados a extraer | `50` (defecto: 20) |

#### Ejemplo de Configuración en JSON

```json
{
  "palabras_clave": "desarrollo software inteligencia artificial",
  "tipo_contrato": "2",
  "estado_licitacion": "PUB",
  "min_presupuesto": 30000,
  "max_presupuesto": 500000,
  "dias_recientes": 3,
  "comunidad_autonoma": "MADRID",
  "max_licitaciones": 50
}
```

***

### 📊 Formato de Datos de Salida (Dataset Output)

Cada registro del dataset se entrega completamente saneado y tipado:

```json
{
  "id_expediente": "2026/000842/TIC",
  "enlace_licitacion": "https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=94jklmn8349",
  "titulo_expediente": "Servicios de desarrollo, evolución y mantenimiento de la plataforma de administración electrónica",
  "organo_contratacion": "Ayuntamiento de Madrid - Área de Gobierno de Innovación y Transformación Digital",
  "tipo_administracion": "Local",
  "tipo_contrato": "Servicios",
  "sector_estimado": "Tecnología, Software y Telecomunicaciones (TIC)",
  "codigo_cpv": "72200000",
  "descripcion_cpv": "Servicios de programación y consultoría de software",
  "presupuesto_base_sin_iva_eur": 240000.0,
  "valor_estimado_eur": 480000.0,
  "fecha_publicacion": "2026-08-22T09:30:00",
  "fecha_limite_presentacion": "2026-09-25T14:00:00",
  "estado": "Publicada",
  "lugar_ejecucion": "Madrid (España)",
  "enlaces_pliegos": [
    "https://contrataciondelestado.es/wps/wcm/connect/PLACE_es/Site/Docs/PCAP_EXP_2026_000842.pdf",
    "https://contrataciondelestado.es/wps/wcm/connect/PLACE_es/Site/Docs/PPT_EXP_2026_000842.pdf"
  ],
  "scraped_at": "2026-08-23T12:00:00.123456+00:00"
}
```

***

### 🔗 Automatización e Integraciones (No-Code / API)

#### 1. Conexión con Make.com o Zapier

1. Añade el módulo de **Apify: Run Actor**.
2. Selecciona `spain-public-tenders-master-scraper`.
3. Pasa como entrada `"dias_recientes": 1` y tus `"palabras_clave"`.
4. Conecta la salida a tu módulo de **Google Sheets**, **Slack** o **Notion**.

#### 2. Consumo mediante Python API

```python
from apify_client import ApifyClient

client = ApifyClient("TU_API_TOKEN")

run = client.actor("tu-usuario/spain-public-tenders-master-scraper").call(
    run_input={
        "palabras_clave": "mantenimiento instalaciones",
        "tipo_contrato": "2",
        "estado_licitacion": "PUB",
        "min_presupuesto": 50000,
        "max_licitaciones": 30
    }
)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"[{item['id_expediente']}] {item['titulo_expediente']} -> {item['presupuesto_base_sin_iva_eur']} €")
```

***

### ❓ Preguntas Frecuentes (FAQ) & Cumplimiento Legal

#### ¿Es legal extraer datos de la PLACSP?

**Sí.** Todos los datos provienen de los canales oficiales de datos abiertos de la Plataforma de Contratación del Sector Público bajo los principios de publicidad, libre concurrencia y transparencia estipulados en la **Ley 9/2017 de Contratos del Sector Público (LCSP)** y la **Ley 37/2007 sobre reutilización de la información del sector público**.

#### ¿Necesito proxies residenciales de pago?

No. El Actor utiliza la infraestructura oficial de sindicación de datos abiertos en streaming, por lo que opera con los proxies estándar de Apify con mínima tasa de bloqueo.

***

## 🌐 English Section

### Overview

**Spain Public Tenders Master Scraper** is an enterprise-grade Apify Actor designed to monitor, filter, and extract public procurement opportunities, government tenders, and state contracts from Spain's official procurement registry (**PLACSP - Plataforma de Contratación del Sector Público**).

#### Key Features

- **Clean Numeric Floats**: Monetary values provided as clean floats in Euros (`presupuesto_base_sin_iva_eur`, `valor_estimado_eur`).
- **ISO 8601 Standard Dates**: Standardized publication and submission deadlines (`YYYY-MM-DDTHH:MM:SS`).
- **Smart CPV Industry Mapping**: Automatic translation of European CPV codes into readable business sectors.
- **Direct Tender Document Links**: Direct isolation of technical (PPT) and administrative (PCAP) specifications.
- **Automated Workflow Ready**: Built-in `dias_recientes` parameter for seamless scheduling in Make.com, Zapier, n8n, and CRM platforms.

# Actor input Schema

## `palabras_clave` (type: `string`):

Términos o frases para filtrar las licitaciones por título, objeto o descripción (ej: 'software', 'ciberseguridad', 'mantenimiento', 'limpieza'). Dejar vacío para obtener todas.

## `tipo_contrato` (type: `string`):

Clasificación principal del contrato según la Ley de Contratos del Sector Público (LCSP).

## `estado_licitacion` (type: `string`):

Fase procesal actual del expediente de contratación.

## `min_presupuesto` (type: `number`):

Importe neto mínimo de licitación en euros (sin IVA).

## `max_presupuesto` (type: `number`):

Importe neto máximo de licitación en euros (sin IVA).

## `dias_recientes` (type: `integer`):

Extraer únicamente licitaciones publicadas en los últimos N días (ideal para integraciones recurrentes con Make/Zapier). Dejar vacío para no filtrar por fecha.

## `comunidad_autonoma` (type: `string`):

Filtrar por ámbito geográfico o comunidad autónoma de ejecución.

## `max_licitaciones` (type: `integer`):

Número máximo de expedientes a extraer y guardar en el Dataset.

## Actor input object example

```json
{
  "palabras_clave": "software",
  "tipo_contrato": "ALL",
  "estado_licitacion": "PUB",
  "comunidad_autonoma": "ALL",
  "max_licitaciones": 20
}
```

# Actor output Schema

## `dataset` (type: `string`):

Conjunto de datos estructurados de licitaciones públicas

# 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 = {
    "palabras_clave": "software"
};

// Run the Actor and wait for it to finish
const run = await client.actor("datacraft_studio/spain-public-tenders-master-scraper").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 = { "palabras_clave": "software" }

# Run the Actor and wait for it to finish
run = client.actor("datacraft_studio/spain-public-tenders-master-scraper").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 '{
  "palabras_clave": "software"
}' |
apify call datacraft_studio/spain-public-tenders-master-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datacraft_studio/spain-public-tenders-master-scraper"
        }
    }
}

```

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/mkt6LKaWA32fX5zij/builds/BBMBqzEUM7sauxVbs/openapi.json
