DEV Community

Peter
Peter

Posted on

How to Map French Company Director Networks: Beyond SIRENE and INPI APIs

How to Map French Company Director Networks: Beyond SIRENE and INPI APIs

If you do due diligence on French companies, you've probably hit the wall with the official APIs. France actually has decent open data -- SIRENE gives you company registration details, INPI RNE gives you registry filings, and data.gouv.fr has a search endpoint. But here's what none of them tell you: who the directors actually are, what other companies they run, and how the money flows between related entities.

That gap -- director network mapping -- is where manual research starts eating hours and enterprise subscriptions start eating budget. Here's a practical approach using Societe.com, France's largest free company data aggregator.

What the Official French APIs Actually Give You

Let's be clear about what's available for free:

Source Gives You Doesn't Give You
API SIRENE (INSEE) Company name, SIREN/SIRET, NAF code, legal form, address, headcount bracket, creation date Director names, financials, shareholders, subsidiaries, brands
INPI RNE Registry filings, legal events, statute changes Simplified financials, director cross-references, corporate network
data.gouv.fr Recherche Text search across company names, addresses, elected officials Structured financial data, network relationships
BODACC Insolvency and commercial announcements Aggregated company profiles, director role history

These are useful for basic identity verification. If you just need to confirm a SIREN exists and matches a legal form, the official APIs work fine. But for anything approaching real due diligence, you hit the ceiling fast.

The Three Things Due Diligence Actually Needs

Real KYC/AML and M&A workflows need three layers of information that the official APIs don't provide:

1. Director Identity with Roles

Not just "who is the president" -- you need to know roles (President, Directeur General, Administrateur), tenure, and whether the same person shows up across multiple entities under different titles. A person might be "President" at one SAS and "Gerant" at another SARL -- the official APIs don't connect these.

2. Financial Performance in Context

SIRENE tells you a company exists since 2018. It doesn't tell you their revenue dropped 40% last year, their net result went negative, or their equity is thinning. French companies file financial statements, but accessing and parsing them at scale requires either an expensive subscription or scraping.

3. Corporate Network Topology

This is the one that matters most for risk assessment: who owns whom, which directors sit on which boards, and whether the corporate structure reveals hidden control relationships. A supplier that looks independent on paper might share three directors with a sanctioned entity -- and you'd never know from the official APIs alone.

Societe.com as the Aggregation Layer

