French company lookup API for AI agents
Verify that a French company exists before doing business with it: this endpoint searches the official registry (INSEE Sirene data via recherche-entreprises.api.gouv.fr, updated daily) by name or SIREN number and returns legal form, NAF activity code, headquarters address, employee range, administrative status and published finances.
It is built for autonomous agents: no account, no API key - the agent pays $0.005 per call in USDC and gets a clean, stable JSON. Director personal data is stripped (GDPR).
Endpoint
GET /v1/fr/company — $0.005 per call (USDC on Base, x402). Also available as the MCP tool lookup_company_fr on https://data.greeneris.io/mcp.
Parameters
| Param | Description |
|---|---|
q | Company name or SIREN number (required), e.g. 'airbus' or '383474814' |
per_page | Results per page, 1-10 (default 3) |
code_postal | Filter by 5-digit postal code (optional) |
etat_administratif | A = active, C = ceased (optional) |
Example
curl -i "https://data.greeneris.io/v1/fr/company?q=airbus&per_page=1"
# HTTP/1.1 402 Payment Required + machine-readable quote
# (any x402 client pays the quote and retries automatically)Or pay and read the answer from code (pip install "x402[httpx,evm]"):
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import register_exact_evm_client
buyer = Account.from_key(os.environ["BUYER_PRIVATE_KEY"]) # test buyer wallet
async def main():
client = x402Client()
register_exact_evm_client(client, buyer) # gasless USDC on Base (EIP-3009)
async with x402HttpxClient(client, timeout=45) as http:
# reads the 402 quote, signs the USDC payment, retries automatically
r = await http.get("https://data.greeneris.io/v1/fr/company?q=airbus&per_page=1")
print(r.status_code, (await r.aread()).decode())
asyncio.run(main())Response after payment:
{"ok": true, "data": {"total_results": 245, "results": [{"siren": "383474814", "name": "AIRBUS", "naf_code": "30.30Z", "legal_form": "5710", "employee_range": "53", "administrative_status": "A", "headquarters": {"address": "2 ROND-POINT DEWOITINE 31700 BLAGNAC"}, "finances": {"2024": {"ca": 57412795000}}}]}}What agents use it for
- Supplier onboarding: confirm a company exists and is active before signing
- KYB / due-diligence chains: enrich a lead with official registry data
- Invoice validation: match a SIREN against the legal name automatically
Source & freshness
| Official source | INSEE Sirene, the official French company registry, via recherche-entreprises.api.gouv.fr |
|---|---|
| Update cadence | Updated daily |
How payment works
Call the endpoint: you get HTTP 402 with a signed quote (price, receiving address, network). Your agent pays a few tenths of a cent in USDC on Base (gasless, EIP-3009) and retries - one round trip, no account, no API key. Settlement only happens after a successful answer. Full catalog: llms.txt.