# Societe.com Scraper — French Company Register Data (`studio-amba/societe-com-scraper`) Actor

Search and extract French company data from Societe.com. Look up by company name or SIREN/SIRET and get legal name, SIREN, SIRET, VAT number, legal form, NAF code, address, founding date, status, employee count, and dirigeants (managers/directors). No login required.

- **URL**: https://apify.com/studio-amba/societe-com-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 result scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Societe.com Scraper — French Company Register Data

Search and extract French company data from Societe.com, one of the most-used public directories for French businesses (SIREN/SIRET, RCS, RNE). Look up a company by name or by an exact SIREN/SIRET and get the legal name, SIREN, SIRET, VAT number, legal form, NAF activity code, registered address, founding date, administrative status, employee headcount, and the full list of dirigeants (managers, directors, and mandated companies). No login, no API key, no cookies required.

France has more than 26 million registered business entities on file. This actor turns a plain company-name search into structured records you can drop into a CRM, a lead list, a KYC check, or a supplier-verification workflow — without opening a browser tab per company.

### How to scrape Societe.com data

This actor reads Societe.com's own site-search endpoint to resolve a query to one or more matching companies, then fetches each company's public profile page and parses the structured company record embedded in it. Because it reads the same data Societe.com serves to its own website (schema.org company markup), the output matches what a human would see on the page — legal identity, address, dirigeants — without needing a paid Societe.com subscription.

#### Search by company name

Enter a company name to find that business and close variants. Example: `TotalEnergies`, `Danone`, `Carrefour`. The actor returns the top company matches, ranked the same way Societe.com's own search ranks them, and fetches a full profile for each.

#### Look up an exact SIREN or SIRET

Paste a 9-digit SIREN or 14-digit SIRET into the search field instead of a name to jump straight to one company (or its establishment) and its head-office profile.

#### Filter by SIREN

Set the **SIREN Filter** to keep only the one company whose SIREN matches, out of a broader name search. Useful when a name search returns several similarly-named entities and you need the exact one.

#### Control how many profiles are fetched

**Max Results** caps how many company profiles the actor fetches and returns (1–20). Each result is a separate page fetch, so keep this to what you actually need — a single exact lookup only needs `1`.

### What data does Societe.com Scraper extract?

| Field | Type | Description |
|-------|------|-------------|
| **companyName** | String | Registered legal name (dénomination) |
| **siren** | String | 9-digit SIREN identifier |
| **siret** | String | 14-digit SIRET of the head office |
| **vatNumber** | String | French intra-community VAT number (TVA) |
| **legalForm** | String | Legal form label (SA, SAS, SARL, SASU, etc.) |
| **legalFormCode** | String | INSEE legal form code (nature juridique) |
| **nafCode** | String | NAF/APE activity code |
| **nafLabel** | String | Description of the NAF activity |
| **address** | String | Head-office street address |
| **postalCode** | String | Postal code |
| **city** | String | Head-office city |
| **foundingDate** | String | Date the company was founded (ISO) |
| **status** | String | Administrative status (e.g. `Active`) |
| **employeeCount** | Number | Exact reported headcount, when Societe.com exposes it for that company (otherwise `null`) |
| **directors** | Array | Dirigeants: name, role/mandate, whether it's a person or a mandated company, and that company's own SIREN |
| **url** | String | Link to the company's Societe.com profile |
| **scrapedAt** | String | ISO timestamp of extraction |

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| **Company Name / SIREN / SIRET** | String | `TotalEnergies` | Search by company name, or paste an exact SIREN/SIRET |
| **SIREN Filter** | String | — | Keep only the company with this 9-digit SIREN |
| **Max Results** | Integer | `5` | Maximum company profiles to fetch (1–20) |
| **Proxy Configuration** | Object | FR residential proxy | Proxy settings — French residential proxy recommended |

### Example output

Real output from a live run against `https://www.societe.com/societe/l-oreal-632012100.html` (directors array trimmed to 3 of 22 entries for readability):

