data.gouv.fr API: Get French company
Looks up a French company by name, SIREN or SIRET and returns its registration, directors and latest public financial figures. Financial figures are null when not published; a city or postcode helps pick the right namesake.
Unofficial. Not affiliated with or endorsed by data.gouv.fr.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Company, required
company Company name, nine-digit SIREN, or 14-digit SIRET, e.g. Doctolib or 794598813.
443007778
- City or Postcode optional
city_or_postcode City or five-digit postcode to distinguish namesakes, e.g. Clermont-Ferrand or 63000.
(default)
Input as JSON
{ "company": "443007778"}Output
{ "siren": "443007778", "status": "closed", "currency": "EUR", "directors": [ { "name": "BENJAMIN MICHELIN", "role": "Associé indéfiniment responsable" }, { "name": "DANIEL MARCEL MICHELIN", "role": "Liquidateur" }, { "name": "FANNY MICHELIN", "role": "Associé indéfiniment responsable" } ], "page_link": "https://annuaire-entreprises.data.gouv.fr/entreprise/michelin-443007778" , "legal_form": "Autre société civile", "legal_name": "MICHELIN", "trade_names": [], "closing_date": "2023-10-31", "creation_date": "2002-06-04", "main_activity": "Location de terrains et d’autres biens immobiliers", "financial_year": null, "latest_revenue": null, "head_office_siret": "44300777800030", "latest_net_income": null, "head_office_address": "1 RUE VERGNETTE DE LAMOTTE 21200 BEAUNE", "active_establishments": 0, "naf_ape_activity_code": "68.20B", "employee_headcount_year": null, "employee_headcount_range": null}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"annuaire-entreprises.data.gouv.fr/get_company","input":{"company":"443007778"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "annuaire-entreprises.data.gouv.fr/get_company" , "input": { "company": "443007778" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "annuaire-entreprises.data.gouv.fr/get_company" , "input": { "company": "443007778" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run annuaire-entreprises.data.gouv.fr/get_company# with {"company":"443007778"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "company" ], "properties": { "company": { "type": "string", "description": "Company name, nine-digit SIREN, or 14-digit SIRET, e.g. Doctolib or 794598813." }, "city_or_postcode": { "type": "string", "default": "", "description": "City or five-digit postcode to distinguish namesakes, e.g. Clermont-Ferrand or 63000." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "legal_name", "trade_names", "siren", "head_office_siret", "status", "closing_date", "head_office_address", "main_activity", "legal_form", "creation_date", "employee_headcount_range", "employee_headcount_year", "active_establishments", "directors", "latest_revenue", "latest_net_income", "financial_year", "currency", "page_link", "naf_ape_activity_code" ], "properties": { "siren": { "type": "string" }, "status": { "enum": [ "active", "closed" ], "type": "string" }, "currency": { "enum": [ "EUR" ], "type": "string" }, "directors": { "type": "array", "items": { "type": "object", "required": [ "name", "role" ], "properties": { "name": { "type": "string" }, "role": { "type": "string" } }, "additionalProperties": false } }, "page_link": { "type": "string" }, "legal_form": { "type": [ "string", "null" ] }, "legal_name": { "type": [ "string", "null" ] }, "trade_names": { "type": "array", "items": { "type": "string" } }, "closing_date": { "type": [ "string", "null" ] }, "creation_date": { "type": [ "string", "null" ] }, "main_activity": { "type": [ "string", "null" ] }, "financial_year": { "type": [ "integer", "null" ] }, "latest_revenue": { "type": [ "number", "null" ] }, "head_office_siret": { "type": [ "string", "null" ] }, "latest_net_income": { "type": [ "number", "null" ] }, "head_office_address": { "type": [ "string", "null" ] }, "active_establishments": { "type": [ "integer", "null" ] }, "naf_ape_activity_code": { "type": [ "string", "null" ], "x-fous-developer": true }, "employee_headcount_year": { "type": [ "integer", "null" ] }, "employee_headcount_range": { "type": [ "string", "null" ] } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
annuaire-entreprises.data.gouv.fr/get_company- Returns
- legal name, SIREN, head office, status, activity, legal form, headcount, directors, latest revenue and net income
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method annuaire-entreprises.data.gouv.fr/get_company with the inputs above.
Ask your agent
- Who are the directors of Michelin and what was its revenue last year? I mean the tyre maker based in Clermont-Ferrand.
- Look up SIREN 552032534 and tell me the legal form, headcount and whether the company is still active.
- Using data.gouv.fr, find the registered head office and main activity of BlaBlaCar.
- I have a supplier with SIRET 48265492100037 on an invoice — can you confirm the company name, its status and its latest net income?
- Check data.gouv.fr for a company called Boulangerie Dupont in 69003 Lyon: who runs it and how many employees does it have?
See more
Looks up a company on North Data by name, optionally narrowed by country or city, and returns its identification, address, people and register events.
northdata.com/get_company_profileLooks up a UK company on Companies House by name, company number or Companies House link and returns its public registration details; a name prefers an active exact match.
company-information.service.gov.uk/get_company_profileSearches the UK Companies House register by company name and returns each company's status, type, incorporation date and registered office address, in result order.
find-and-update.company-information.service.gov.uk/search_companiesLooks up the official LEI record for a company name or LEI, optionally narrowing namesakes by registered country. Prefers active records with the closest name.
gleif.org/get_legal_entityLists a UK company's current and resigned directors, secretaries and other officers, found by company name, number or Companies House link.
find-and-update.company-information.service.gov.uk/list_directorsFinds Australian businesses on ABN Lookup by name or ABN. Returns ABN status, GST registration, business and trading names, and location.
abr.business.gov.au/search_businessesFinds companies on Trustpilot by name or what they do, with TrustScore, review count, categories, location, logo and links. A preferred country moves companies listed in that country to the front.
trustpilot.com/search_companiesLists a UK company's Companies House filings, newest first, with date, form code, type, description, page count and PDF link. Finds the company by name, company number or Companies House link; a category picks accounts, confirmation statements, officers, address, capital, charges or incorporation filings.
find-and-update.company-information.service.gov.uk/list_filing_history