Spanish Company Data

Look up a Spanish company by CIF, NIF or name in BORME-derived records, returning identity, status, current officers and recent publication acts.

Pay by wallet (x402) Spain: all company records spanish-company-data

Example

Input
{
  "nif": "A20072302"
}
Answer
{
  "nif": "A20072302",
  "status": "active",
  "address": null,
  "province": "Gipuzkoa",
  "status_raw": "Activa",
  "vat_number": "ESA20072302",
  "company_name": "CONSTRUCCIONES AMENABAR SA",
  "company_type": "S.A.",
  "jurisdiction": "ES",
  "borme_acts_count": 79,
  "tier_2_available": true,
  "registration_date": null,
  "last_borme_activity": "2026-01-15",
  "first_borme_activity": "2009-04-16",
  "total_legal_representatives": 22
}

Inputs

FieldTypeRequiredWhat it is
cifstringNoAlias for nif
nifstringNoSpanish CIF/NIF (letter + 7 digits + check char, e.g. A28015865); ES-prefixed VAT accepted
namestringNoAlias for company_name
taskstringNoFree-text alias — CIF/NIF or company name
querystringNoFree-text alias — CIF/NIF or company name
identifierstringNoAlias for nif
vat_numberstringNoAlias for nif — ES-prefix VAT format accepted (ESA28015865)
company_namestringNoSpanish company name (scored match — ambiguous names are refused, never guessed)

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
nifstring or nullUsually (present for most inputs)
statusone of active, inactive, unknown, nullAlways (present in every successful answer)
addressstring or nullSometimes (present only for some inputs)
provincestring or nullUsually (present for most inputs)
legal_formstring or nullUsually (present for most inputs)
legal_namestringAlways (present in every successful answer)
status_rawstring or nullUsually (present for most inputs)
vat_numberstring or nullUsually (present for most inputs)
company_namestringAlways (present in every successful answer)
company_typestring or nullUsually (present for most inputs)
jurisdictionstringAlways (present in every successful answer)
borme_acts_countinteger or nullUsually (present for most inputs)
tier_2_availablebooleanAlways (present in every successful answer)
ubo_availabilitystringAlways (present in every successful answer)
date_incorporatedstring or nullUsually (present for most inputs)
recent_borme_actsarrayUsually (present for most inputs)
registration_datestring or nullSometimes (present only for some inputs)
registered_addressstring or nullSometimes (present only for some inputs)
last_borme_activitystring or nullUsually (present for most inputs)
first_borme_activitystring or nullUsually (present for most inputs)
legal_representativesarray or nullUsually (present for most inputs)
primary_registration_idstring or nullUsually (present for most inputs)
tier_2_available_reasonstringAlways (present in every successful answer)
ubo_availability_reasonstringAlways (present in every successful answer)
total_legal_representativesinteger or nullUsually (present for most inputs)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
  -H "Authorization: Bearer $STRALE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "spanish-company-data",
    "inputs": {
      "nif": "A20072302"
    },
    "max_price_cents": 5
  }'

Limitations

  • Companies without BORME activity since 2009 may be absent

    Coverage comes from BORME acts published from about 2009 and includes about 2.8 million mainly small, medium and operating companies. Some major listed parent companies with no acts in that window are missing even when their subsidiaries are covered; absent companies return an error.

    What to do instead: For listed parents, use lei-lookup (GLEIF) or the CNMV's public issuer registry

  • Records are normalised by a third-party provider

    Records are derived from official BORME acts and retain references to those acts, but the normalised record is supplied by a third party rather than an official registry. Confirm critical facts against the cited act or a Registro Mercantil extract.

    What to do instead: Confirm critical facts against the BORME act cited in the record or a Registro Mercantil extract

  • Officer records depend on published appointment acts

    Officers are derived from BORME appointment, re-election and cessation acts, so missing cessation notices or appointments before coverage can leave an incorrect list. Dates of birth are not available.

  • Availability depends on a single provider

    The source is operated by a single provider without a service agreement, uptime commitment or indemnification. Its availability and the accuracy of its normalisation can affect results.

  • Free-tier quota is 200 upstream requests/day (~100 lookups)

    The source allows 200 requests per day, and each company lookup uses two requests, allowing about 100 lookups daily. Exhausted quota returns a retry-later error rather than a partial answer.

    What to do instead: Retry after the daily quota resets and reuse existing results when their age suits the task.