Company
Search Delpha's company datalake to power account creation and CRM enrichment.
A single synchronous GET /v1/company call — pass at least one identifier (account name, legal ID, or a unified search string) as a query parameter and receive matching company records inline, with no job_id polling.
Disambiguation: Optional context such as website, city, country, and known aliases sharpens matching when several companies share a similar name.
Control: Tune results with fuzzy matching, a configurable result count, and a minimum score threshold.
Output: Ranked, typed company records (legal ids, address, firmographics, parent hierarchy) ready to seed new CRM accounts or enrich existing ones.
Ideal for account creation flows, lead-to-account matching, and keeping your account base clean and de-duplicated.
Synchronous company search: query Delpha's company datalake and receive matching records in a single request (no job_id polling). At least one of account_name, legal_id, or search_str must be provided; optional parameters (website, city, country, aliases, fuzzy/scoring) refine and disambiguate the results.
Records come from Delpha's own company datalake; this operation contacts no third party.
A live-mode call reserves credits; unless your team has set resolution retention to 0, the call and its result are also recorded in your team's resolution history for the window your team configured (up to 30 days on the free tier, 180 on a paid plan). Repeating the same request is a new call and a new charge. Test-mode calls are answered from the published fixture table and reserve nothing — see the API documentation's Test mode section.
- : Access to the public API
OAuth 2.0 client-credentials flow (machine-to-machine). Token URL: https://secure.delpha.io/oauth2/token. The api/access scope is all-access: it grants every operation this document publishes. Per-use-case scoping, per-key credit ceilings and expiry are properties of an API key, not of this flow — use an API key when a credential must be restricted.
The company name to search for.
{"value":"Tesla"}A legal identifier to look up (exact match).
{"value":"632012100"}The type of the provided legal identifier.
{"value":"FRA - SIRET"}Unified single-field search: a company name OR a legal id.
{"value":"Tesla"}The company website (sharpens disambiguation).
{"value":"https://www.tesla.com"}A city. Strict filter: only companies in this city are returned; companies with no city on record are still returned, last.
{"value":"Paris"}A country name. Strict filter: only companies in this country are returned; companies with no country on record are still returned, last.
{"value":"France"}An ISO 3166-1 alpha-2 country code. Strict filter: only companies in this country are returned; companies with no country on record are still returned, last.
{"value":"FR"}Pattern: ^[A-Z]{2}$Post-filter on aliases; repeatable (?aliases=a&aliases=b).
{"value":"Tesla Motors"}Post-filter on input names; repeatable.
{"value":"tesla"}1-based page number to return.
1Example: {"value":1}Number of companies per page, max 100.
10Example: {"value":10}Deprecated — use page_size. Used as the page size when page_size is omitted.
{"value":20}Whether to enable fuzzy (typo-tolerant) matching.
trueExample: {"value":true}Minimum match score for a result to be returned.
{"value":0.8}Founding-date lower bound (ISO date or a year). Strict filter: companies founded before it are excluded; companies with no founding date on record are still returned, last.
{"value":"1990"}Founding-date upper bound (ISO date or a year). Strict filter: companies founded after it are excluded; companies with no founding date on record are still returned, last.
{"value":"2010"}Industry classification code(s), e.g. ISIC 8510 or NACE 84.11; repeatable. Dot and dot-less spellings are matched across code systems. Strict filter: only companies matching any supplied code are returned; companies with no industry code on record are still returned, last.
{"value":"8510"}Opaque pagination cursor, taken verbatim from a previous response's next_cursor. Repeat the same search parameters with it to get the next page, and keep going until next_cursor is null. Mutually exclusive with page (sending both is 422); page_size may change mid-walk. A cursor belongs to the query that issued it.
{"value":"eyJjIjoiZXlKaElqb2lVVEJHUWxVd2JGSlRWazVKVVZoa1RpSXNJbXdpT25SeWRXVXNJbTRpT2pFd01Dd2lkaUk2TVgwIiwicSI6IjZiOWNlMDAwNDY3ZTY0MzAiLCJ2IjoxfQ"}Pattern: ^[A-Za-z0-9_-]+$Job succeeded — the result payload is populated.
Validation error — the request body or query parameters were rejected.
Authentication failed — invalid or missing OAuth 2.0 token or API key.
Payment required — the team has insufficient credits.
Forbidden — the credential is valid but not allowed here: the API key's scopes do not cover this operation, or the operation is not routed in this environment (API Gateway then answers Missing Authentication Token).
Conflict — the credit reservation expired before delivery; resubmit.
Unprocessable entity — the query is well-formed but the cursor cannot be honoured (validation_error): page and cursor were sent together, the cursor is not a cursor this API issued, it belongs to a different query, or the search itself would not accept it. Restart from the first page — the first three are refused before any credit is reserved, and the fourth releases its reservation.
Too many requests — one of two limits was exceeded. Your allowance for this operation in the current 60-second window: an Error body with code: rate_limited, Retry-After set to the seconds left in the window, and the quota headers with X-RateLimit-Remaining: 0; nothing is charged. Or the per-operation floor every caller of that operation shares: a GatewayError body with Retry-After: 1 and no quota headers, refused before the API sees the request.
Bad gateway — the upstream service returned an error.
Service unavailable — a downstream dependency was unreachable.
Gateway timeout — the job exceeded its processing ceiling.
GET /v1/company HTTP/1.1
Host: api.delpha.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"code": "ok",
"request_id": "c1a2b3d4-0000-4a5b-8c9d-ef0123456789",
"message": "Company search succeeded",
"status": "SUCCESS",
"status_code": 200,
"result": {
"companies": [
{
"delpha_id": "a9faabec809841a9a4a5b19904754193",
"account_name": "L'OREAL",
"aliases": [
"L'OREAL"
],
"input_names": [
"loreal"
],
"legal_id": "63201210000012",
"legal_id_type": "FRA - SIRET",
"SIREN": "632012100",
"SIRET": "63201210000012",
"NAF": "2042Z",
"VAT": "FR40632012100",
"website": "https://www.loreal.com",
"location": "Clichy, France",
"address": {
"street": "14 RUE ROYALE",
"postal_code": "75008",
"city": "PARIS",
"country": "France",
"country_code": "FR",
"coordinates": {
"latitude": 48.868137,
"longitude": 2.323306
}
},
"status": "active",
"site_type": "headquarters",
"is_golden": false,
"description": "Cosmetics manufacturer.",
"company_type": {
"value": "SAI",
"legal_type": "SA à conseil d'administration",
"legal_type_code": "5599"
},
"industry_division": {
"value": "4649",
"type": "SBI",
"desc": "Software Development"
},
"financials": {
"revenue": 62429000,
"operating_profit": -5490000,
"net_income": 20422000,
"equity": 752996000,
"currency": "NOK",
"fiscal_period": {
"start_date": "2024-05-01",
"end_date": "2025-04-30"
},
"revenue_range": "50-100"
},
"employees_nb": {
"value": 9999,
"min": 5000,
"max": 9999,
"range": "5001-10000",
"time": 2021
},
"group_size": 1,
"creation_date": [
"1963-01-01"
],
"parent": {
"value": "8fdd1f132e0844cca31451de152cec34",
"name": "L'OREAL",
"confidence": 100,
"wikidata_id": "Q160289"
},
"ultimate_parent": {
"value": "8fdd1f132e0844cca31451de152cec34",
"name": "L'OREAL",
"confidence": 100,
"wikidata_id": "Q160289"
},
"headquarters_site": {
"company_name": "L'OREAL",
"legal_id": {
"value": "63201210000012",
"type": "FRA - SIRET"
}
},
"matching_score": 94.78202056884766,
"source": "https://annuaire-entreprises.data.gouv.fr/entreprise/63201210000012",
"last_update": "2026-01-29T16:20:03.935879+00:00"
}
],
"count": 10,
"total": 137,
"total_is_lower_bound": false,
"filtered_total": 12,
"filtered_total_is_lower_bound": false,
"page": 1,
"page_size": 10,
"has_more": true,
"next_cursor": "eyJjIjoiZXlKaElqb2lVVEJHUWxVd2JGSlRWazVKVVZoa1RpSXNJbXdpT25SeWRXVXNJbTRpT2pFd01Dd2lkaUk2TVgwIiwicSI6IjZiOWNlMDAwNDY3ZTY0MzAiLCJ2IjoxfQ"
},
"process_time": 0.42
}Last updated
Was this helpful?