OpenMercantil Legal API

Spanish mercantile-law layer (derecho mercantil): legislation corpus + article texts + act→norm bridge. Distributes the consolidated BOE legal corpus structured by OpenMercantil so LLMs and agents can cite it as a source. License: consolidated text from the BOE, reused under Ley 37/2007 (re-use of public sector information); the official version is always boe.es. Informational only — NOT legal advice. Court judgments are NOT exposed here (CENDOJ is kept as a citation-index only, per CGPJ…

Operations 7

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /api/v1/empresa/{slug}/informe-legal Generate a redacted legal report on a company · Create the authenticated user's redacted corporate legal report #
Ask an LLM
“How do I order a legal report on a Spanish company with my credits?”
“Is personal data removed from the corporate legal report?”
Tell an agent
Generate the informe legal for {company} using CSRF token {csrf_token}.
Create a redacted corporate legal report on {company}.
GET /api/v1/legal/norms List core Spanish mercantile-law norms · Index of core Spanish mercantile-law norms #
Ask an LLM
“Which Spanish commercial laws and codes are covered?”
“Where can I browse the index of mercantile-law norms?”
Tell an agent
List the mercantile-law norms.
Show the catalog of Spanish company laws and regulations.
GET /api/v1/legal/norm List law norms via the singular legacy alias · Index mercantile-law norms through the singular legacy alias #
Ask an LLM
“Does the deprecated singular /legal/norm route still list all norms?”
“Which route replaced the legacy norm index?”
Tell an agent
List norms through the legacy singular legal norm alias.
Call the deprecated /legal/norm index route.
GET /api/v1/legal/norm/{slug} Get one mercantile-law norm and its key articles · Detail of a single mercantile-law norm (with act↔norm bridge) #
Ask an LLM
“What are the key articles of a Spanish commercial law?”
“Which BORME act types does a given law govern?”
Tell an agent
Get the norm {norm}.
Show the key articles and governed BORME acts of law {norm}.
GET /api/v1/legal/article/{norm}/{n} Read the consolidated text of a law article · Consolidated text of a single article #
Ask an LLM
“Can I read the consolidated text of one article of a Spanish law?”
“Which version date does an article's text come from?”
Tell an agent
Get article {n} of {norm}.
Show the consolidated text of article {n} in norm {norm}.
GET /api/v1/legal/act-map Map every BORME act type to its governing law · BORME act type → governing norm bridge (full or single) #
Ask an LLM
“Which law governs each type of BORME registry act?”
“Can I get the full map from registry acts to legal articles?”
Tell an agent
Get the full BORME act-to-norm map.
Show which laws govern all registry act types.
GET /api/v1/legal/act-map/{acto} Find the law governing one BORME act type · Governing norm for a single BORME act type #
Ask an LLM
“Which law and articles govern a capital increase or an appointment in BORME?”
“What norm governs one specific registry act type?”
Tell an agent
Get the governing norm for the BORME act {acto}.
Look up which articles regulate the registry act {acto}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openmercantil:openmercantil-legal-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openmercantil-legal-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenMercantil Legal API
  version: 1.9.3
  summary: Versioned public-read, browser-account, billing, support and provider-callback contracts.
  description: Public JSON API for Spanish company information derived from BORME and other public sources.
  termsOfService: https://openmercantil.es/terminos-de-uso
  contact:
    name: OpenMercantil
    url: https://openmercantil.es/soporte
    email: social@openmercantil.es
  license:
    name: Source-specific upstream terms; see response catalog metadata
    url: https://openmercantil.es/terminos-de-uso
  x-publisher:
    name: OpenMercantil
    url: https://openmercantil.es/
    email: social@openmercantil.es
  x-spatial: http://publications.europa.eu/resource/authority/country/ESP
  x-temporal: 2009-01-01/..
  x-language: es
  x-dcat-catalog: https://openmercantil.es/catalog.rdf
  x-rate-limit:
    free:
      per_min: 60
      per_day: 200
      kind: anonymous-ip
    profesional:
      per_min: 120
      per_day: 5000
      kind: api-key
    max:
      per_min: 600
      per_day: 50000
      kind: api-key
    enterprise:
      per_min: 1200
      per_day: 500000
      kind: contract
  x-methodology: https://openmercantil.es/metodologia
  x-sources: https://openmercantil.es/fuentes
  x-corrections: https://openmercantil.es/correcciones
  x-contract-status: Public read, browser-account and provider-callback surfaces are explicitly separated in this contract. Operator/admin routes are excluded. The public MCP consumes only the allowlisted GET read plane.
  x-account-segment-contract:
    projection: company_public_v2 immutable corporate sidecar
    synchronous_row_cap: 500
    bounded_count_cap: 50001
    count_semantics: The segment run response count is the number of rows returned, never a global total. Dataset preview uses total_is_lower_bound=true and total_lower_bound when the bounded count reaches 50001.
    related_web_dataset_surface:
      preview_path: /mi-cuenta/datasets/preview
      export_path: /mi-cuenta/datasets/export.csv
      synchronous_export_max_rows: 500
      overflow_status: 503
      overflow_error: async_export_required
  x-company-identity-contract:
    version: '1.0'
    projection: company_public_v2 immutable generation-bound corporate sidecar
    applies_to: Every /api/v1/company/{slug}*, /api/v1/empresa/{slug}* and /api/v1/grafo/{slug} read before any report, cache, graph or dataset lookup. /api/v1/companies/compare resolves both requested subjects in one bounded company_public_v2 batch before either row is exposed; MCP company tools inherit these preflights through REST.
    resolution:
      published: canonical corporate slug admitted
      safe_alias: internally canonicalized and Content-Location emitted
      withheld: neutral 404; includes absent, personal and ambiguous/quarantined identities
      unavailable: 503 with no-store; clients must not infer absence
    search: Exact corporate CIF, exact canonical/safe-alias slug, or bounded name_prefix2 pool scored in application code. DNI/NIE and ambiguous CIFs return zero items.
    public_company_count: company_public_projection_state.row_count
servers:
- url: https://openmercantil.es
  description: Production
tags:


# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmercantil/refs/heads/main/openapi/openmercantil-legal-api-openapi.yml