# France Societe.com Company Scraper (`automation-lab/france-societe-com-company-scraper`) Actor

Extract public Societe.com French company profiles with SIREN/SIRET IDs, addresses, officers, legal status, NAF activity, and source URLs.

- **URL**: https://apify.com/automation-lab/france-societe-com-company-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## France Societe.com Company Scraper

Extract public French company profile data from Societe.com.

Use this Actor to collect SIREN and SIRET identifiers, addresses, legal metadata, activity codes, visible officers, public profile snippets, and Societe.com source URLs from server-rendered company pages.

It is designed for B2B enrichment, KYB checks, due diligence, sales prospecting, and CRM cleanup workflows where you need richer public web profile data than a basic registry lookup.

### What does France Societe.com Company Scraper do?

France Societe.com Company Scraper visits public Societe.com company profile pages and converts visible profile information into structured dataset records.

You can provide direct profile URLs or search terms such as SIREN numbers.

The Actor returns one dataset item per company profile.

Each item includes normalized identity fields and a copy of selected profile snippets so your downstream workflow can keep the original context.

### Who is it for?

- 🧾 KYB and compliance teams checking French company identity.
- 💼 B2B sales teams enriching French account records.
- 📊 Data teams building company intelligence pipelines.
- 🧹 RevOps teams cleaning CRM company names, addresses, and SIREN values.
- 🏦 Due-diligence analysts who need source URLs and officer snippets.
- 🧑‍💻 Developers who need Societe.com data through an API.

### Why use this scraper?

Societe.com pages combine public French company identifiers with readable business-profile context.

Official registry data is useful, but many workflows also need the profile page URL, visible legal labels, officer names, activity text, and metadata snippets.

This Actor keeps those fields in one exportable dataset.

### What data can it extract?

| Field | Description |
| --- | --- |
| `companyName` | Company name from the Societe.com profile |
| `legalName` | Legal name from structured data when available |
| `siren` | French SIREN identifier |
| `siret` | Headquarters SIRET when visible |
| `vatNumber` | VAT number when visible |
| `status` | Public status label when available |
| `legalForm` | Legal form code or label |
| `nafCode` | NAF / APE activity code |
| `activity` | Activity description |
| `foundingDate` | Company creation date from structured data |
| `address` | Formatted address |
| `officers` | Visible dirigeants / officers from structured data |
| `profileSnippets` | Additional label-value snippets visible on the page |
| `sourceUrl` | Societe.com profile URL |
| `query` | Search term that found the profile, if any |
| `scrapedAt` | Extraction timestamp |

### Input options

You can start from direct Societe.com profile URLs.

You can also provide search terms.

SIREN and SIRET numbers are the most reliable search terms because they usually resolve to highly relevant Societe.com profile results.

Company-name searches can work, but Societe.com may return broader result sets.

### Example input

```json
{
  "startUrls": [
    { "url": "https://www.societe.com/societe/apple-france-322120916.html" }
  ],
  "searchTerms": ["552100554"],
  "maxItems": 10
}
````

### Example output

```json
{
  "companyName": "APPLE FRANCE",
  "siren": "322120916",
  "siret": "32212091600208",
  "vatNumber": "FR66322120916",
  "status": "Active",
  "nafCode": "7311Z",
  "activity": "Activités des agences de publicité",
  "address": "7 PLACE D'IENA, 75016, PARIS",
  "officers": [
    { "name": "Jamie WONG", "role": "Gérant" }
  ],
  "sourceUrl": "https://www.societe.com/societe/apple-france-322120916.html"
}
```

### How much does it cost to scrape Societe.com company profiles?

This Actor uses pay-per-event pricing.

There is a small run-start charge and a per-company-profile charge for each dataset item saved.

The live Store pricing table is the billing source of truth.

For planning, keep `maxItems` low during tests and increase it once your input strategy is validated.

### How to use it

1. Open the Actor on Apify.
2. Paste Societe.com profile URLs or SIREN search terms.
3. Set `maxItems` to your desired record cap.
4. Run the Actor.
5. Export the dataset as JSON, CSV, Excel, XML, or through the API.

### Tips for best results

- Use direct profile URLs when you already know the target company.
- Use SIREN numbers for reliable discovery.
- Keep name-only searches narrow.
- Use `maxItems` to prevent broad searches from returning too many profiles.
- Store `sourceUrl` with your CRM record for auditability.
- Re-run periodically when your workflow needs fresh profile metadata.

### Search terms vs start URLs

Start URLs are deterministic.

Search terms ask Societe.com to return matching profile links.

A single search term may resolve to several companies, especially for common names or group entities.

The Actor de-duplicates profile URLs within a run.

### Integrations

You can connect the dataset to:

- HubSpot or Salesforce enrichment workflows.
- Airtable base cleanup jobs.
- Google Sheets exports for analyst review.
- BigQuery, Snowflake, or PostgreSQL company-data pipelines.
- KYB case-management tools that need source URLs.
- Zapier or Make automations triggered by finished Apify runs.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/france-societe-com-company-scraper').call({
  searchTerms: ['322120916'],
  maxItems: 5,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API usage with Python

```python
from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/france-societe-com-company-scraper').call(run_input={
    'searchTerms': ['322120916'],
    'maxItems': 5,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~france-societe-com-company-scraper/runs?token=MY-APIFY-TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"searchTerms":["322120916"],"maxItems":5}'
