# Spanish Company Feed — BORME Registry Acts as Clean JSON (`jdepablos/borme-company-feed`) Actor

Daily structured feed of Spain's Companies Registry (BORME): incorporations with purpose/address/capital, appointments, dissolutions, insolvencies and more. Official source, parsed per act. Built for lead-gen and AI agents.

- **URL**: https://apify.com/jdepablos/borme-company-feed.md
- **Developed by:** [Juan de Pablos](https://apify.com/jdepablos) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 company acts

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Spanish Company Feed — BORME Registry Acts as Clean JSON

**Every company event in Spain, structured.** Daily feed of the official Spanish Companies Registry gazette (BORME): incorporations, appointments, capital increases, dissolutions, insolvencies — parsed into one clean JSON record per act, straight from the official source.

The official gazette publishes semi-structured text per province. This Actor turns it into data you can filter, join and act on: **"give me every company incorporated in Madrid yesterday, with purpose, address and capital."**

### What you get per act

```json
{
  "bormeId": "BORME-A-2026-125-28",
  "date": "2026-07-02",
  "province": "MADRID",
  "companyName": "VENUM CAPITAL SL",
  "actTypes": ["constitucion"],
  "constitution": {
    "startDate": "9.06.26",
    "purpose": "64.2 — Actividades de sociedades holding...",
    "address": "C/ EXAMPLE 1, PISO 2 (MADRID)",
    "capitalEur": 3000
  },
  "registryData": "S 8, H M 883714, I/A 1 (25.06.26)",
  "rawText": "Constitución. Comienzo de operaciones: 9.06.26. Objeto social: ..."
}
```

Real numbers from one edition: ~30 provinces, **~139 new incorporations in Madrid alone**, 19 act types classified, ~98% of acts typed (the rest keep their full official text).

### Use cases

- **Lead generation**: new incorporations by province and business purpose — contact them before your competitors know they exist.
- **KYC / credit risk**: dissolutions, insolvencies (`concurso`), capital reductions and registry-sheet closures for companies you monitor.
- **Market intelligence**: who is incorporating in which sector (CNAE in the purpose), capital trends by region.
- **AI agents**: a daily structured feed of Spanish corporate events, one tool call away.

### Act types

`constitucion` · `nombramientos` · `ceses` · `revocaciones` · `reelecciones` · `ampliacion-capital` · `reduccion-capital` · `disolucion` · `extincion` · `concurso` · `cambio-domicilio` · `cambio-objeto` · `cambio-denominacion` · `fusion` · `escision` · `transformacion` · `unipersonalidad` · `cierre-hoja` · `modificaciones-estatutarias` · `fe-de-erratas` · `otros`

### Input

| Field | Description |
|---|---|
| `date` | Edition date (YYYY-MM-DD). Defaults to today; automatically falls back to the latest edition (BORME is published Mon-Sat) |
| `provinces` | e.g. `["MADRID", "BARCELONA"]` — empty for all of Spain |
| `actTypes` | e.g. `["constitucion", "concurso"]` — empty for all |
| `companies` | Watchlist: only acts whose company name contains one of these strings |
| `maxActs` | Cap for cheap test runs (0 = no limit) |

### Data & compliance

- **Official source**: AEBOE open-data API (boe.es) — the legally mandated public gazette. No scraping of private sites, no anti-bot games, stable format.
- **GDPR-minimized**: structured fields are company-level only (name, act, purpose, address, capital, registry data). Natural-person names are never extracted into structured fields; they only appear inside `rawText`, which is a verbatim quote of the official gazette.
- **Auditable**: every record carries its official gazette identifier (`bormeId`).

### Use with AI agents (MCP)

This Actor is exposed as a tool on the [Apify MCP Server](https://mcp.apify.com):

```json
{
  "mcpServers": {
    "borme-company-feed": {
      "url": "https://mcp.apify.com?tools=jdepablos/borme-company-feed",
      "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
    }
  }
}
```

### Pricing

Pay per event: **a flat fee per act returned** — you pay for exactly the data you filter for, nothing else. Failed provinces are reported and never charged.

### FAQ

**When is new data available?** The BORME is published every working day (Mon-Sat) early in the morning, Spanish time. Run the Actor daily after ~07:30 Europe/Madrid.

**Why do some acts have `actTypes: ["otros"]`?** ~2% of acts use rare phrasings ("Otros conceptos", special proceedings). They are still delivered with their full official text so you never lose data.

**Can I monitor specific companies?** Yes — pass `companies: ["ACME", "GLOBEX"]` and only acts from matching company names are returned (and charged). Combine with a daily schedule for a KYC / credit watch.

### More data tools by this developer

- [eBay Sold Price Appraiser — real market value from confirmed sales](https://apify.com/jdepablos/ebay-sold-price-appraiser)
- [Second-hand Deal Scanner ES — Vinted/Wallapop/Milanuncios deals vs eBay sold](https://apify.com/jdepablos/second-hand-deal-scanner-es)
- [Spain Public Auctions (BOE) — judicial auctions with market comparison](https://apify.com/jdepablos/spain-boe-auctions)
- [Trademark Watch (TMview) — new filings & opposition deadlines](https://apify.com/jdepablos/trademark-watch-tmview)

# Actor input Schema

## `date` (type: `string`):

YYYY-MM-DD. Defaults to today; if there is no edition that day (Sundays/holidays), the latest one within 5 days back is used.

## `provinces` (type: `array`):

Filter by province name as published (e.g. \["MADRID", "BARCELONA"]). Empty = all of Spain (~30 provinces with acts per edition).

## `actTypes` (type: `array`):

Filter by act type. Empty = all.

## `companies` (type: `array`):

Only return acts whose company name contains one of these strings (accent/case-insensitive), e.g. \["ACME", "GLOBEX"]. Combine with a daily schedule to monitor specific companies (KYC / credit watch).

## `maxActs` (type: `integer`):

Stop after this many acts (0 = no limit). Useful for cheap test runs.

## Actor input object example

```json
{
  "provinces": [
    "MADRID"
  ],
  "actTypes": [
    "constitucion"
  ],
  "maxActs": 0
}
```

# 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 = {
    "provinces": [
        "MADRID"
    ],
    "actTypes": [
        "constitucion"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jdepablos/borme-company-feed").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 = {
    "provinces": ["MADRID"],
    "actTypes": ["constitucion"],
}

# Run the Actor and wait for it to finish
run = client.actor("jdepablos/borme-company-feed").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 '{
  "provinces": [
    "MADRID"
  ],
  "actTypes": [
    "constitucion"
  ]
}' |
apify call jdepablos/borme-company-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jdepablos/borme-company-feed",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RC1r79kWy0gkYaqdt/builds/YfwmZx8G1sAu9Dnpv/openapi.json
