# Spain Official Gazette Daily Summary (BOE) (`viperthruster/boe-daily-summary`) Actor

Every new law, regulation, public job call, tender and official announcement in Spain's Official State Gazette (BOE), one row per item with official links. Filter by section, ministry and keywords for daily topic alerts. Names of people are never returned.

- **URL**: https://apify.com/viperthruster/boe-daily-summary.md
- **Developed by:** [David Rincon](https://apify.com/viperthruster) (community)
- **Categories:** Business, News, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 boe items

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

## Spain Official Gazette Daily Summary (BOE)

Get every new law, decree, order, public job call, public tender and official announcement published in Spain's Official State Gazette (Boletín Oficial del Estado, BOE), as clean structured data. Each row is one item of the official daily summary, with its section, issuing department, topic heading, title, official BOE identifier and links to the official HTML, PDF and XML.

- **Topic alerts:** filter by section, department and keywords in the title, for example every grant (`subvención`) from the Ministry of Finance, or every public tender about `limpieza`.
- **Daily monitoring:** schedule it with `latest` and monitor mode to get only the items published since the last run.
- **Official and lightweight:** built on the BOE open data API, one request per day. No scraping of the full texts: just the summary metadata and the official links.
- **No personal data:** appointments, court edicts, notifications and private announcements are left out, and so is any item whose title names a person.

### Output example

```json
{
  "boeId": "BOE-A-2026-90004",
  "publicationDate": "2026-09-30",
  "issueNumber": "241",
  "sectionCode": "1",
  "sectionName": "I. Disposiciones generales",
  "departmentCode": "5140",
  "departmentName": "MINISTERIO DE HACIENDA",
  "heading": "Subvenciones",
  "title": "Real Decreto 900/2026, de 29 de septiembre, por el que se regula la concesión directa de subvenciones a entidades locales.",
  "htmlUrl": "https://www.boe.es/diario_boe/txt.php?id=BOE-A-2026-90004",
  "pdfUrl": "https://www.boe.es/boe/dias/2026/09/30/pdfs/BOE-A-2026-90004.pdf",
  "xmlUrl": "https://www.boe.es/diario_boe/xml.php?id=BOE-A-2026-90004",
  "attribution": "Basado en datos de la Agencia Estatal Boletín Oficial del Estado (https://www.boe.es)"
}
```

The item above is a made-up example. Use `boeId` to deduplicate across runs.

### Use cases

- **Legal and compliance alerts:** new laws and regulations from the ministries you follow, the day they are published.
- **Grants and public funding:** every new grant, aid program and subsidy, filtered by keyword.
- **Public procurement:** tender and award announcements from section V.A for business development.
- **Public jobs:** new calls for civil service positions and competitions (section II.B).
- **AI agents:** ask what the BOE published today about a topic and get the official links.

### Cost

You pay per item returned: US$0.002 each, so **1,000 items = US$2.00**, plus US$0.00005 per run start. A run with the default 100 results costs about US$0.20.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `dates` | array of strings | required | Publication dates as `YYYY-MM-DD`, or `latest`; up to 31. Days without a BOE (Sundays) are skipped. |
| `sections` | array | all | `1` general provisions, `2B` public jobs, `3` other provisions, `5A` public procurement, `5B` other announcements. |
| `departments` | array of strings | all | Issuing departments, or part of the name, for example `HACIENDA`; accents and case do not matter. |
| `keywords` | array of strings | all | Words the title must contain (word starts), for example `subvención` or `vivienda`. |
| `maxItems` | integer | 100 | Stop after this many results, up to 10000. A typical day has about 150 items. |
| `monitorMode` | boolean | false | Return only items not returned by a previous run with this option on. |

Filters combine: an item must match every filter you set, and any of the values within one filter.

### FAQ

**Where does the data come from?** From the official open data API of Spain's Agencia Estatal Boletín Oficial del Estado (daily summary of the BOE). Every row links to the official HTML, PDF and XML. The PDF is the authentic version.

**Why are some items missing?** To avoid personal data, the Actor leaves out section II.A (appointments and staff changes), section IV (court edicts), section V.C (private announcements), notifications and any item whose title names a person, such as an award to a named individual. It also skips any document that the BOE excludes in its robots.txt. The run summary counts both.

**Do I get the full text?** No. You get the summary metadata and the official links. Open `htmlUrl` or `pdfUrl` for the full text.

**How fresh is it?** The BOE is published Monday to Saturday early in the morning, Spanish time. With `latest` you get the most recent issue, extraordinary issues included.

**Can AI agents use it?** Yes. Input is a plain list of dates, limits are stated in the input descriptions, and a default run takes a few seconds.

### Legal

The data comes from the BOE and is reused under the reuse terms of the Agencia Estatal Boletín Oficial del Estado, which allow commercial reuse with attribution. Each row carries the required citation: "Basado en datos de la Agencia Estatal Boletín Oficial del Estado". This Actor is not affiliated with or endorsed by the BOE, and only the official BOE publication is authentic. Items that could identify people are left out and never stored in the output.

### Related Actors

- [Spanish Company Register Events (BORME)](https://apify.com/viperthruster/borme-company-events): new companies, capital changes, dissolutions and closures in Spain, from the BOE's Commercial Register gazette.

### En español

Sumario diario del BOE estructurado: leyes, reales decretos, órdenes, oposiciones, licitaciones y anuncios oficiales, una fila por disposición con sección, departamento, epígrafe, título, identificador BOE y enlaces oficiales a HTML, PDF y XML. Filtros por sección, departamento y palabras clave para alertas por tema, y modo monitor para recibir solo lo nuevo. No devuelve nombramientos, edictos, notificaciones ni anuncios particulares, ni títulos que nombren a personas. Datos de la Agencia Estatal BOE reutilizados conforme a sus condiciones.

### Changelog

- 0.1: first version.

# Actor input Schema

## `dates` (type: `array`):

BOE publication dates as YYYY-MM-DD, or latest for the most recent one; up to 31. The BOE is published Monday to Saturday; dates without one are skipped.

## `sections` (type: `array`):

Return only these BOE sections: 1 (general provisions), 2B (public jobs), 3 (other provisions), 5A (public procurement) or 5B (other announcements). Leave empty for all. Appointments (II.A), court edicts (IV) and private announcements (V.C) are never returned because they name people.

## `departments` (type: `array`):

Issuing departments as printed in the BOE, for example MINISTERIO DE HACIENDA or a part of the name such as HACIENDA; up to 50. Matches if the department name contains any of them. Accents and case do not matter. Leave empty for all.

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

Return only items whose title has a word starting with any of these, for example subvención, vivienda or IVA; up to 50. Accents and case do not matter. Leave empty for all.

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

Stop after this many items in total, up to 10000. A typical day has about 150 items after the privacy exclusions.

## `monitorMode` (type: `boolean`):

Return only items not returned by a previous run with this option on. Useful for a daily schedule with dates set to latest.

## `proxyConfiguration` (type: `object`):

Not needed: the BOE open data API is public. Leave empty to connect directly.

## Actor input object example

```json
{
  "dates": [
    "latest"
  ],
  "sections": [],
  "departments": [],
  "keywords": [],
  "maxItems": 100,
  "monitorMode": false
}
```

# Actor output Schema

## `results` (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 = {
    "dates": [
        "latest"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("viperthruster/boe-daily-summary").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 = { "dates": ["latest"] }

# Run the Actor and wait for it to finish
run = client.actor("viperthruster/boe-daily-summary").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 '{
  "dates": [
    "latest"
  ]
}' |
apify call viperthruster/boe-daily-summary --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,viperthruster/boe-daily-summary"
        }
    }
}
```

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/WoCGj7CdYezp8uUWf/builds/rQ0yaitWOjWaHFtX0/openapi.json
