{"description":"Searches French businesses in the official company register search API (recherche-entreprises.api.gouv.fr) by name or keyword: company name, SIREN number, main activity code, head-office address and creation date, plus the number of open establishments. First page of results (about 10 companies, best match first). Returns an empty list when nothing matches.","effect":"read","id":"api.gouv.fr/search-businesses","keywords":["entreprises","entreprise","siren","société","recherche d'entreprises","annuaire","registre","france","business","company","companies","boulangerie","siret"],"output":{"schema":{"properties":{"companies":{"items":{"properties":{"activity_code":{"description":"Main activity code (NAF/APE), e.g. 10.71A","type":["string","null"]},"category":{"description":"Company size category, e.g. PME, ETI, GE","type":["string","null"]},"city":{"type":["string","null"]},"created":{"description":"Creation date, YYYY-MM-DD","type":["string","null"]},"establishments":{"description":"Number of establishments (all)","type":["integer","null"]},"head_office_address":{"type":["string","null"]},"name":{"type":"string"},"open_establishments":{"description":"Number of establishments still open","type":["integer","null"]},"postal_code":{"type":["string","null"]},"siren":{"description":"9-digit French company identifier","type":"string"},"url":{"description":"Record of this company in the same API","type":"string"}},"required":["name","siren","url"],"type":"object"},"type":"array"},"query":{"type":"string"}},"required":["query","companies"],"type":"object"},"value":"{query: params.query, companies: steps.search.companies[?nom_complet != `null` && siren != `null`].{name: nom_complet, siren: siren, url: join('', ['https://recherche-entreprises.api.gouv.fr/search?q=', siren]), activity_code: activite_principale, head_office_address: siege.adresse, postal_code: siege.code_postal, city: siege.libelle_commune, created: date_creation, establishments: nombre_etablissements, open_establishments: nombre_etablissements_ouverts, category: categorie_entreprise}}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"Company name or activity word, e.g. 'boulangerie', 'Michelin', 'Orange'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"GET /search?q=… on recherche-entreprises.api.gouv.fr, the public JSON API behind the French government company search. The response is an object whose results array has one company per item (nom_complet, siren, activite_principale, siege with address and commune, date_creation, nombre_etablissements and nombre_etablissements_ouverts). The url is the same API's record for that SIREN, since the response has no page link. No key, no login.","recorded_at":"2026-11-08T16:30:00.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"FR","id":"api.gouv.fr","language":"fr","name":"Recherche d'entreprises","origin":"https://recherche-entreprises.api.gouv.fr","origins":["https://recherche-entreprises.api.gouv.fr"]},"steps":[{"description":"Public JSON search API of the French government company directory: GET /search?q=…. No key, read-only. Each item in results is one company with its head office (siege) and open-establishment counts.","expect":{"assert":"status == `200` && type(body.results) == 'array'","content_type":"json","status":[200]},"extract":{"json":{"companies":"results"}},"id":"search","request":{"credentials":"omit","headers":{"Accept":"application/json"},"method":"GET","query":{"q":"{{params.query}}"},"url":"/search"}}],"task":"Recherche d'entreprises françaises","tos":{"notes":"Not reviewed. One search page per call, the same page a visitor loads. The site's terms on automated access were not checked.","reviewed":false},"verify":{"checks":["length(output.companies) > `0`","length(output.companies[?starts_with(url, 'https://recherche-entreprises.api.gouv.fr/')]) == length(output.companies)","length(output.companies[?name != `null`]) == length(output.companies)"],"example_params":{"query":"boulangerie"},"max_ms":5000},"version":1}