API v1 · OpenAPI 3.1 · estable
Referencia de la API
Consulta datos de empresas francesas (SIRENE/INSEE + RNE/INPI) desde tu aplicación: búsqueda, unidades legales, establecimientos, directivos y cuentas anuales. Una sola URL base, autenticación con un par de claves.
Visión general
Una API REST sin estado, JSON de entrada/salida, versionada. Todas las rutas llevan el prefijo /v1 y devuelven el sobre { success, data, timestamp }.
- URL base
https://companyfrance.fr/api/v1 - Versión
v1 · OpenAPI 3.1 - Formato
application/json - Autenticación
X-API-Key + X-API-Secret
Datos procedentes de SIRENE/INSEE (open data) enriquecidos con RNE/INPI. El contrato completo está disponible en OpenAPI 3.1.
Autenticación
Cada solicitud debe incluir tu par de claves API en las cabeceras HTTP. La clave pública identifica tu cuenta; la clave secreta la autentica. Nunca expongas tu clave secreta en el navegador.
curl "https://companyfrance.fr/api/v1/me" \
-H "X-API-Key: pk_live_xxxxxxxxxxxx" \
-H "X-API-Secret: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"Cabeceras requeridas
X-API-Key— clave pública, formato pk_live_…X-API-Secret— clave secreta, formato sk_live_… (mantener en el servidor)
Crea y revoca tus claves desde /dashboard/api/keys.
Formato de errores
Todos los errores devuelven un estado HTTP 4xx o 5xx y un cuerpo JSON con success: false, un campo error (legible) y un campo code (identificador de máquina).
{
"success": false,
"error": "No legal unit found for this SIREN.",
"code": "NOT_FOUND",
"timestamp": "2026-06-22T10:00:00.000Z"
}MISSING_CREDENTIALSFaltan las claves API en las cabeceras.INVALID_API_KEYClave pública o secreta no válida.API_KEY_DISABLEDClave desactivada o caducada.MISSING_FILTERNo se proporcionó ningún filtro de búsqueda (q, naf, codePostal…).INVALID_SIRENSIREN no válido: se esperan 9 dígitos.NOT_FOUNDRecurso no encontrado.INTERNAL_ERRORError interno del servidor.
Paginación
Los endpoints de listado aceptan page (por defecto 1) y perPage (por defecto 20, máx. 100). La respuesta incluye un objeto pagination que describe la página actual y si existe una página siguiente.
"pagination": {
"page": 1,
"perPage": 20,
"total": 137,
"totalPages": 7,
"hasNext": true
}Cuotas y límites
Las llamadas se descuentan de la cuota mensual de tu plan y están limitadas por hora. Cada respuesta expone tu consumo mediante las cabeceras X-RateLimit-*.
- Cuota mensual del plan
X-RateLimit-Limit - Llamadas restantes en el período
X-RateLimit-Remaining - Marca de tiempo (epoch) de reinicio
X-RateLimit-Reset
Superación
Buscar unidades legales
/v1/searchBúsqueda en base de datos sobre empresas francesas. Proporciona al menos un filtro. Los resultados están paginados y ordenados por nombre.
Parámetros de consulta
qstringopcionalTexto libre: nombre, nombre del directivo o prefijo de SIREN. Un q de 9 dígitos realiza una búsqueda exacta por SIREN.
nafstringopcionalCódigo NAF/APE exacto (p. ej. 29.10Z) o prefijo de división (p. ej. 62).
categorieJuridiquestringopcionalCódigo INSEE de categoría jurídica (p. ej. 5710).
etatstringopcionalACEstado administrativo: A (activa) o C (cesada).
codePostalstringopcionalCódigo postal exacto (coincide con un establecimiento).
communestringopcionalNombre del municipio (coincidencia parcial).
departementstringopcionalDepartamento de 2 dígitos (prefijo del código postal).
pageintegeropcionalpor defecto1Número de página (a partir de 1).
perPageintegeropcionalpor defecto20Resultados por página (máx. 100).
Respuestas
- 200Resultados paginados (items + pagination).
- 400No se proporcionó ningún filtro.
- 401Claves API ausentes o no válidas.
- 429Cuota o límite de tasa superado.
curl "https://companyfrance.fr/api/v1/search?q=renault&departement=92&perPage=20" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"items": [
{
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"sigle": null,
"legalForm": { "code": "5710", "label": "SA à conseil d'administration" },
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"category": "GE",
"active": true,
"state": "A",
"dateCreation": "1955-01-01T00:00:00.000Z"
}
],
"pagination": { "page": 1, "perPage": 20, "total": 3, "totalPages": 1, "hasNext": false }
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Buscar empresas por directivo
/v1/search/dirigeantsBúsqueda inversa: todas las empresas que una persona dirige o ha dirigido (directivos del RNE + empresarios individuales). Sin distinción de mayúsculas ni acentos. Proporciona al menos nom o prenom (mín. 2 caracteres).
Parámetros de consulta
nomstringopcionalApellido (o cualquier término del nombre).
prenomstringopcionalNombre(s).
strictbooleanopcionalpor defectofalsetrue → coincidencia bloqueada por campo (nom↔nom, prénom↔prénom): menos homónimos.
pageintegeropcionalpor defecto1Número de página (a partir de 1).
perPageintegeropcionalpor defecto20Resultados por página (máx. 100).
Respuestas
- 200Empresas vinculadas a la persona (items + pagination, totalMatched, capped).
- 400No se proporcionó ningún nombre de directivo.
- 401Claves API ausentes o no válidas.
- 429Cuota o límite de tasa superado.
curl "https://companyfrance.fr/api/v1/search/dirigeants?nom=Dupont&prenom=Jean" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"items": [
{
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"active": true,
"state": "A",
"dateCreation": "1955-01-01T00:00:00.000Z",
"dateRadiation": null,
"roles": ["Président du conseil d'administration"],
"matched": "Jean Dupont"
}
],
"pagination": { "page": 1, "perPage": 20, "total": 3, "totalPages": 1, "hasNext": false },
"totalMatched": 3,
"capped": false
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Buscar empresas por dirección
/v1/search/adresseBúsqueda inversa: todas las empresas domiciliadas en una dirección, agrupadas por SIREN (sede primero). El código postal es obligatorio; afina con la vía y el municipio.
Parámetros de consulta
codePostalstringobligatorioCódigo postal — obligatorio. 5 dígitos (o un prefijo de mín. 4 dígitos). Es el ancla indexada.
voiestringopcionalTérminos de vía (número / tipo / nombre), en cualquier orden.
communestringopcionalNombre del municipio (refinamiento opcional).
pageintegeropcionalpor defecto1Número de página (a partir de 1).
perPageintegeropcionalpor defecto20Resultados por página (máx. 100).
Respuestas
- 200Empresas en la dirección (items + pagination, totalMatched, capped).
- 400Falta el código postal.
- 401Claves API ausentes o no válidas.
- 429Cuota o límite de tasa superado.
curl "https://companyfrance.fr/api/v1/search/adresse?codePostal=92100&voie=Quai+Le+Gallo" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"items": [
{
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"active": true,
"state": "A",
"dateCreation": "1955-01-01T00:00:00.000Z",
"address": "13 Quai Alphonse Le Gallo, 92100 Boulogne-Billancourt",
"street": "13 Quai Alphonse Le Gallo",
"postalCode": "92100",
"commune": "Boulogne-Billancourt",
"headOffice": true,
"establishmentsMatched": 1
}
],
"pagination": { "page": 1, "perPage": 20, "total": 12, "totalPages": 1, "hasNext": false },
"totalMatched": 12,
"capped": false
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Obtener una unidad legal
/v1/unite-legale/{siren}Ficha completa de la empresa: denominaciones, forma jurídica, actividad, capital (Pro/Enterprise), plantilla, número de IVA y recuento de establecimientos.
Parámetros de ruta
sirenstringobligatorioSIREN de la unidad legal — 9 dígitos.
Respuestas
- 200Ficha de la unidad legal.
- 404Recurso no encontrado.
curl "https://companyfrance.fr/api/v1/unite-legale/552032534" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"legalForm": { "code": "5710", "label": "SA à conseil d'administration" },
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"active": true,
"state": "A",
"vatNumber": "FR41552032534",
"workforceRange": "53",
"capital": { "amount": 1126701902, "currency": "EUR", "variable": false },
"establishments": { "total": 12, "active": 9 }
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Listar los establecimientos de una unidad legal
/v1/unite-legale/{siren}/etablissementsEstablecimientos (SIRET) vinculados a un SIREN, paginados. Filtra por estado para conservar solo los establecimientos activos.
Parámetros de ruta
sirenstringobligatorioSIREN de la unidad legal — 9 dígitos.
Parámetros de consulta
etatstringopcionalAFEstado del establecimiento: A (activo) o F (cerrado).
pageintegeropcionalpor defecto1Número de página (a partir de 1).
perPageintegeropcionalpor defecto20Resultados por página (máx. 100).
Respuestas
- 200Establecimientos paginados.
- 404Recurso no encontrado.
curl "https://companyfrance.fr/api/v1/unite-legale/552032534/etablissements?etat=A" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Listar los directivos de una unidad legal
/v1/unite-legale/{siren}/dirigeantsDirectivos (gerente, presidente…) procedentes del RNE. Para un empresario individual, la persona física se sintetiza a partir de la identidad de la unidad legal.
Parámetros de ruta
sirenstringobligatorioSIREN de la unidad legal — 9 dígitos.
Respuestas
- 200Lista de directivos (count + items).
- 404Recurso no encontrado.
curl "https://companyfrance.fr/api/v1/unite-legale/552032534/dirigeants" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"siren": "552032534",
"count": 1,
"items": [
{
"type": "person",
"name": "Jean Dupont",
"nom": "Dupont",
"prenoms": "Jean",
"denomination": null,
"role": "Président du conseil d'administration",
"birthYear": 1968
}
]
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Cuentas anuales de una unidad legal
/v1/unite-legale/{siren}/financesCuentas anuales depositadas (cifra de negocios, resultado neto…) cuando están disponibles.
Parámetros de ruta
sirenstringobligatorioSIREN de la unidad legal — 9 dígitos.
Respuestas
- 200Cuentas anuales.
- 403Plan insuficiente — se requiere mejora.
- 404Recurso no encontrado.
Endpoint reservado a los planes Pro y Enterprise
curl "https://companyfrance.fr/api/v1/unite-legale/552032534/finances" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"siren": "552032534",
"count": 1,
"items": [
{
"year": 2024,
"dateCloture": "2024-12-31",
"typeBilan": "C",
"totalBilan": 98765432000,
"capitauxPropres": 31200000000,
"resultatNet": 752000000,
"chiffreAffaires": 56601000000,
"currency": "EUR",
"confidential": false,
"dateDepot": "2025-05-14"
}
]
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Obtener un establecimiento
/v1/etablissement/{siret}Ficha de un establecimiento por su SIRET: dirección, actividad, rótulo, indicador de sede y estado administrativo.
Parámetros de ruta
siretstringobligatorioSIRET del establecimiento — 14 dígitos.
Respuestas
- 200Ficha del establecimiento.
- 404Recurso no encontrado.
curl "https://companyfrance.fr/api/v1/etablissement/55203253400041" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Nomenclatura NAF
/v1/nafLista de códigos NAF/APE con sus etiquetas. Filtra con q para buscar por etiqueta o código.
Parámetros de consulta
qstringopcionalBúsqueda por etiqueta o código NAF.
Respuestas
- 200Códigos NAF.
curl "https://companyfrance.fr/api/v1/naf?q=automobile" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Resolver un código NAF
/v1/naf/{code}Devuelve la etiqueta de un código NAF/APE concreto.
Parámetros de ruta
codestringobligatorioCódigo NAF/APE a resolver (p. ej. 29.10Z).
Respuestas
- 200Etiqueta del código.
- 404Recurso no encontrado.
curl "https://companyfrance.fr/api/v1/naf/29.10Z" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Nomenclatura de categorías jurídicas
/v1/categories-juridiquesLista de códigos de forma jurídica (INSEE) con sus etiquetas. Filtra con q.
Parámetros de consulta
qstringopcionalBúsqueda por etiqueta o código.
Respuestas
- 200Categorías jurídicas.
curl "https://companyfrance.fr/api/v1/categories-juridiques?q=SARL" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Tu plan y consumo
/v1/meDevuelve la cuenta que realiza la llamada, su plan y su consumo actual. Esta llamada también se descuenta de la cuota.
Respuestas
- 200Plan + consumo.
- 400Clave API no vinculada a una empresa.
curl "https://companyfrance.fr/api/v1/me" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"keyId": "key_01J…",
"company": { "id": "cmp_01J…" },
"plan": {
"code": "pro",
"name": "Pro",
"status": "active",
"trialEndsAt": null,
"currentPeriodEnd": "2027-06-22T00:00:00.000Z"
},
"usage": {
"used": 1284,
"limit": 50000,
"remaining": 48716,
"percentage": 3,
"resetAt": "2026-07-01T00:00:00.000Z",
"hourlyRateLimit": 1000
}
},
"timestamp": "2026-06-22T10:00:00.000Z"
}