```json
{
    "companyName": "L'OREAL",
    "siren": "632012100",
    "siret": "63201210000012",
    "vatNumber": "FR10632012100",
    "legalForm": "SA à conseil d'administration",
    "legalFormCode": "5599",
    "nafCode": "7740Z",
    "nafLabel": "Location-bail de propriété intellectuelle et de produits similaires, à l'exception des oeuvres soumises à copyright",
    "address": "14 RUE ROYALE",
    "postalCode": "75008",
    "city": "PARIS",
    "foundingDate": "1963-03-01",
    "status": "Active",
    "employeeCount": 6574,
    "directors": [
        {
            "name": "Jean-Paul AGON",
            "role": "Président du conseil d'administration",
            "type": "person",
            "siren": null
        },
        {
            "name": "Nicolas HIERONIMUS",
            "role": "Directeur général",
            "type": "person",
            "siren": null
        },
        {
            "name": "TETHYS",
            "role": "Administrateur",
            "type": "company",
            "siren": "409030053"
        }
    ],
    "url": "https://www.societe.com/societe/l-oreal-632012100.html",
    "scrapedAt": "2026-07-24T19:53:41.201Z"
}
````

### Common use cases

- Verify a French supplier or partner's legal identity (SIREN, SIRET, VAT number) before signing a contract.
- Build B2B prospecting lists enriched with legal form, NAF code, and headcount.
- KYC / KYB checks — confirm a company's dirigeants match the people you're dealing with.
- Track management changes at a competitor or portfolio company over time.
- Feed clean French company identity data into a CRM or scoring pipeline.

### Cost estimate

Pricing is pay-per-result plus a small per-run start fee. Each company profile is one dataset item, so a run costs roughly the per-result price times **Max Results**. A single exact SIREN lookup (`maxResults: 1`) is the cheapest possible run; a 5-company name search costs about 5x that. Compute cost per run is negligible — the actor makes plain HTTP requests, no browser rendering.

### Limitations

- Free-tier financial data (chiffre d'affaires, bilan, résultat) is not exposed on the public profile page — Societe.com paywalls those behind its own subscription (`/bilan/`, `/analyse-financiere/` are excluded from the site's own robots.txt for a reason). This actor returns identity, legal, and dirigeants data only, not financial statements.
- `employeeCount` reflects the exact figure Societe.com displays for that entity. Holding companies and pure administrative entities often show `null`/no headcount even when the wider group employs thousands — check the operating subsidiary instead if you need real headcount.
- Societe.com rate-limits (HTTP 429) aggressive traffic rather than hard-blocking it. The actor retries with backoff and a residential French proxy is the default — for very large batches, spread requests across multiple runs rather than pushing Max Results to its ceiling repeatedly in a tight loop.
- This actor reads the head-office profile page. It does not enumerate every secondary établissement of a multi-site company.

### Related scrapers

- **Infogreffe Scraper** — French company data (SIREN, dirigeants, legal form) from the official trade register search.
- **Pappers Scraper** — French company register lookup by name or business activity, with revenue and headcount brackets.
- **Bodacc Scraper** — official French legal announcements (company creations, procedures, changes) from BODACC.
- **Recherche Entreprises Scraper** — the official French government company-search API (DINUM), for bulk RCS/RNE lookups.

### Data source and legality

This actor reads publicly available company data that Societe.com republishes from the official French SIRENE, RCS, and RNE registers, via pages the site itself allows search engines and general crawling to access (confirmed against `societe.com/robots.txt`). It does not access any login-protected or paid area. Use the data in line with Societe.com's terms and applicable data-protection rules, particularly around the personal names of dirigeants.

# Actor input Schema

## `searchQuery` (type: `string`):

Search Societe.com by company name, or paste a SIREN (9 digits) / SIRET (14 digits) to look up an exact company. Example: 'TotalEnergies', 'L'Oreal', or '552032534'.

## `siren` (type: `string`):

Optional. Keep only the company whose 9-digit SIREN matches this value. Applied on top of the search results (combine with a name query).

## `maxResults` (type: `integer`):

Maximum number of company profiles to fetch and return. Each result requires a separate page fetch, so keep this modest.

## `proxyConfiguration` (type: `object`):

Select proxies to use. French residential proxies recommended — Societe.com rate-limits (HTTP 429) aggressive datacenter traffic.

## Actor input object example

```json
{
  "searchQuery": "TotalEnergies",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "TotalEnergies",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "FR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/societe-com-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "TotalEnergies",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "FR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/societe-com-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "TotalEnergies",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}' |
apify call studio-amba/societe-com-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=studio-amba/societe-com-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Societe.com Scraper — French Company Register Data",
        "description": "Search and extract French company data from Societe.com. Look up by company name or SIREN/SIRET and get legal name, SIREN, SIRET, VAT number, legal form, NAF code, address, founding date, status, employee count, and dirigeants (managers/directors). No login required.",
        "version": "0.0",
        "x-build-id": "Qn4GhQuVARqSy7t8J"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~societe-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-societe-com-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/studio-amba~societe-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-societe-com-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/studio-amba~societe-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-societe-com-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Company Name / SIREN / SIRET",
                        "type": "string",
                        "description": "Search Societe.com by company name, or paste a SIREN (9 digits) / SIRET (14 digits) to look up an exact company. Example: 'TotalEnergies', 'L'Oreal', or '552032534'."
                    },
                    "siren": {
                        "title": "SIREN Filter",
                        "type": "string",
                        "description": "Optional. Keep only the company whose 9-digit SIREN matches this value. Applied on top of the search results (combine with a name query)."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of company profiles to fetch and return. Each result requires a separate page fetch, so keep this modest.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to use. French residential proxies recommended — Societe.com rate-limits (HTTP 429) aggressive datacenter traffic.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "FR"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
