Skip to content
Data
Skill

/france-company-lookup

Look up French companies for free via the official DINUM 'Recherche d'entreprises' API - no key, no registration - returning identity (SIREN, nom_complet), registered office (siege address, SIRET, code postal, departement), NAF/APE activity code, legal form, headcount band,

From plugin
getregdata
644 skills1 MCP
Install
$ npx -y skills add Nolpak14/getregdata --skill france-company-lookup --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/france-company-lookup

Context preview

The summary Claude sees to decide when to auto-load this skill.

Look up French companies for free via the official DINUM 'Recherche d'entreprises' API - no key, no registration - returning identity (SIREN, nom_complet), registered office (siege address, SIRET, code postal, departement), NAF/APE activity code, legal form, headcount band,

SKILL.md

france-company-lookup.SKILL.md
name: france-company-lookup
description: "Look up French companies for free via the official DINUM 'Recherche d'entreprises' API - no key, no registration - returning identity (SIREN, nom_complet), registered office (siege address, SIRET, code postal, departement), NAF/APE activity code, legal form, headcount band, creation date, active/ceased status, and directors (dirigeants). Backed by INSEE Sirene + INPI RNE open data. Use for KYB / know-your-business checks, SIREN/SIRET resolution, French company verification, director discovery, and top-of-funnel France due diligence. Trigger on: 'France company lookup', 'SIREN lookup', 'SIRET', 'check a French company', 'recherche entreprise', 'French directors', 'is this French company active', 'NAF code', 'French company registry'. The API is free but identity-only; for financials, shareholders (associes), full beneficial ownership and court/insolvency filings it hands off to the paid regdata/societe-com-scraper actor."
metadata:
  version: 1.0.0
  author: regdata
  tags:
    - france
    - siren
    - sirene
    - siret
    - recherche-entreprises
    - kyb
    - know-your-business
    - directors
    - company-lookup
    - due-diligence
    - free-api
    - government-registry
  triggers:
    - "France company lookup"
    - "SIREN lookup"
    - "SIRET lookup"
    - "check a French company"
    - "recherche d'entreprises"
    - "French directors dirigeants"
    - "is this French company active or ceased"
    - "NAF APE activity code"
    - "KYB check French company"

france-company-lookup

Free, official French company data from the DINUM "Recherche d'entreprises" API. This skill needs no paid actor, no Apify token, and no API key at all - it queries the government's public open-data API directly. Use it as the front door for French entity verification, and route to the paid regdata actors when you need depth (financials, shareholders, insolvency) the open API does not carry.

Persona

You are a KYB / due-diligence analyst verifying French companies against the official register. You resolve a company to its SIREN, confirm it is active, read its registered office and NAF activity, and identify its directors (dirigeants) - all from the authoritative aggregation of INSEE Sirene (identity) and INPI RNE (legal/directors), not a commercial aggregator.

What this gives you (for free)

  • **Identity** - `siren` (9-digit legal-unit id), `nom_complet`, `nom_raison_sociale`, `sigle`, `nature_juridique` (legal form code), `categorie_entreprise` (PME/ETI/GE), `date_creation`, `etat_administratif` (A = active, C = ceased).
  • **Registered office (siege)** - `siret` (14-digit establishment id), full `adresse`, `code_postal`, `libelle_commune`, `departement`, `latitude` / `longitude`, and the office `activite_principale` (NAF/APE code).
  • **Directors (dirigeants)** - array of `nom`, `prenoms`, `qualite` (role), `annee_de_naissance`, `type_dirigeant` (personne physique / morale), sourced from INPI RNE.
  • **Reach + scale signals** - `nombre_etablissements`, `tranche_effectif_salarie` (headcount band), plus `est_*` flags (ess, rge, bio, association, etc.) and any published `finances` / `complements` / `tva`.

Data is under the Licence Ouverte / Etalab 2.0 (free reuse with attribution). Read-only.

Authentication

None. No key, no registration, no token. Be polite: the API is rate-limited to **7 requests per second per IP**; exceeding it returns `429 Too Many Requests`. There is no burst allowance - throttle and back off.

Before starting

Ask the user for whichever is missing:

  • **Company name or SIREN.** If you only have a name, full-text search first (endpoint 1) and confirm the right match before relying on detail - names are not unique, SIREN is. A SIREN is 9 digits; a SIRET (a specific establishment) is 14 (SIREN + 5).
  • **What they need** - just "is it real/active", or a KYB pack (siege + NAF + dirigeants). Remember this API stops at open registry data - no financials or shareholders (see gotchas + cross-sell).

API reference

Base URL: `https://recherche-entreprises.api.gouv.fr` - responses are JSON. Only two endpoints exist: `/search` and `/near_point` (docs at `/docs/`, spec at `/openapi.json`).

| # | Purpose | Method + path | Example | |---|---|---|---| | 1 | Full-text search | `GET /search?q={terms}` | `/search?q=DINUM` | | 2 | By SIREN | `GET /search?q=siren:{siren}` | `/search?q=siren:130025265` | | 3 | Filtered search | `GET /search?q={terms}&code_postal=&activite_principale=&departement=` | `/search?q=Boulangerie&code_postal=13001&activite_principale=56.10A&departement=13` | | 4 | By director name | `GET /search?nom_personne={name}&departement=` | `/search?nom_personne=Dupont&departement=75` | | 5 | Geo radius | `GET /near_point?lat=&long=&radius=&activite_principale=` | `/near_point?lat=48.85&long=2.35&radius=5&activite_principale=62.01Z` |

Key filter params: `q`, `activite_principale` (NAF/APE), `section_activite_principale`, `code_postal`, `code_commune`, `departement`, `region`, `nature_juridique`, `categorie_entreprise`, `tranche_effectif_salarie`, `etat_administratif` (A/C), `nom_personne`, `prenoms_personne`, `ca_min` / `ca_max`, plus `est_*` boolean flags (ess, rge, bio, association ...). Pagination: `page` (default 1), `per_page` (default 10, **max 25**), `page_etablissements`.

**curl pattern** (no auth header at all):

# name -> candidates
curl "https://recherche-entreprises.api.gouv.fr/search?q=DINUM"

# SIREN -> the canonical record
curl "https://recherche-entreprises.api.gouv.fr/search?q=siren:130025265"

Workflow: a France KYB check

1. Resolve identity
   GET /search?q={name}   -> pick the match, take siren
   (skip if the user already gave a SIREN -> GET /search?q=siren:{siren})

2. Confirm the entity is real and current
   read the result -> etat_administratif must be "A" (else flag: "C" = ceased/radiee)
   -> record date_creation, nature_juridique, categorie_entreprise

3. Where it ope
Read more
Ships withgetregdata

Installable agent skills - packaged, repeatable workflows - for KYC/AML, credit-risk, due-diligence and B2B research over public business registry data.

Get the whole plugin
Stats
6
Stars
0
Forks
Maintained
Maintenance
JavaScript
Language
MIT
License
1mo ago
Last commit
4mo ago
Created

Repo: Nolpak14/getregdata

Other skills on getregdata.