```

### MCP server integration

Use the Apify MCP server to call this Actor from compatible AI tools.

MCP URL:

```text
https://mcp.apify.com/?tools=automation-lab/france-societe-com-company-scraper
```

Example prompts:

- "Extract Societe.com profile data for SIREN 322120916."
- "Enrich these French company profile URLs and return SIREN, address, and officers."
- "Create a CSV-ready dataset of Societe.com company profiles for my CRM cleanup list."

### Claude Desktop MCP setup

Add the Apify MCP server to Claude Desktop with your Apify token.

Then ask Claude to run `automation-lab/france-societe-com-company-scraper` with a JSON input.

Keep small test inputs first.

### Claude Code MCP setup

Configure Claude Code to use the same Apify MCP server URL.

Then request Societe.com enrichment as part of a coding or data-cleaning workflow.

The returned dataset can be downloaded through Apify links or accessed by API.

### Legality and responsible use

This Actor extracts public pages.

You are responsible for using the data lawfully and respecting applicable privacy, database, contract, and data-protection rules.

Do not use scraped data for unlawful profiling, spam, harassment, or decisions that require a regulated data source without appropriate review.

Use reasonable run sizes and avoid unnecessary repeated requests.

### Troubleshooting

#### Why did my company-name search return unrelated companies?

Company-name searches can be broad.

Use SIREN or a direct Societe.com profile URL for higher precision.

#### Why are some fields empty?

Societe.com pages do not expose every field for every company.

The Actor returns fields that are visible in the public HTML or structured data.

#### Why did a profile URL get skipped?

The page may be unavailable, redirected to a non-profile page, or missing company identity fields.

Check the run log for the skipped URL.

### Related scrapers

Other Automation Lab actors that may complement this one:

- https://apify.com/automation-lab/company-website-contact-finder
- https://apify.com/automation-lab/linkedin-company-profile-scraper
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/france-sirene-company-registry-scraper

### Output quality notes

The Actor prefers structured JSON-LD when Societe.com provides it.

It also captures visible label-value snippets from the rendered HTML.

This gives you both normalized fields and source-context snippets.

### Performance notes

The scraper is HTTP-first and does not launch a browser.

That keeps runs lightweight and suitable for 256 MB memory.

Conservative request handling is used to reduce target-side risk.

### Dataset exports

Apify datasets can be exported as JSON, CSV, Excel, XML, RSS, or HTML table.

Use the `overview` view for analyst-friendly columns.

Use the raw JSON export when you need nested officers and snippet arrays.

### Versioning

The initial version focuses on public Societe.com company profile extraction.

Future improvements may add richer search pagination or more normalized financial fields if they remain publicly visible and reliable.

### Support

If a run fails, include the run URL, input JSON, and an example target profile URL when requesting support.

Small reproducible inputs help us diagnose target-side changes quickly.

# Actor input Schema

## `startUrls` (type: `array`):

Direct Societe.com company profile URLs, e.g. https://www.societe.com/societe/apple-france-322120916.html

## `searchTerms` (type: `array`):

Company names, SIREN/SIRET numbers, or Societe.com search queries. Direct SIREN queries are the most reliable discovery input.

## `maxItems` (type: `integer`):

Maximum number of company profile records to save across URLs and search terms.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.societe.com/societe/apple-france-322120916.html"
    }
  ],
  "searchTerms": [
    "322120916",
    "552100554"
  ],
  "maxItems": 5
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "startUrls": [
        {
            "url": "https://www.societe.com/societe/apple-france-322120916.html"
        }
    ],
    "searchTerms": [
        "322120916",
        "552100554"
    ],
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/france-societe-com-company-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 = {
    "startUrls": [{ "url": "https://www.societe.com/societe/apple-france-322120916.html" }],
    "searchTerms": [
        "322120916",
        "552100554",
    ],
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/france-societe-com-company-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 '{
  "startUrls": [
    {
      "url": "https://www.societe.com/societe/apple-france-322120916.html"
    }
  ],
  "searchTerms": [
    "322120916",
    "552100554"
  ],
  "maxItems": 5
}' |
apify call automation-lab/france-societe-com-company-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "France Societe.com Company Scraper",
        "description": "Extract public Societe.com French company profiles with SIREN/SIRET IDs, addresses, officers, legal status, NAF activity, and source URLs.",
        "version": "0.1",
        "x-build-id": "mCT9RZbx3v1B7a1bs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~france-societe-com-company-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-france-societe-com-company-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/automation-lab~france-societe-com-company-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-france-societe-com-company-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/automation-lab~france-societe-com-company-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-france-societe-com-company-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": {
                    "startUrls": {
                        "title": "🏢 Societe.com profile URLs",
                        "type": "array",
                        "description": "Direct Societe.com company profile URLs, e.g. https://www.societe.com/societe/apple-france-322120916.html",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchTerms": {
                        "title": "🔎 Search terms or SIREN numbers",
                        "type": "array",
                        "description": "Company names, SIREN/SIRET numbers, or Societe.com search queries. Direct SIREN queries are the most reliable discovery input.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum companies",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of company profile records to save across URLs and search terms.",
                        "default": 25
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
