Type a few letters of a company name and get the official record back: legal name, identifier, legal form, status and registered address, from the register of the country you pick. One endpoint, one response shape and one key for Spain, France, the United Kingdom, Ireland, Poland, Norway, Finland, Sweden, Belgium, Croatia, Denmark, Estonia, Slovakia, Switzerland, Latvia, Cyprus, Romania, Lithuania, Canada, Australia, Japan, Israel, Singapore, Colombia, Taiwan, Czech Republic, Germany, Argentina, Ukraine, Serbia, Slovenia, Ecuador, Chile, Mexico, the Netherlands, Brazil and the United States; the country is a parameter. It returns legal identifiers from official registers, not brand domains or logos. The page carries a live demo that runs in the browser.
GET /companies/search takes the typed letters as name, a country and a limit, and returns a ranked list: a normalised, partial match on the registered name, best match first, each record with a match_score from 0 to 100. Give it an identifier instead of a name (a NIF, a SIREN, a Companies House number) and the same call becomes an exact lookup. Nothing is returned for natural persons.
The browser calls your own server, which holds the key and forwards the search. The React field waits 350 ms after the last keystroke, sends nothing under three characters and aborts the previous request. The server proxy in Node:
app.get('/api/company-lookup', async (req, res) => {
const q = String(req.query.q || '').trim()
const country = String(req.query.country || 'ES').toUpperCase()
if (q.length < 3) return res.json([])
const isId = /^[A-Z]{0,2}\d{4,}[A-Z]?$/i.test(q.replace(/[\s.-]/g, ''))
const params = new URLSearchParams({ country, limit: '6', [isId ? 'company_number' : 'name']: q })
const r = await fetch('https://api.prometiam.com/functions/v1/risk-api/companies/search?' + params,
{ headers: { Authorization: 'Bearer ' + process.env.PROMETIAM_API_KEY } })
if (!r.ok) return res.status(r.status === 429 ? 429 : 502).json([])
const { data } = await r.json()
res.json(data.map((c) => ({ id: c.id, name: c.company_name, number: c.company_number, form: c.legal_form,
status: c.status, city: c.city, postal_code: c.postal_code, address: c.address })))
})
The same call from a shell:
curl "https://api.prometiam.com/functions/v1/risk-api/companies/search?name=telefonica&country=ES&limit=6" -H "Authorization: Bearer $PROMETIAM_API_KEY"
Legal name (company_name), the register's own identifier (company_number), legal form (legal_form, local_legal_form and local_legal_form_name), status (status, stage and local_status), address (address, postal_code, city and region), activity (activity_code and activity_description), founding_date, share capital where the register publishes it, match_score for name searches and last_seen_date. A field the register does not publish is null, never omitted.
Spain: NIF or CIF. France: SIREN or SIRET. United Kingdom: Companies House number. Ireland: CRO number. Poland: KRS number, with NIP and REGON. Norway: organisasjonsnummer. Finland: Y-tunnus. Sweden: organisationsnummer. Belgium: enterprise number (KBO/BCE). Croatia: MBS and OIB. Denmark: CVR number. Estonia: registry code. Slovakia: IČO. Switzerland: UID. Latvia: registration number. Cyprus: registration number (HE or AE and the number). Romania: CUI.
Derived from the public tier prices, the monthly price divided by the monthly credits (a search costs 1 credit): Starter, EUR 9.99 for 1,000 credits, is about EUR 10 per 1,000 credits; Professional, EUR 29.99 for 10,000, about EUR 3; Scale, EUR 99.99 for 50,000, about EUR 2. Starter begins with a 14-day trial of 500 credits, card required, nothing charged for 14 days. A search that fires costs 1 credit, a batch item costs 1 credit, and a request that fails with a 4xx or 5xx costs nothing. To price your own volume, use the credit estimator.
The autocomplete returns company records. Officers and directors exist for Spain, France, the United Kingdom, Norway, Poland and the Czech Republic (Polish natural persons are masked by the register itself; Czech natural persons are the name and the month and year of birth only) only, on other endpoints. Ireland is company-level, with no officers yet. Finland, Sweden, Belgium, Croatia, Denmark, Estonia, Slovakia, Switzerland, Latvia, Cyprus, Romania, Lithuania, Canada, Australia, Japan, Israel, Singapore, Colombia (apart from the name of its legal representative), Taiwan, Germany, Argentina, Ukraine, Serbia, Slovenia, Ecuador, the Netherlands, Brazil and the United States are company records only, with register-change events and monitoring (Argentina has no dissolution alert, and Mexico covers its LEI-registered entities only), but no officers and no registry-compliance signal; corporate insolvency notices cover Finland, Denmark, Croatia, Sweden and Switzerland (a Swiss notice is linked to the company by its UID where the notice names it) but not Belgium, Estonia or Slovakia, and their sole traders are never served (in Denmark, sole proprietorships and estates). Denmark carries no share capital, and its status includes the register's bankruptcy state. Chile is company records only, with no events and no monitoring.
Company lookup API: validation, status and batches · Company lookup for onboarding forms, invoicing and CRMs · Free lookup tools, from the NIF lookup to the CVR lookup · API documentation for GET /companies/search · Pricing
| Form field | Response field | What it holds |
|---|---|---|
| Legal name | company_name | The registered name. |
| Tax or registration number | company_number | The register's own number for the country: NIF, SIREN, Companies House number, CRO number, KRS, organisasjonsnummer and the equivalents for the other countries. nif and siren stay as native aliases. |
| Legal form | legal_form, legal_form_family, local_legal_form, local_legal_form_name | The standard abbreviation (SA, SL, Ltd, AB...) and its family to compare forms across countries, beside the register's own code and its name where the register publishes one. |
| Status | status, stage, local_status | A standard status that means the same in every country, a lifecycle stage (active, distress, winding_up, closed or unknown) and the register's own word. |
| Address | address, postal_code, city, region | The registered address. Region is the first-level region of the register: provincia, département, county, województwo, fylke, maakunta, län, province, županija or region. |
| Activity | activity_code, activity_description | The register's own classification (CNAE, NAF, SIC, PKD, NACE); the description only where the register publishes a text. |
| Dates | founding_date, dissolution_date | Incorporation and, where it applies, dissolution. |
| Share capital | capital_amount, capital_currency | Where the register publishes it; capital_eur gives one euro figure for every country (converted at the ECB reference rate of 2 October 2026 when the register states another currency). |
| Match quality | match_score | 0 to 100 for a name search, best first. Null for an identifier lookup. |
| Freshness | last_seen_date | The most recent register publication or snapshot in which the record appeared. |
| Follow-up call | id | The record id, which is the input of the company detail endpoint (GET /companies/ followed by the id). |
| Country | Register | Identifier | Parameter |
|---|---|---|---|
| Spain (ES) | Registro Mercantil, as published in the BORME | NIF or CIF | company_number (alias nif) |
| France (FR) | INPI and Sirene | SIREN or SIRET | siren, siret |
| United Kingdom (GB) | Companies House | Company number, such as 00445790 or SC095237 | company_number |
| Ireland (IE) | Companies Registration Office (CRO) | CRO number | company_number |
| Poland (PL) | KRS, the National Court Register | KRS number; NIP and REGON also resolve | company_number, nip, regon |
| Norway (NO) | Brønnøysundregistrene | Organisasjonsnummer | company_number |
| Finland (FI) | Trade Register (PRH and YTJ) | Y-tunnus | company_number or vat |
| Sweden (SE) | Bolagsverket | Organisationsnummer | company_number or vat |
| Belgium (BE) | Crossroads Bank for Enterprises (KBO/BCE) | Enterprise number | company_number or vat |
| Croatia (HR) | Sudski registar, the court register | MBS or OIB | company_number (MBS), oib or vat |
| Denmark (DK) | Central Business Register (CVR) | CVR number | company_number or vat |
| Estonia (EE) | e-Business Register (RIK) | Registry code | company_number or vat (KMKR) |
| Slovakia (SK) | Register of Legal Entities (RPO) | IČO | company_number (no VAT number) |
| Switzerland (CH) | Zefix (Swiss central business name index) | UID | company_number, or vat (the UID with MWST, TVA or IVA) |
| Latvia (LV) | Register of Enterprises (Uzņēmumu reģistrs) | Registration number | company_number, or vat (LV plus the eleven digits) |
| Cyprus (CY) | Registrar of Companies (DRCOR) | Registration number (HE or AE and the number) | company_number (no VAT number) |
| Romania (RO) | National Trade Register Office (ONRC) | CUI | company_number, or vat (RO plus the CUI) |
| Tier | Price a month | Credits a month | Derived, per 1,000 searches |
|---|---|---|---|
| Free, 14-day trial | €0, nothing charged for 14 days | 500 | Not billed |
| Starter | €9.99 | 1,000 | About €10 |
| Professional | €29.99 | 10,000 | About €3 |
| Scale | €99.99 | 50,000 | About €2 |