Societe.com -- France's largest free company data aggregator -- pulls from INSEE, INPI, BODACC, and the Registre du Commerce to build combined profiles. For any French company, you get:

  • Identity: SIREN, SIRET, legal form (SAS, SARL, SA, etc.), NAF code, incorporation date, address
  • Directors: Full names with roles (President, Directeur General, Administrateur, Commissaire aux Comptes), not censored
  • Simplified Financials: Revenue (chiffre d'affaires), net result (resultat net), total assets, equity -- the headline numbers from filed statements
  • Shareholders: Who owns the company and at what percentage
  • Subsidiaries: What entities this company controls
  • Brands: Registered trademarks and commercial names
  • Director Network: Which other companies each director is associated with

The killer feature is the last one: for any director, you can see every other company they're connected to. This is what turns a single-company lookup into a network investigation.

Practical Example: Spotting Hidden Risk

Here's a real pattern compliance teams encounter:

You're vetting a French supplier, "TechLogistique SAS." The SIRENE API confirms it exists and has a valid SIREN. Everything checks out at the surface level.

But when you pull the Societe.com profile, you discover:

  • The President of TechLogistique is also Administrateur at two other companies
  • One of those companies filed for redressement judiciaire (restructuring) 8 months ago
  • The President holds 35% of TechLogistique but 60% of the troubled entity
  • A subsidiary of TechLogistique shares a Commissaire aux Comptes with a company that was liquidated last year

None of this surfaces from the official APIs. It's all public information, but it lives in separate silos that Societe.com connects.

Getting This Data Programmatically

Manually looking up companies on Societe.com works for occasional checks. But if you're screening 50 counterparties, onboarding new clients, or building an automated compliance pipeline, you need programmatic access.

Societe.com has no API. The site uses anti-bot detection and rate limiting that makes conventional scraping difficult. Here's how to automate it:

Using the Apify Actor (Node.js)

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('regdata/societe-com-scraper').call({
    searchType: 'siren',
    queries: ['830657001', '524838522'], // SIREN numbers
    includeDirectors: true,
    includeFinancials: true,
    maxResults: 2
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
Enter fullscreen mode Exit fullscreen mode

Output Structure

Each result returns structured JSON:

{
    "siren": "830657001",
    "siret": "83065700100017",
    "companyName": "TechLogistique",
    "legalForm": "SAS",
    "nafCode": "6202A",
    "nafLabel": "Conseil en systemes et logiciels informatiques",
    "address": {...},
    "directors": [
        {
            "name": "Jean Martin",
            "role": "President",
            "otherCompanies": ["524838522", "912345678"]
        },
        {
            "name": "Marie Dubois",
            "role": "Directeur General",
            "otherCompanies": ["789012345"]
        }
    ],
    "financials": {
        "revenue": 2450000,
        "netResult": 182000,
        "fiscalYear": 2024
    },
    "shareholders": [
        {"name": "Jean Martin", "ownership": "35%"},
        {"name": "Holding Alpha SAS", "ownership": "65%"}
    ],
    "subsidiaries": [
        {"name": "TechLogistique Services", "siren": "912345678"}
    ]
}
Enter fullscreen mode Exit fullscreen mode

Using Python

from apify_client import ApifyClient

client = ApifyClient(token='YOUR_APIFY_TOKEN')

run_input = {
    "searchType": "companyName",
    "queries": ["TechLogistique"],
    "includeDirectors": True,
    "includeFinancials": True,
    "maxResults": 5
}

run = client.actor("regdata/societe-com-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['companyName']} — Revenue: €{item['financials']['revenue']:,}")
    for director in item['directors']:
        print(f"  {director['name']} ({director['role']})")
        print(f"    Also directs: {len(director['otherCompanies'])} other companies")
Enter fullscreen mode Exit fullscreen mode

Real Use Cases

KYC/AML Onboarding Automation

The EU's 6th Anti-Money Laundering Directive requires enhanced due diligence on beneficial owners and control structures. For French counterparties, this means verifying not just who the directors are, but whether their network reveals hidden risks. Integrate Societe.com lookups into your onboarding pipeline to flag entities with directors connected to sanctioned, insolvent, or high-risk companies.

Competitive Intelligence

Map a competitor's corporate structure in minutes: pull their Societe.com profile, trace every director to their other companies, then pull those companies' profiles. You'll discover subsidiaries, joint ventures, and related entities that don't appear in basic company searches. The director network IS the org chart.

M&A Due Diligence

Before acquiring a French company, map every entity connected to its directors and shareholders. A target company might look clean, but its directors' other ventures could carry litigation risk, environmental liability, or regulatory exposure that impacts the deal.

Supplier Risk Monitoring

Set up recurring scrapes of your French suppliers' profiles. Flag changes in directors (people leaving en masse is a warning sign), declining revenue trends, or new subsidiaries appearing that might indicate restructuring.

Competitor Landscape

Solution Approach Cost Director Networks
API SIRENE (official) Free API Free No
Pappers Freemium platform Free tier limited, paid from ~19€/mo Partial
Ellisphere / Altares Enterprise data provider Subscription, typically 500€+/mo Yes, but expensive
Societe.com (manual) Free website Free Yes, but one at a time
Societe.com via Apify Pay-per-result API $0.005/result Yes, programmatic

The pay-per-result model makes this viable for teams that do occasional but important French company checks -- you're not paying a monthly subscription for something you use 20 times a month.

Important: Residential Proxy Required

Societe.com's anti-bot protection (DataDome) will block datacenter IPs. The Apify actor requires a residential proxy, which means you need a paid Apify plan. This is not a free-tier-friendly actor, and that's worth knowing upfront. The proxy cost is bundled into Apify's platform pricing, not billed separately.

Getting Started

  1. Apify Store: Societe.com Company Scraper
  2. Input: Search by SIREN or company name, with optional director and financial data toggles
  3. Output: Structured JSON with identity, directors, financials, shareholders, subsidiaries
  4. Pricing: $0.005 per result on the Free plan, $0.003 on paid plans

Start with a single SIREN lookup to understand the data structure, then scale up to batch processing once you've confirmed the output matches your due diligence requirements.


The official French APIs are good at confirming a company exists. They're terrible at telling you who's really running it and what else they're involved with. That gap is where the real due diligence work happens -- and where automation saves the most time.

Top comments (0)