Skip to main content
Glama

BORME API - Spain company registry

search_events

Search Spanish commercial-registry (BORME) events, newest first, as JSON.

All filters are optional (see each parameter); coverage starts in 2009. Returns at most limit events.

Barcelona prints some acts as free text under "Otros conceptos": recognised wording gets its own act type (act_type_raw stays "Otros conceptos"; fields.shareholder names a sole shareholder when the text does), and a same-entry revocation and reappointment becomes RE_ELECTIONS. Reprocessed events keep their event_id, but their acts can change.

Without an API key this is the free plan: only the last 7 days, stated in plan_window. Send your key in the X-API-Key header (https://bormeapi.com/account) for your plan's window (full history on pro).

An empty page may carry hidden_by_plan: matches before the plan's window (matches_before_window, matches_is_at_least, newest_hidden_date) and a note to pass on. Do not infer from an empty page that no matching events exist.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum events returned, 1-200 (default 50).
date_toNoLatest publication date, YYYY-MM-DD, inclusive.
act_typesNoAct types, e.g. INCORPORATION, APPOINTMENTS, TERMINATIONS, CAPITAL_INCREASE, DISSOLUTION, INSOLVENCY_STATUS (full list: list_act_types).
date_fromNoEarliest publication date, YYYY-MM-DD (data starts in 2009).
provincesNoBORME province names, accent- and case-insensitive, e.g. MADRID, CADIZ, VIZCAYA. An autonomous community stands for all of its provinces, e.g. Basque Country, Cataluña, Andalucía.
company_name_containsNoPart of the company name, at least 3 letters or digits, case-insensitive; % and _ match literally.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / provinces / description
      Previous value: -"BORME province names, accent- and case-insensitive, e.g. MADRID, CADIZ, VIZCAYA."New value: +"BORME province names, accent- and case-insensitive, e.g. MADRID, CADIZ, VIZCAYA. An autonomous community stands for all of its provinces, e.g. Basque Country, Cataluña, Andalucía."
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the free-plan 7-day window surfaced in plan_window, the X-API-Key header requirement, and that an empty page may carry hidden_by_plan/matches_before_window/newest_hidden_date. It also warns explicitly not to infer 'no matches' from an empty page, and notes event_id stability alongside the Barcelona 'Otros conceptos' and RE_ELECTIONS normalization quirks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and scope, and every paragraph carries actionable information. The Barcelona 'Otros conceptos' paragraph is dense and detailed relative to the rest, making the definition longer than typical, but it earns its place as interpretation guidance rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter read tool with no annotations, the description covers plan gating, empty-page semantics, and data-normalization quirks well. Since there is no output schema, the shape of a returned event is only hinted at through incidental mentions of plan_window and fields.shareholder, leaving return structure lightly under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the 6 parameters is already documented with format examples and ranges. The description adds only the general 'all filters are optional' and the 2009 coverage start; baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource+scope: 'Search Spanish commercial-registry (BORME) events, newest first, as JSON.' The ordering guarantee and output format are stated up front, and the resource (BORME events) is clearly distinct from siblings such as search_companies, company_history, and list_act_types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Says all filters are optional, notes coverage starts in 2009, and routes to list_act_types for the full act-type list and to the account page for the API key. It does not, however, say when to prefer this over siblings like company_history or recent_signals, so alternative selection is only partially addressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources