# Subastas BOE Auctions Scraper (`automation-lab/subastas-boe-auctions-scraper`) Actor

Scrape Spanish BOE public auctions: deadlines, values, deposits, bids, authority details, assets, and source URLs for investor monitoring.

- **URL**: https://apify.com/automation-lab/subastas-boe-auctions-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Subastas BOE Auctions Scraper

Extract public auction opportunities from Spain's official BOE electronic auction portal.

### What does Subastas BOE Auctions Scraper do?

Subastas BOE Auctions Scraper collects structured records from `subastas.boe.es`, the official Spanish electronic auction portal managed by BOE.

It can search active auctions or scrape known BOE auction IDs and detail URLs.

The actor returns one row per auction with deadlines, values, deposits, bids, authority details, asset descriptions, and source URLs.

### Who is it for?

#### Real-estate investors

🏠 Monitor foreclosure and judicial auctions before the deadline.

#### Legal and insolvency researchers

⚖️ Track official proceedings, case references, claimed amounts, and managing authorities.

#### Asset brokers

📌 Build lead lists of properties, vehicles, and other auctioned assets.

#### Proptech and data teams

🔌 Feed official public auction data into dashboards, alerts, CRMs, and valuation tools.

### Why use this actor?

- ✅ Official public source: BOE auction portal
- ✅ HTTP-only implementation: no browser overhead
- ✅ Works with active search or known auction IDs
- ✅ Parses Spanish money values into numeric fields
- ✅ Keeps useful raw asset text for downstream enrichment
- ✅ Includes source URLs for auditability

### What data can it extract?

| Field | Description |
| --- | --- |
| `id` | BOE auction identifier |
| `url` | Canonical detail URL |
| `authority` | Managing court or authority |
| `caseNumber` | BOE case/account reference when available |
| `status` | Public auction status from search results |
| `startDateIso` | ISO start date when provided by BOE |
| `conclusionIso` | ISO deadline when provided by BOE |
| `auctionType` | Judicial, notarial, administrative, or other BOE type |
| `claimedAmount` | Claimed amount as a number |
| `auctionValue` | Auction value as a number |
| `appraisalValue` | Appraisal/tasación value as a number |
| `minimumBid` | Minimum bid amount when public |
| `bidIncrement` | Bid increment amount when public |
| `depositAmount` | Deposit amount as a number |
| `highestBid` | Public highest bid when BOE exposes it |
| `bidsCount` | Public bid count or zero when BOE says no bids |
| `assets` | Asset descriptions and addresses from the public asset tab |
| `relatedNotices` | Related BOE notice identifiers |
| `scrapedAt` | Timestamp of extraction |

### How much does it cost to scrape Subastas BOE auctions?

This actor uses pay-per-event pricing.

You pay a small start fee per run and a per-auction result fee for each dataset item saved.

Exact live pricing is shown on the Apify Store actor page.

For first tests, keep `maxItems` at the prefilled value.

### How to scrape active BOE auctions

1. Open the actor on Apify.
2. Leave `BOE auction URLs` empty.
3. Leave `BOE auction IDs` empty.
4. Set `Maximum auctions` to a small number such as `10`.
5. Keep `BOE status code` as `EJ` for auctions in progress.
6. Click **Start**.
7. Export results from the Dataset tab.

### How to scrape known auction IDs

Paste identifiers such as:

```text
SUB-JA-2025-234719
````

The actor converts them to BOE detail URLs and extracts public details.

### How to scrape BOE detail URLs

You can also paste URLs like:

```text
https://subastas.boe.es/detalleSubasta.php?idSub=SUB-JA-2025-234719
```

This is useful when you already collect BOE links from another system.

### Input options

#### BOE auction URLs

Optional list of BOE detail URLs.

#### BOE auction IDs

Optional list of BOE identifiers.

#### Maximum auctions

Caps the number of records saved.

#### BOE status code

Default is `EJ`, which means auctions currently in progress.

#### Fetch detail tabs

When enabled, the actor fetches public BOE tabs for general details, managing authority, assets, related notices, and public bid summary.

### Output example

```json
{
  "id": "SUB-JA-2025-234719",
  "url": "https://subastas.boe.es/detalleSubasta.php?idSub=SUB-JA-2025-234719",
  "authority": "JUZGADO 1 INSTANCIA 1",
  "auctionType": "JUDICIAL EN VÍA DE APREMIO",
  "auctionValue": 180000,
  "depositAmount": 9000,
  "bidsCount": 0,
  "assets": [
    {
      "title": "Datos del bien subastado",
      "description": "FINCA REGISTRAL..."
    }
  ]
}
```

### Tips for better results

- Start with active auctions (`EJ`) and low `maxItems`.
- Use auction IDs when monitoring a watchlist.
- Keep `includeDetails` enabled when you need values, deposits, and assets.
- Disable detail tabs only when you need a fast listing preview.
- Always review BOE source URLs before making investment decisions.

### Integrations

#### Auction alerts

Run the actor daily and alert when new auction IDs appear.

#### CRM enrichment

Send dataset rows to a CRM as real-estate or asset leads.

#### Spreadsheet monitoring

Export CSV files to Google Sheets or Excel for manual review.

#### Valuation pipelines

Combine BOE auction values with cadastral, property, or geocoding datasets.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/subastas-boe-auctions-scraper').call({
  maxItems: 10,
  statusCode: 'EJ',
  includeDetails: true,
});
console.log(run.defaultDatasetId);
```

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/subastas-boe-auctions-scraper').call(run_input={
    'maxItems': 10,
    'statusCode': 'EJ',
    'includeDetails': True,
})
print(run['defaultDatasetId'])
```

### API usage with cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~subastas-boe-auctions-scraper/runs?token=YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"maxItems":10,"statusCode":"EJ","includeDetails":true}'
```

