French Company Profile (Sirene + Financials) – Legal Entities
Pricing
from $5.00 / 1,000 company profiles
French Company Profile (Sirene + Financials) – Legal Entities
Search French companies by name, activity, department, size or turnover, or look them up by SIREN/SIRET: legal form, headcount, seat, latest turnover and net result. Legal entities only, no people (GDPR by design). Unofficial, open data.
Pricing
from $5.00 / 1,000 company profiles
Rating
0.0
(0)
Developer
Shadow Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Security
Limited permissionsShare
French Company Profile (Sirene + Financials) – legal entities only
Call this Actor to search French companies or look them up by SIREN/SIRET in the official public company directory and get, per company: legal name, legal form, NAF activity, size and headcount band, creation date, seat municipality and the latest published turnover and net result (plus the history by year), with data-freshness dates. Use it when an AI agent or a human needs to check that a French company exists, build a list of companies by sector, department, size or turnover, or enrich SIREN numbers (for example the winners of public contracts) with their profile and financials. Legal entities only: never sole traders, never managers or any person's data (see Privacy / GDPR by design), so it cannot answer "who runs this company". One call = one answer. Typical run: 5-60 s. Empty input returns the 20 biggest active French companies.
Unofficial tool. Not affiliated with, or endorsed by, the French State, INSEE, INPI or data.gouv.fr. It reads the public company directory (API Recherche d'entreprises) and adds filters, a fail-closed privacy gate and clean field names.
Minimal input per mode
| Mode | Minimal input | What comes back |
|---|---|---|
search | {"mode": "search", "nafPrefixes": ["62"], "departments": ["31"], "minTurnover": 1000000, "maxResults": 5} | active IT-services companies in Haute-Garonne with at least 1 M EUR turnover, biggest first |
search (by name) | {"mode": "search", "query": "boulangerie", "departments": ["75"], "maxResults": 5} | companies whose own name contains the words |
lookup | {"mode": "lookup", "ids": ["383474814", "552081317"]} | one profile per SIREN/SIRET; unknown numbers, sole traders and non-public records are skipped (not charged) and counted in the run SUMMARY |
Short output (real record, 5 Nov 2026, shortened): {"siren": "383474814", "name": "AIRBUS", "status": "active", "legalFormCode": "5710", "legalForm": "SAS (simplified joint-stock company)", "activityCode": "30.30Z", "sizeCategory": "GE", "headcountBand": "10,000 employees or more", "creationDate": "1991-10-18", "seatMunicipality": "BLAGNAC", "seatDepartment": "31", "latestFinancialYear": 2024, "turnoverEur": 57412795000, "netResultEur": 2206027000, "commercialDiffusionOpposition": true, "sourceUpdatedAt": "2026-11-05T09:57:01"} (full record below; every record also carries attribution and extractedAt).
For AI agents (MCP)
- One call = one answer. Default
maxResultsis 20; keep it small and raise it only when the runSUMMARYsayscapped: true. Each returned company is billed, nothing else. - Pick the mode by what you have. You have SIREN/SIRET numbers:
lookup(giveids, nothing else). You have criteria:search. For a name, usequerywith company-name words (not a number: a 9/14-digit number inqueryis rejected with the hint to uselookup). - NAF prefixes work (
"62","62.0","56.10A"); departments are codes ("75","2A","971"); legal forms, headcount bands and size categories are closed lists (see the input schema). - Errors fail fast in the form
Field X invalid: expected Y, got Z, example W(for exampleField createdFrom invalid: expected a date YYYY-MM-DD, got "2024/01/01", example 2024-01-31.). Fix that field and call again; nothing is charged. - 0 results is not an error. The run succeeds with an empty dataset and the key-value record
SUMMARYcarriesnote: "0 results: <reason / how to widen the search>"(for example: all matches were removed by the privacy gate, or the query words are not in any company name). - Not returned, by design: managers, owners, employees, sole traders, street addresses, phone, e-mail. Do not call this Actor to find a person.
- Financials are partial. About 65 % of the companies returned in our sample have published accounts; micro/small companies may keep their accounts confidential.
latestFinancialYearandfinancialsarenull/empty when none is published.
What you get
One record per company (SIREN). Main fields: siren, name, status, legalFormCode, legalForm (label for the common codes), activityCode (NAF rev. 2) and activityCodeNaf2025, activitySection, sizeCategory (PME/ETI/GE), headcountBandCode and headcountBand (+ headcountYear), creationDate, closureDate, establishmentsOpen / establishmentsTotal, seat: seatSiret, seatMunicipality, seatMunicipalityCode, seatPostalCode, seatDepartment, seatRegion; isAssociation, isSocialSolidarityEconomy; financials: latestFinancialYear, turnoverEur, netResultEur, financials (all published years, newest first); commercialDiffusionOpposition; freshness: sourceUpdatedAt, sireneUpdatedAt, registryUpdatedAt; directoryUrl (official page of the company); attribution, extractedAt.
Example output (real run, 5 Nov 2026)
{"siren": "383474814","name": "AIRBUS","status": "active","legalFormCode": "5710","legalForm": "SAS (simplified joint-stock company)","activityCode": "30.30Z","activityCodeNaf2025": "30.31Y","activitySection": "C","sizeCategory": "GE","headcountBandCode": "53","headcountBand": "10,000 employees or more","headcountYear": "2024","creationDate": "1991-10-18","closureDate": null,"establishmentsOpen": 6,"establishmentsTotal": 11,"seatSiret": "38347481400100","seatMunicipality": "BLAGNAC","seatMunicipalityCode": "31069","seatPostalCode": "31700","seatDepartment": "31","seatRegion": "76","isAssociation": false,"isSocialSolidarityEconomy": false,"latestFinancialYear": 2024,"turnoverEur": 57412795000,"netResultEur": 2206027000,"financials": [{ "year": 2024, "turnoverEur": 57412795000, "netResultEur": 2206027000 }],"commercialDiffusionOpposition": true,"directoryUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/383474814","sourceUpdatedAt": "2026-11-05T09:57:01","sireneUpdatedAt": "2025-12-06T05:24:56","registryUpdatedAt": "2026-08-25T16:48:26"}
Who uses it
- Sales and business-development teams: build prospect lists by activity, department, size band and turnover (respect
commercialDiffusionOpposition, see below). - Suppliers, credit and KYB checks: confirm a counterparty exists, is active and what its legal form, size and latest accounts are, from a SIREN or SIRET on an invoice.
- Market analysts and journalists: count and rank companies of a sector in a territory, follow new companies (
createdFrom) or loss-making ones (maxNetResult). - Data teams and AI agents: enrich a list of SIREN numbers in one call.
Quick start
Empty input = the 20 biggest active companies. Examples:
Profitable mid-size IT companies in Haute-Garonne
{ "nafPrefixes": ["62"], "departments": ["31"], "headcountBands": ["12", "21", "22"], "minNetResult": 0, "maxResults": 100 }
Restaurants created in 2025 in Paris
{ "nafPrefixes": ["56"], "departments": ["75"], "createdFrom": "2025-01-01", "createdTo": "2025-12-31", "maxResults": 200 }
Profile of a list of SIREN / SIRET numbers
{ "mode": "lookup", "ids": ["383474814", "552081317", "35600000000048"] }
Loss-making large companies
{ "sizeCategories": ["ETI", "GE"], "maxNetResult": -1000000, "maxResults": 100 }
Filters (search mode)
| Field | Meaning |
|---|---|
query | words that must all appear in the company's own name (accents and case ignored) |
nafPrefixes | NAF/APE codes or prefixes of the main activity: "62", "62.0", "56.10A" |
departments | department codes of an establishment: "75", "2A", "971" |
legalForms, headcountBands, sizeCategories | closed lists |
createdFrom, createdTo | creation date window YYYY-MM-DD, applied after fetching (the directory has no such filter): combine with a department or NAF prefix |
onlyActive | default true |
minTurnover, maxTurnover, minNetResult, maxNetResult | EUR, on the latest published accounts; companies without accounts are then left out |
excludeProspectingOptOut | drop companies flagged commercialDiffusionOpposition |
maxResults | default 20, max 10,000. The directory exposes at most 10,000 rows per query: split bigger extractions by department or NAF prefix |
How it differs from the other company Actors
- UK Companies House Data (same publisher) covers the United Kingdom from Companies House's monthly data snapshot (with change tracking) and has filing deadlines but no turnover or net result. This Actor covers France, calls the live French public directory, and includes turnover and net result when published. Different country, source and fields; no shared data.
- French Public Contract Awards (DECP) (same publisher) tells you who won a public contract and gives the winner's SIREN. Feed those SIREN numbers to this Actor's
lookupmode to get the winner's size, activity and latest financials.
Privacy / GDPR by design
This Actor is deliberately built not to return natural persons. The filtering below is applied on purpose to respect the GDPR; it is a design choice, not a limitation to work around.
- Fail closed. A record is returned only if the directory itself says it is clearly a legal entity. Anything unknown, unreadable or missing is dropped, never guessed. Dropped records are not charged.
- Rules. Dropped: legal form category 1 (sole traders, craftsmen, traders, liberal professions, farmers) and 2 (indivisions and de-facto partnerships, which are groups of natural persons); records flagged as sole trader; records whose legal form, flag, public-diffusion status or seat is missing or not "public"; companies whose name contains the surname of one of their own natural-person managers (typically one-person companies named after their owner). Associations, companies and public bodies are kept.
- Structured fields only. The output is a fixed whitelist of fields. The directory also sends managers, street addresses and coordinates; they are never copied (managers are read in memory only for the name check above, then discarded). No person's name, address, phone or e-mail is output, and there is no free text. The company name is the legal name of a legal entity.
- Measured on real data (5 Nov 2026; 10 varied queries by activity, department, size and name; 1,000 directory rows per pass). Raw directory stream without any filter: 21.4 % of the rows were sole traders and a further 4.5 % were companies named after a manager (74.1 % kept). With the Actor's own request (it also asks the directory to exclude sole traders): 87.8 % of the 1,000 rows kept, 12.2 % dropped (11.6 % company named after a manager, 0.6 % no legal personality, none left to drop as sole traders). The share varies by query: restaurants and IT services 97-100 % kept, agriculture 80 % kept (37 % without the server-side exclusion), a common-surname name search 53 % kept.
- Not guaranteed. Detection relies on the directory's legal form and flags, which can be wrong or late. A legal entity whose name happens to be a person's name without matching a listed manager (for example a company named after a founder who is no longer a manager) is kept. The seat municipality of a small company can be a manager's home town. You remain responsible for your own use of the data, including prospecting rules:
commercialDiffusionOpposition: truemeans the company asked not to be used for commercial prospecting (about half the companies carry it); useexcludeProspectingOptOutto leave them out. - What is stored. Nothing about you beyond your own run's dataset, key-value record and logs in your Apify account. No cache of results, no requester data.
Limits and disclaimer
- Freshness: the directory is updated daily (
sourceUpdatedAt); Sirene fields can lag (sireneUpdatedAt), published accounts come with a year or more of delay (latestFinancialYear). Companies that asked to keep their accounts confidential have none. - Not included: managers/owners, shareholders, addresses of establishments, phone/e-mail, non-public (non-diffusible) companies, companies refused registration, predecessors/successors.
- Quality and speed: data is declared by companies and administrations; no warranty, check the official page (
directoryUrl) before relying on a record. The directory allows about 7 requests/s per IP; the Actor stays below and retries on HTTP 429. Search reads 25 rows per request. - Source and licence: API Recherche d'entreprises (DINUM, "Annuaire des Entreprises"), built on Sirene (INSEE), the national business register (INPI) and accounts published by INPI. The directory dataset on data.gouv.fr is published under the Licence Ouverte 2.0 (Etalab). Every record carries the attribution.
- Unofficial service, not endorsed by any public body.