# Societe.com France Company Financials Scraper (`jungle_synthesizer/societe-com-france-company-financials-scraper`) Actor

Enrich French companies by SIREN with société.com's filed financial history: multi-year revenue, net income and EBITDA, officers, RCS registration detail and legal-filing history — the depth beyond the free SIRENE identity record.

- **URL**: https://apify.com/jungle\_synthesizer/societe-com-france-company-financials-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Business, Lead generation, Other
- **Stats:** 2 total users, 1 monthly users, 50.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 record 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 France Company Financials Scraper

Enrich French companies by SIREN with filed financial history, officers, and registration
detail — the depth that sits beyond the free SIRENE/RNE identity record.

### Societe.com France Company Financials Scraper Features

- **Filed financials, not a single latest figure.** Revenue, net income, gross margin, operating
  results and EBITDA for the most recent filed fiscal year (and the prior year when both are
  available), in absolute EUR.
- **Officers (dirigeants).** Name and role for every listed director, president, manager and
  statutory auditor.
- **RCS registration detail.** Legal form, share capital, RCS number and registering commercial
  court (greffe), VAT number, founding date.
- **Legal-filing history.** Filed accounts, corporate acts and legal announcements (dépôts de
  comptes, actes, annonces légales), each with a date and type.
- **Collective-proceedings signal.** Insolvency-flavoured filings (redressement judiciaire,
  liquidation judiciaire, procédure de sauvegarde) surfaced as a dedicated field — empty for
  solvent entities, populated when a company has one on record.
- **Bulk, SIREN-keyed.** Feed in a list of SIREN numbers; get one enriched record per company.

### Who Uses French Registry Data?

- **Credit and supplier-onboarding teams** who need filed financials and insolvency history
  before extending terms to a French counterparty.
- **KYB / compliance analysts** enriching a SIREN list pulled from CRM or an internal registry
  with officer and registration detail.
- **M\&A and diligence researchers** who want a company's recent financial trajectory alongside
  its legal-filing timeline in one export.

### How Societe.com France Company Financials Scraper Works

1. Provide a list of 9-digit SIREN numbers.
2. The actor resolves each SIREN to its société.com company profile and extracts the identity,
   financial, officer and filing data published there.
3. Output is one row per SIREN — company identity, filed financials, officers and filing history
   in a single record.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `sirens` | array of strings | 9-digit SIREN numbers to look up. Each SIREN produces one output record. |
| `maxItems` | integer | Maximum number of SIRENs to process from the list above. |

### Societe.com France Company Financials Scraper Output Fields

| Field | Description |
|-------|-------------|
| `siren` | 9-digit SIREN — canonical French company identifier. |
| `siret_head_office` | 14-digit SIRET of the registered head office (siège social). |
| `legal_name` | Legal company name (raison sociale). |
| `legal_form` | Legal form label (SA, SAS, SARL, SCI, etc.). |
| `registration_date` | Date the entity was founded/registered (YYYY-MM-DD). |
| `rcs_number` | RCS registration reference: SIREN + registering commercial court. |
| `greffe` | Commercial court (greffe) of registration. |
| `ape_naf_code` | APE/NAF industry code. |
| `ape_naf_label` | Human-readable label for the APE/NAF code. |
| `share_capital_eur` | Most recent declared share capital (EUR). |
| `vat_number` | TVA intracommunautaire (EU VAT number). |
| `address` / `postcode` / `city` / `department` | Registered head-office address. |
| `status` | Administrative status: Active, Radiée, En liquidation, etc. |
| `closure_date` | Date of cessation, if closed. Empty for active entities. |
| `employee_band` | Published employee headcount band (tranche d'effectif). |
| `officers` | Officers, one entry per row: `"NAME (role)"`. |
| `financials` | Filed fiscal-year financials, one entry per row. Empty when the entity has never filed accounts. |
| `filing_history` | Filed documents and legal acts, one entry per row: `"YYYY-MM-DD | TYPE"`. |
| `collective_proceedings` | Insolvency-flavoured filings, one entry per row. Empty for entities with no such filing. |
| `establishments_count` | Number of establishments linked to this SIREN. |
| `source_url` | Canonical profile URL for this SIREN. |

### FAQ

#### What data sources does this scraper use?

The public company-profile pages published on société.com, keyed by SIREN.

#### Do I need any API keys?

No — just a list of SIREN numbers.

#### What SIRENs can I look up?

Any SIREN in the French RCS/SIRENE registry, including radiated (closed) entities.

#### Does this include shareholders or a valuation estimate?

No. Those two data points are sold as a separate paid product on the source site itself and are
not part of the public company profile — they are intentionally not included here rather than
shipped as fields that would always come back empty.

#### How many years of financials are included?

The most recent filed fiscal year, plus the prior year when the source page shows both. Some
small entities (particularly sole traders) have never filed accounts — for those, `financials`
is an empty array rather than a fabricated row.

#### Can I resume a large batch across runs?

Yes. Pass the `resumeCursor` value from a run's Output as the `resumeCursor` input on your next
run to continue from the same request queue instead of re-processing SIRENs you already paid for.

### Need More Features?

Contact us via the Apify platform with your specific requirements.

### Why Use Societe.com France Company Financials Scraper?

Free registries (SIRENE/RNE) stop at company identity: name, address, NAF code, officers. This
actor adds the layer most French company-data buyers actually pay for — filed multi-year
financials, RCS registration detail and legal-filing history — for a bulk list of SIRENs in one
export.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

## `sirens` (type: `array`):

9-digit SIREN numbers of the French companies to look up (from your own list, SIRENE, or a prior run). Each SIREN produces one output record.

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

Maximum number of SIRENs to process from the list above.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "sirens": [
    "552032534"
  ],
  "maxItems": 10
}
```

# Actor output Schema

## `results` (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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "sirens": [
        "552032534"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/societe-com-france-company-financials-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "sirens": ["552032534"],
    "maxItems": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "sirens": [
    "552032534"
  ],
  "maxItems": 10
}' |
apify call jungle_synthesizer/societe-com-france-company-financials-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/societe-com-france-company-financials-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/D1GgOzPIwuw1ZLx8s/builds/NoHhWmCTsDivc8eVM/openapi.json