### MCP usage

Use the Apify MCP server with tools scoped to this actor:

```text
https://mcp.apify.com/?tools=automation-lab/subastas-boe-auctions-scraper
```

Claude Code setup:

```bash
claude mcp add apify-subastas-boe https://mcp.apify.com/?tools=automation-lab/subastas-boe-auctions-scraper
```

Claude Desktop JSON configuration:

```json
{
  "mcpServers": {
    "apify-subastas-boe": {
      "url": "https://mcp.apify.com/?tools=automation-lab/subastas-boe-auctions-scraper"
    }
  }
}
```

Example prompts showing MCP usage:

- "Use the Apify Subastas BOE tool to run 20 active auctions and summarize the biggest deposits."
- "Use MCP to find BOE auctions ending this week and list their source URLs."
- "Run the actor through MCP for auction ID SUB-JA-2025-234719 and explain the deposit and value fields."
- "Export auction IDs and values into a table for investor review."

### Data quality notes

The actor only extracts fields that BOE makes public without logging in.

Some complementary documents or bidder actions may require a BOE account and are not scraped.

Spanish date strings are preserved, and ISO values are extracted when BOE includes them in the page.

### Limitations

- Login-only complementary files are out of scope.
- BOE can change public status codes or page markup.
- Asset text can be long because legal descriptions are verbose.
- The actor does not provide legal, investment, or valuation advice.

### Legality

This actor collects publicly visible information from an official public website.

You are responsible for using the data in compliance with applicable laws, BOE terms, and privacy obligations.

Do not use the actor to access account-only bidder workflows.

### FAQ

#### Why did I get zero results?

The selected BOE status code may have no current auctions. Try `EJ` or provide known auction IDs.

#### Why are some values null?

BOE sometimes writes values as "Sin puja mínima", "Sin tramos", or omits fields. The actor returns `null` for those numeric fields.

#### Why is the asset text long?

BOE legal descriptions often include registry, location, possession, charges, and other legal wording in one public block.

### Related scrapers

Explore related official-data actors from Automation Lab:

- https://apify.com/automation-lab/boe-scraper
- https://apify.com/automation-lab/spain-procurement-scraper
- https://apify.com/automation-lab/eu-tenders-scraper

### Changelog

#### 0.1

Initial version with active search, auction ID scraping, public detail tabs, values, deposits, bids, assets, and related notices.

### Support

If a BOE page changes or you need a field from a public tab, open an issue on the Apify actor page with a sample auction URL.

# Actor input Schema

## `startUrls` (type: `array`):

Optional BOE detail or search URLs. Leave empty to search current active auctions.

## `auctionIds` (type: `array`):

Optional identifiers such as SUB-JA-2025-234719. Useful for monitoring known auctions.

## `maxItems` (type: `integer`):

Maximum number of auction records to save. Keep this low for first tests.

## `statusCode` (type: `string`):

Public BOE search status code. EJ means auctions currently in progress.

## `includeDetails` (type: `boolean`):

Fetch public detail tabs for auction values, deposits, assets, related notices and bids.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://subastas.boe.es/detalleSubasta.php?idSub=SUB-JA-2025-234719"
    }
  ],
  "auctionIds": [
    "SUB-JA-2025-234719"
  ],
  "maxItems": 10,
  "statusCode": "EJ",
  "includeDetails": true
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://subastas.boe.es/detalleSubasta.php?idSub=SUB-JA-2025-234719"
        }
    ],
    "auctionIds": [
        "SUB-JA-2025-234719"
    ],
    "maxItems": 10,
    "statusCode": "EJ",
    "includeDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/subastas-boe-auctions-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 = {
    "startUrls": [{ "url": "https://subastas.boe.es/detalleSubasta.php?idSub=SUB-JA-2025-234719" }],
    "auctionIds": ["SUB-JA-2025-234719"],
    "maxItems": 10,
    "statusCode": "EJ",
    "includeDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/subastas-boe-auctions-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://subastas.boe.es/detalleSubasta.php?idSub=SUB-JA-2025-234719"
    }
  ],
  "auctionIds": [
    "SUB-JA-2025-234719"
  ],
  "maxItems": 10,
  "statusCode": "EJ",
  "includeDetails": true
}' |
apify call automation-lab/subastas-boe-auctions-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/subastas-boe-auctions-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Subastas BOE Auctions Scraper",
        "description": "Scrape Spanish BOE public auctions: deadlines, values, deposits, bids, authority details, assets, and source URLs for investor monitoring.",
        "version": "0.1",
        "x-build-id": "0cJOdobuYbVFloV4m"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~subastas-boe-auctions-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-subastas-boe-auctions-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/automation-lab~subastas-boe-auctions-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-subastas-boe-auctions-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/automation-lab~subastas-boe-auctions-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-subastas-boe-auctions-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "BOE auction URLs",
                        "type": "array",
                        "description": "Optional BOE detail or search URLs. Leave empty to search current active auctions.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "auctionIds": {
                        "title": "BOE auction IDs",
                        "type": "array",
                        "description": "Optional identifiers such as SUB-JA-2025-234719. Useful for monitoring known auctions.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum auctions",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of auction records to save. Keep this low for first tests.",
                        "default": 10
                    },
                    "statusCode": {
                        "title": "BOE status code",
                        "type": "string",
                        "description": "Public BOE search status code. EJ means auctions currently in progress.",
                        "default": "EJ"
                    },
                    "includeDetails": {
                        "title": "Fetch detail tabs",
                        "type": "boolean",
                        "description": "Fetch public detail tabs for auction values, deposits, assets, related notices and bids.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
