Resolve402 / services

Company search by NACE code

GET /api/company-search · $0.01 per call (USDC on Base or Solana, x402)

Search companies by industry (NACE code), country, region and size in official European business registers: France (Sirene), Norway (Brønnøysund), Finland (PRH/YTJ). Give one NACE code, Rev. 2 or Rev. 2.1: it is translated into each registry's own classification with the official correspondence tables (Eurostat, INSEE NAF, Statistics Finland TOL, SSB SN2025), and only companies whose main activity matches come back, up to 25, with registry ID, status, both NACE codes, local code, size band, address, licence and attribution. No sole traders. Charged only if a company is found.

Problem solved

You need a list of companies in an industry, a country, a region and a size range, from the official business register, and the NACE code your agent speaks is not the one the register uses (NAF, SN2025, TOL, Rev. 2 vs Rev. 2.1).

Use cases

Input

GET /api/company-search?country=FR|NO|FI&nace=<NACE code, e.g. 62.01 or 62.10>[&nace_rev=2|2.1&region=<FR département | NO kommune or fylke | FI municipality>&size_min=&size_max=&status=active|all&limit=1-25]

ParameterWhereTypeDescription
country (required)querystring: FR | NO | FICountry register: FR (Sirene), NO (Brønnøysund), FI (PRH/YTJ). UK coming soon.
nace (required)querystringNACE code, Rev. 2 or Rev. 2.1: class (62.01 or 6201), group (62.0) or division (62)
nace_revquerystring: 2 | 2.1Force the NACE version when the code exists in both (default: detected; Rev. 2 when ambiguous)
regionquerystringFR: département of the head office (75, 69, 2A); NO: kommunenummer (0301) or fylke (03); FI: municipality name (Helsinki)
size_minqueryintegerMinimum employees (FR: Sirene brackets lying entirely in the range; NO: exact headcount; not available in FI)
size_maxqueryintegerMaximum employees (same rules as size_min)
statusquerystring: active | allactive (default) or all (adds ceased, bankrupt, in liquidation)
limitqueryinteger1-25, default 10

Output

results [{name, registry_id (SIREN / org.nr / Y-tunnus), country, status (active, ceased, in_liquidation, bankrupt, restructuring), legal_form, nace_rev2, nace_rev21, nace_source {rev2, rev21: registry | correspondence | ambiguous}, nace_candidates (when the official correspondence splits a class), nace_match (exact | partial), local_code, local_classification (NAF rév. 2, SN2025, TOL 2025, TOL 2008), size_band, employees (NO only), address, created_at, source_url}] and meta {registry, licence, attribution, classification_sources, nace_query, total, registry_total, excluded}. Largest first in FR and NO. 404 = nothing found, not charged.

Price

$0.01 per call. Charged only if at least one company is found: 404 no_match, 400 invalid filters and 502 registry_unavailable are not charged.

Example

GET https://resolve402.dev/api/company-search?country=NO&nace=62.10&limit=3
{
  "results": [
    {
      "name": "BOUVET NORGE AS",
      "registry_id": "996756246",
      "country": "NO",
      "status": "active",
      "legal_form": "AS (Aksjeselskap)",
      "nace_rev2": "62.01",
      "nace_rev21": "62.10",
      "nace_source": {
        "rev2": "correspondence",
        "rev21": "registry"
      },
      "local_code": "62.100",
      "local_classification": "SN2025",
      "size_band": "2000-4999",
      "employees": 2270,
      "address": "Sørkedalsveien 8, 0369 OSLO",
      "created_at": "2011-02-10",
      "source_url": "https://virksomhet.brreg.no/nb/oppslag/enheter/996756246",
      "nace_match": "exact"
    }
  ],
  "meta": {
    "registry": "Enhetsregisteret, Brønnøysundregistrene (data.brreg.no)",
    "licence": "Norwegian Licence for Open Government Data (NLOD) 2.0",
    "attribution": "Contains data under the Norwegian licence for Open Government data (NLOD) distributed by the Brønnøysund Register Centre.",
    "total": 3,
    "registry_total": 17344
  }
}

Real output of lib/companysearch.ts on 2026-10-12 against data.brreg.no (abridged to one company and part of meta).

Sources

Limits

Use it

All services