Spain Public Procurement Scraper — PLACSP Tenders & Awards
Pricing
from $0.90 / 1,000 results
Spain Public Procurement Scraper — PLACSP Tenders & Awards
Scrape Spanish public tenders from contrataciondelsectorpublico.gob.es. Extract procurement data with CPV codes, budgets, award details, winner NIF, and bid counts. Filter by region, status, and contract type. No browser needed.
Pricing
from $0.90 / 1,000 results
Rating
0.0
(0)
Developer
Rastriq — Structured data from the world
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
4
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape all public tenders from Spain's official procurement portal (contrataciondelsectorpublico.gob.es) using official ATOM/CODICE XML feeds. Extract structured data on government contracts, awards, budgets, CPV codes, winner details, and bid counts — all without a browser.
No browser required. Uses direct HTTP requests to download official XML feeds — fast, reliable, and cost-effective.
Why use this scraper
- Official source — pulls directly from Spain's PLACSP platform, the authoritative registry for all public-sector procurement
- Deep award data — extracts winner name, winner NIF (tax ID), award amount, number of bids received, and SME indicator
- Powerful filters — narrow results by CPV code, region (CCAA/NUTS), minimum budget, and tender status
- Two feed types — standard tenders (perfiles) and minor contracts (contratos menores)
- Deduplication built in — when a tender appears across multiple months, only the latest version is kept
- Fast and cheap — HTTP-only extraction processes 12,000+ tenders per run at minimal cost (~$0.03 for 500 results)
Use cases
- Government sales prospecting — find open tenders matching your company's CPV codes and regions
- Procurement intelligence — monitor awarded contracts, winning prices, and competitive dynamics
- Market research — analyze public spending patterns by sector, region, and contract size
- Competitor tracking — identify which companies win government contracts in your industry
- Compliance and transparency — audit public procurement data for journalistic or regulatory purposes
- Lead generation — build targeted lists of contracting authorities and awarded companies with NIF identifiers
Supported data sources
| Feed type | Description | Coverage |
|---|---|---|
perfiles | Standard public tenders (contratos mayores) | Full procurement lifecycle |
menores | Minor contracts (contratos menores) | Simplified procurement |
Input parameters
| Parameter | Description | Default |
|---|---|---|
monthsBack | Calendar months to download, counting back from the current month (each month ~100–300 MB ZIP) | 1 |
fromMonth | First month, YYYYMM (e.g. 202509). Overrides monthsBack | — |
toMonth | Last month, YYYYMM, inclusive. Empty = up to the current month | — |
desde / hasta | Legacy aliases of fromMonth / toMonth | — |
feedType | perfiles (standard) or menores (minor contracts) | perfiles |
cpvFilter | CPV code prefix (e.g. 45 for construction, 72 for IT) | all |
cpvMatchAll | Also match secondary and per-lot CPVs (cpv_all), not just the main CPV | false |
ccaaFilter | Region keyword in contracting authority name or NUTS code | all |
importeMin | Minimum budget in EUR (tax-exclusive) | 0 |
estadoFilter | Status: publicada, adjudicada, formalizada, resuelta, anulada | all |
maxItems | Maximum items to return (0 = unlimited) | 0 |
Output fields
Every result includes up to 21 structured fields:
| Field | Description |
|---|---|
expediente | Tender reference number |
objeto | Contract description |
organo_contratante | Contracting authority name |
nif_organo | Contracting authority tax ID (NIF) |
tipo_contrato | Contract type (Obras, Servicios, Suministros) |
procedimiento | Procedure type (Abierto, Restringido, etc.) |
estado | Status (Publicada, Adjudicada, Formalizada, etc.) |
importe_sin_iva | Budget excluding VAT (EUR) |
importe_con_iva | Budget including VAT (EUR) |
cpv_principal | Main CPV classification code |
cpv_all | All CPV codes of the tender (project and lots), main CPV first |
nuts | NUTS region code |
fecha_publicacion | Publication date |
fecha_limite | Submission deadline |
adjudicatario | Award winner name |
nif_adjudicatario | Winner tax ID (NIF) |
importe_adjudicacion | Award amount (EUR) |
num_ofertas | Number of bids received |
es_pyme | Whether the winner is an SME |
url | Direct link to tender page |
source | Data source identifier |
Example input
{"monthsBack": 3,"feedType": "perfiles","cpvFilter": "45","importeMin": 100000,"estadoFilter": "publicada"}
Downloading long periods
Each month takes a few minutes to download and parse, so a 12-month run can approach the default 1-hour timeout. Split it into one run per month (or quarter) and merge the datasets, deduplicating by expediente:
{ "fromMonth": "202507", "toMonth": "202509", "cpvFilter": "31" }
A month that is not yet published on PLACSP is skipped with a warning. If a month fails to download after 3 retries, the run ends as FAILED (after pushing the data it did collect) so a gap never goes unnoticed. The SUMMARY record in the key-value store lists per-month status and record counts.
Example output
{"expediente": "168/2025","objeto": "Proyecto constructivo de un nuevo Punto Verde O/1.301","organo_contratante": "Autoridad Portuaria de Vigo","nif_organo": "Q3667002D","tipo_contrato": "Obras","procedimiento": "Abierto","estado": "Publicada","importe_sin_iva": 124084.24,"importe_con_iva": 150141.93,"cpv_principal": "45232470","cpv_all": ["45232470"],"nuts": "ES114","fecha_publicacion": "2026-06-06","fecha_limite": "2026-07-13","adjudicatario": "","nif_adjudicatario": "","importe_adjudicacion": null,"num_ofertas": null,"es_pyme": null,"url": "https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=6Au3k6h85cH10HRJw8TEnQ%3D%3D","source": "placsp"}
Cost estimation
| Scenario | Months | Items | Duration | Estimated cost |
|---|---|---|---|---|
| Quick check | 1 | ~12,000 | ~80s | ~$0.03 |
| Quarterly scan | 3 | ~35,000 | ~4 min | ~$0.10 |
| Annual archive | 12 | ~150,000 | ~15 min | ~$0.40 |
Memory: 4,096 MB recommended (ZIP files can be 100–300 MB each).
CPV code reference
Common CPV prefixes for filtering:
| CPV prefix | Sector |
|---|---|
45 | Construction works |
72 | IT and computer services |
71 | Architectural and engineering |
50 | Repair and maintenance |
33 | Medical equipment |
34 | Transport equipment |
79 | Business services |
85 | Health and social services |
90 | Sewage and waste services |
80 | Education and training |
Notes
- Each monthly ZIP can be 50–300 MB; download time varies with server load
- Records are deduplicated by expediente (latest version kept)
- The PLACSP portal occasionally has downtime; each month is retried 3 times, and the run fails if a month still cannot be downloaded
- The next month downloads in the background while the current one is parsed
- No proxy required — datacenter IPs work fine with the official ATOM feed
- For continuous monitoring, schedule runs daily or weekly via the Apify Scheduler
Pricing
The Spain Public Procurement Scraper uses a pay-per-event (PPE) pricing model on the Apify platform:
| Cost component | Price |
|---|---|
| Actor start | $0.005 per run |
| Per result | $0.0009 per procurement record |
Example: a run returning 500 tenders costs approximately $0.005 + (500 × $0.0009) = $0.455.
The Spain Public Procurement Scraper is optimized for cost efficiency — it uses direct HTTP requests instead of a browser, keeping compute costs minimal. For large-scale procurement data extraction, the Spain Public Procurement Scraper processes thousands of records per dollar.
Related actors
Explore other Rastriq actors for business data extraction:
| Actor | Description |
|---|---|
| Europages Scraper | Scrape European B2B supplier directories from europages.com |
FAQ
Does the Spain Public Procurement Scraper require a proxy? No. The PLACSP portal serves data via official ATOM/XML feeds that work from datacenter IPs without any proxy.
How often is the data updated? The PLACSP platform publishes monthly feed archives. New tenders appear in the current month's feed within hours of publication. Schedule the Spain Public Procurement Scraper daily or weekly for continuous monitoring.
Can I filter tenders by CPV code or region? Yes. The Spain Public Procurement Scraper supports filtering by CPV code prefix, autonomous community (CCAA/NUTS), minimum budget, and tender status — all applied during extraction to minimize output size.
What is the difference between perfiles and menores feeds? The perfiles feed contains standard public tenders (contratos mayores) with the full procurement lifecycle. The menores feed contains minor contracts (contratos menores) with simplified procurement procedures and lower thresholds.
How much data does each monthly ZIP contain? Each monthly ZIP file is between 50 and 300 MB and typically contains 10,000–15,000 tender records. The Spain Public Procurement Scraper downloads, parses, and deduplicates these efficiently using streaming XML parsing.
Resumen en español
El Spain Public Procurement Scraper (Scraper de Licitaciones Públicas PLACSP) extrae datos estructurados de contratación pública del portal oficial español contrataciondelsectorpublico.gob.es. Descarga los feeds ATOM/CODICE mensuales en formato ZIP y los convierte en un dataset limpio con información detallada de cada licitación.
Datos extraídos: número de expediente, objeto del contrato, órgano de contratación, NIF, tipo de contrato, procedimiento, estado, importes (con y sin IVA), código CPV principal y todos los CPV (cpv_all), código NUTS, fechas, adjudicatario, NIF del adjudicatario, importe de adjudicación, número de ofertas recibidas e indicador PYME.
Rango de meses: fromMonth / toMonth (AAAAMM) para descargar un mes o periodo concreto; para periodos largos, lanzar un run por mes o trimestre y deduplicar por expediente.
Filtros disponibles: código CPV (por defecto solo el principal; con cpvMatchAll también los secundarios y de lotes), comunidad autónoma (CCAA/NUTS), presupuesto mínimo y estado de la licitación. Compatible con feeds de perfiles de contratante (contratos mayores) y contratos menores.
Para más información, consulte la documentación completa en inglés o ejecute el actor directamente en la plataforma Apify.