B
BORME API

The Spanish enrichment & monitoring layer for KYB platforms

You verify a Spanish company by its CIF/NIF. We tell you everything that has ever happened to it in the official gazette — and everything that happens next.

Honest scope, first. BORME-A does not print tax IDs, cap tables or financial statements. We are not a replacement for primary verification — we are the layer on top of it: officers, history and change events that your CIF lookup doesn't carry. For 232,300 companies we additionally hold a verified NIF, cross-referenced from official open sources (GLEIF, BDNS, AEAT) — each mapping declares its source and confidence. For the rest, the matching recipe below joins on registry keys.

What you get per company

DataDepth
Current state snapshot: status (active/dissolved/extinct/insolvency), current officers by role, sole shareholder, capital, addressderived from full history, updated every business day
Event timeline: every registered act — appointments, terminations, capital ops, address moves, insolvency phases with court & case numbersince 2009-01-02 · 9.5M events · 52 typed kinds
Person lookup: a director's name → every Spanish company & role since 200911M person-role rows, homonym flags
Change webhooks: HMAC-signed push on new events for watched companies — the only event-driven BORME feed on the marketsame-morning as the gazette
Risk signals: insolvency filings, accordion recapitalizations, mass officer exits, phoenix companies (officer with recent dead companies), mass-domiciliation address clusters, AEAT large-debtor cross-reference1.24M historical, computed daily
Risk profile: one call → deterministic 0–100 score with every factor itemized (rule-based checklist, not an opaque model)GET /v1/companies/{slug}/risk
Point-in-time state: the company as the registry knew it on any past date — officers, status, capital as of YYYY-MM-DD (fold of the event history to that day)GET /v1/companies/{slug}?as_of=2022-03-01 · audit "what we knew at onboarding"
Batch NIF lookup: one call resolves up to 100 NIFs to snapshots (matched + unmatched), for onboarding a list at oncePOST /v1/companies/by-nif
Bulk dump: the full 3.3M-company snapshot (NIF included where mapped) as gzipped CSVGET /v1/dumps/companies · regenerated nightly

Joining: NIF first, then the matching recipe

Four keys, in order of strength:

  1. GET /v1/companies/by-nif/{nif} — direct join for the 232k mapped companies; a 404 means "not mapped yet", fall through to the keys below.
  2. registral.hoja (registry sheet, e.g. M 507991) — the official per-province company identifier; stable for the company's life. If your Registradores lookup returns hoja, the join is exact.
  3. company_slug — our deterministic normalization of the legal name; resilient to accents, punctuation and suffix variants (S.L./SL).
  4. Name + province + incorporation date (all in our data) — a three-field match that resolves >99% of real lookups in practice.
GET /v1/companies/by-nif/A46103834  → snapshot by tax ID (incl. nif_source)
GET /v1/companies/{slug}            → snapshot (officers today)
GET /v1/companies/{slug}/events     → full timeline
GET /v1/companies/{slug}/network    → companies sharing officers
GET /v1/people/{name}/roles         → cross-company officer graph

Why teams pick this over building it

Integration paths

Evaluate today (no call needed): free key by email at bormeapi.com, OpenAPI docs at api.bormeapi.com/docs, pay-per-event sandbox via the Apify actor ($1/1k events).

Volume / white-label: flat-fee full feed with webhook delivery and resale rights — write to [email protected].

Explore the API Talk to us